什么是ansible?
ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet、cfengine、chef、func、fabric)的优点,实现了批量系统配置、批量程序部署、批量运行命令等功能。
ansible能做什么?
批量完成一些需要经常重复的任务
比如:批量部署软件
比如:批量拷贝文件
比如:批量重启服务
ansible相比于其他工具有什么优势?
No agent 不需要在被管控主机上安装任何软件
No server 不用单独启用服务,能使用直接运行,使用时直接运行命令
对硬件资源占用小
不需要在被管控的主机上安装任何软件
基于模块工作
基于ssh工作
使用yaml语言
可实现多级指挥
ansible的安装
ansible可通过epel源yum安装,安装方式如下:
[root@myhost ~]# yum install epel-release -y [root@myhost ~]# yum install ansible -y
简单配置ansible的主机
ansible主机配置文件位置:
[root@myhost ~]# ll /etc/ansible/hosts -rw-r--r-- 1 root root 1016 7月 21 07:59 /etc/ansible/hosts
配置文件可按如下格式编写:
192.168.10.2 ansible_port=22 ansible_user=root ansible_ssh_pass=123456
参数说明:
ansible_port=22 表示使用22端口,默认为22端口,若未修改过ssh端口可不指定
ansible_user=root 表示使用root用户来ssh连接主机
ansible_ssh_pass=123456 表示对应用户的连接密码
以上编写方式较为麻烦且安全性不高,既然是基于ssh的连接,我们便可以使用密钥验证的方式:
[root@myhost ~]# ssh-keygen #生成密钥 #将生成的公钥加入到192.168.10.2的认证列表 [root@myhost ~]# ssh-copy-id -i /root/.ssh/id_rsa.pub root@192.168.10.2 #至此,在/etc/ansible/hosts文件中仅需配置ip即可。
主机分组配置:
#若主机很多,我们想分组进行操作可以采取如下的配置方式: [testgroup] 192.168.0.2 192.168.0.3 192.168.0.4 192.168.0.5 192.168.0.6 #如上配置过后可直接通过组名对组内所有主机进行操作: ansible testgroup -m ping #查看主机连接状态