第 2 章 Ansible安装与配置
本章内容:
1. Ansible使用要求
2. 安装Ansible
3. 配置文件
4. Inventory(主机清单)
1. Ansible使用要求
服务端要求
• Python2.6/2.7/3.x
• RedHat,Debian,CentOS,OS X等。不支持Windows
被管理端要求
• OpenSSH
• Python2.6/2.7/3.x
2. 安装Ansible
yum install ansible (推荐)
pip install ansible
https://releases.ansible.com/ansible or https://github.com/ansible/ansible.git
3. 配置文件详解
# vi /etc/ansible/ansible.cfg
[defaults] inventory = /etc/ansible/hosts #默认主机清单位置 forks = 5 #进程并发数默认为5 become = root #执行命令时被管理端默认切换使用用户为root remote_port = 22 #默认ssh远程端口 host_key_checking = False #第一次ssh连接被管理端时忽略主机指纹检查 timeout = 10 #连接超时10s log_path = /var/log/ansible.log #默认ansible执行日志 private_key_file = /root/.ssh/id_rsa #使用密钥登陆时,管理端私钥文件位置
4. Inventory(主机清单)
4.1 主机清单写法示例:
# 示例1:未分组的主机
green.example.com
blue.example.com
192.168.100.1
192.168.100.10
# 示例2:属于webservers组主机集合
[webservers]
alpha.example.org
beta.example.org
192.168.1.100
192.168.1.110
www[001:006].example.com
示例3:属于dbservers组主机集合连续数字集合简写
[dbservers]
db01.intranet.mydomain.net
db02.intranet.mydomain.net
……
db100.intranet.mydomain.net
db101.intranet.mydomain.net
连续编号可简写为:
[dbservers]
db[01:101].intranet.mydomain.net
4.2、主机和主机组变量:
主机清单变量引用
单个主机变量引用
例如添加变量:http_port=80:
[web]
192.168.0.13 ansible_ssh_user=root ansible_ssh_pass=123.com http_port=80
192.168.0.14 ansible_ssh_user=root ansible_ssh_pass=123.com
输出变量:
[root@ansible~]# ansible 192.168.0.13 -a "echo {{http_port}}"
整个主机组变量引用 (在主机组web的基础上定义)
方法一:(在主机清单中直接定义)
[web:vars]
http port= 8080
server_name=www.ctnrs.com
输出变量:
[root@ansible~]# ansible web -a "echo {{http_port}}" 192.168.0.13 | SUCCESS | rc=0 >> 8080 192.168.0.14 | SUCCESS | rc=0>> 8080 [root a ansible~] # ansible web -a "echo{{server_name}}" 192.168.0.13 | SUCCESS | rc=0 >> www.ctnrs.com 192.168.0.14 | SUCCESS | rc=0>> www.ctnrs.com
方法二:添加到单独的组变量文件中:
在ansible下创建目录group_vars:
mkdir /etc/ansible/group_vars
vim /etc/ansible/group_vars/web.yml (文件名需要跟组名相同)
http_port: 8080
server_name: www1.longtao.vip
注意:冒号后有空格再跟参数。
定义变量参数的优先级:
单台主机变量设定 > 单独的组变量文件设定 > 在主机清单中直接定义组变量