安装配置
yum安装
Ansible仓库默认不在yum仓库中,因此我们需要使用下面的命令启用epel仓库。
#CentOS 5:
wget http://mirrors.sohu.com/fedora-epel/5/x86_64/epel-release-5-4.noarch.rpm
#CentOS 6:
wget http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm
#CentOS 7:
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-8.noarch.rpm
#安装
[root@localhost src]# yum install ansible
#安装后检查版本
[root@localhost src]# ansible --version
ansible 2.1.2.0
config file = /etc/ansible/ansible.cfg
configured module search path = Default w/o overrides
基本配置
1、修改hosts文件
在/etc/ansible/hosts文件中添加远程主机,如果/etc/ansible不存在就手动创建。该文件格式如下
[DB]
192.168.1.9
[ALL]
192.168.1.8
192.168.1.9
[WEB]
192.168.1.9
2、配置SSH互信
一般建议服务器设置成私钥认证。
ssh连接时可以使用-o 参数将StrictHostKeyChecking设置为no,使用ssh连接时直接忽略验证,可以解决首次连接时要输入yes/no的提示
[root@localhost ~]# vim /etc/ansible/ansible.cfg
#方法A
[ssh_connection]
#取消注释并添加 "-o StrictHostKeyChecking=no"
ssh_args = -o ControlMaster=auto -o ControlPersist=60s -o StrictHostKeyChecking=no
#方法B,推荐此方法
host_key_checking = False```
#####3、联通测试
[root@localhost ansible]# ansible all -m ping
192.168.1.8 | SUCCESS => {
"changed": false,
"ping": "pong"
}
192.168.1.9 | SUCCESS => {
"changed": false,
"ping": "pong"
}```
如果使用密码验证,则需要加上-k参数来转换到密码验证模式,默认远程连接使用当前用户,可以使用-u参数来指定用什么用户连接。
4、基本命令使用
#查询模块
[root@localhost]# ansible-doc l
#全部执行shell
[root@localhost]# ansible all -m shell -a "uname -a"
192.168.1.8 | SUCCESS | rc=0 >>
Linux localhost.localdomain 3.10.0-123.el7.x86_64 #1 SMP Mon Jun 30 12:09:22 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux
192.168.1.9 | SUCCESS | rc=0 >>
Linux localhost.localdomain 2.6.32-431.el6.x86_64 #1 SMP Fri Nov 22 03:15:09 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
5、命令参数
Usage:ansible <host-pattern> [options]
Options:
#要执行的模块,默认为command
-m module_name
#模块参数
-a module_args
#ssh登录密码
-k
#sudo运行
-s
#sudo到哪个用户,默认为root
-U SUDO_USER,—sudo-user=SUDO_USER
#sudo密码
-K
#测试
-C,—check
#打印有哪些主机会执行这个playbook,不是实际执行
—list-hosts
6、配置文件
二、常用模块
三、主机列表
四、匹配主机
五、playbook
六、角色与包含
七、变量
更多关注:http://www.mknight.cn/
--待续