在Linux的世界,Ansible是实现自动化运维的常用好工具,通过它可以很好地批理执行命令,实现高效对大量服务器的管理,极大提高运维效率(当然现在WINDOS下也可以实用Ansible进行批量管理实现运维自动化,不过相对应用较少)。
由于公司里有许多ESXI服务器,而时常我也会用SSH上去进行调试管理,而且部分操作应用也是相同的,有时想想能用一个统计的入口进行管理该有多好,于是首先也想到了Ansible工具,于是产生了实践的想法,一开始我也不知道能否成功,不过不去试试怎么知道呢,知识海那么大,唯有去试试,^.^,实践证明它是支持的,而且自从我在Esxi上用Ansible管理后,对Esxi服务器操作中,大大方便了我的日常管理,SO EASY,这里分享下操作过程吧。
1、安装
找一台装有Linux的服务器直接YUM 安装Ansible 即可(一般在跳板机吧/堡垒机)
yum install ansible -y
安装好后查看下:
2、配置Ansible配置文件: vim /etc/ansible/hosts
在配置文件中加入以下ESXI主机组,如果有多个组别就分多个组别按照以下方法加上即可。
[esxi]
192.168.26.199
192.168.26.200
192.168.26.205
3、生成秘钥:(通常堡垒机上生成) ssh-keygen -t rsa
4、把生成的公钥放到ESXI主机上的/etc/ssh/keys-root/authorized_keys文件中即可。
cat /etc/ssh/keys-root/authorized_keys
5、测试用Ansible发送命令,查看或管理ESXI服务器。
例如:查看ESXI服务器开启时间
ansible esxi -m shell -a'uptime'
查看ESXI服务器定时计划任务配置文件属性:
ansible esxi -m shell -a'ls -l /var/spool/cron/crontabs/root '
为ESXI服务器添加定时关机脚本
ansible esxi -m shell -a 'chmod 1644 /var/spool/cron/crontabs/root && echo "30 21 12 12 * root /vmfs/volumes/datastore1/gj.sh">>/var/spool/cron/crontabs/root && chmod 1444 /var/spool/cron/crontabs/root '
查看下权限也改回去了,执行成功:
ansible esxi -m shell -a'ls -l /var/spool/cron/crontabs/root '
删掉刚添加的计划任务:
ansible esxi -m shell -a 'sed -i "/gj.sh/d" /var/spool/cron/crontabs/root'
查看ESXI中所以虚拟服务器:
ansible esxi -m shell -a 'vim-cmd vmsvc/getallvms'
查看ESXI中目前所以开启虚拟服务器数量:
ansible esxi -m shell -a 'esxcli vm process list |grep World|wc -l'
如果你有ESXI服务器,需要SSH管理操作,装上Ansible体验一下吧,其它应用在ESXI上的应用自己实践下
转载于:https://blog.51cto.com/jdonghong/2326375