ansible 配置详解
 3.1 ansible 安装方式
 ansible安装常用两种方式,yum安装和pip程序安装
3.1.1 使用 pip(python的包管理模块)安装
 需要安装一个python-pip包,安装完成以后,则直接使用pip命令来安装我们的ansible包
[root@localhost ~]$ yum install python-pip
 [root@localhost ~]$ pip install ansible
  
3.1.2 使用 yum 安装
 需要先安装一个epel-release包,然后再安装 ansible 即可。
[root@localhost ~]$ yum -y install epel-release
 [root@localhost ~]$ yum -y install ansible
  
3.2 ansible 程序结构
 安装目录如下(yum安装):
配置文件目录:/etc/ansible/
 执行文件目录:/usr/bin/
 Lib库依赖目录:/usr/lib/pythonX.X/site-packages/ansible/
 Help文档目录:/usr/share/doc/ansible-X.X.X/
 Man文档目录:/usr/share/man/man1/
 3.3 ansible配置文件
inventory = /etc/ansible/hosts		  #这个参数表示资源清单inventory文件的位置
library = /usr/share/ansible		 #指向存放Ansible模块的目录,支持多个目录方式,只要用冒号(:)隔开就可以
forks = 5		                      #并发连接数,默认为5
sudo_user = root		              #设置默认执行命令的用户
remote_port = 22		              #指定连接被管节点的管理端口,默认为22端口,建议修改,能够更加安全
ask_pass = True                #是否需要密码
host_key_checking = False		     #设置是否检查SSH主机的密钥,值为True/False。关闭后第一次连接不会提示配置实例
timeout = 60		                #设置SSH连接的超时时间,单位为秒
log_path = /var/log/ansible.log		#指定一个存储ansible日志的文件(默认不记录日志)3.4 ansuble主机清单
 在配置文件中,我们提到了资源清单,这个清单就是我们的主机清单,里面保存的是一些 ansible 需要连接管理的主机列表。在/etc/ansible/hosts文件内
直接指明主机地址或主机名:
[root@localhost ~]$ vim /etc/ansible/hosts 
 ## green.example.com#
 # blue.example.com#
 # 192.168.100.1
 # 192.168.100.10
  
定义一个主机组[组名]把地址或主机名加进去
[root@localhost ~]$ vim /etc/ansible/hosts 
 [mysql_test]
 192.168.253.159 ansible_user=root ansible_port=22 ansible_ssh_pass=root
 192.168.253.160 ansible_user=root ansible_port=22 ansible_ssh_pass=root
 192.168.253.153 ansible_user=root ansible_port=22 ansible_ssh_pass=root
  
还可以使用密钥对配置免密登录
 服务端生成密钥对
[root@localhost ~]$ ssh-keygen    #一路回车
- 然后把公钥传到被控端
[root@localhost ~]$ ssh-copy-id root@192.168.37.122 vars变量 :定义主机的内置参数
 定义属于整个组的变量
[root@localhost ~]$ vim /etc/ansible/hosts 
[test]
host1
host2[test:vars]
ntp_server=ntp.atlanta.example.com
proxy=proxy.atlanta.example.com
嵌套定义vars
#编写主机组
[group1]
group1.linux.com[group2]
group2.example.com[group:children]
group1
group2#嵌套变量定义
[group:vars]   ##用var进行标识
user=studen    ##以字典方式定义