inventory = /etc/ansible/hosts #host文件路径
forks = 5 #指定ansible最多多少进程同时工作
timeout = 10 连接超时时间
nocolor = 0 #显示是否带颜色,默认0为带,1为不带
private_key_file = /path/file.pem #表示在使用SSH公钥私钥登陆系统的时候,密钥文件的路径
library = /usr/share/my_modules/ #extra模块放置路径
remote_tmp = $HOME/.ansible/tmp #远程主机的临时文件存放路径
local_tmp = $HOME/.ansible/tmp #管理主机的临时文件存放路径
|参数|说明
|--|--
|inventory|该参数表示资源清单inventory文件的位置,资源清单就是一些Ansible需要连接管理的主机列表 inventory = /root/ansible/hosts
|library|Ansible的操作动作,无论是本地或远程,都使用一小段代码来执行,这小段代码称为模块,这个library参数就是指向存放Ansible模块的目录 library = /usr/share/ansible
|forks|设置默认情况下Ansible最多能有多少个进程同时工作,默认设置最多5个进程并行处理。具体需要设置多少个,可以根据控制主机的性能和被管理节点的数量来确定。 forks = 5
|sudo_user|这是设置默认执行命令的用户,也可以在playbook中重新设置这个参数 sudo_user = root //注意:新版本已经作了修改,如ansible2.4.1下已经为: default_sudo_user = root
|remote_port|这是指定连接被关节点的管理端口,默认是22,除非设置了特殊的SSH端口,不然这个参数一般是不需要修改的 remote_port = 22
|host_key_checking|这是设置是否检查SSH主机的密钥。可以设置为True或False host_key_checking = False
|timeout|这是设置SSH连接的超时间隔,单位是秒。 timeout = 20
|log_path|Ansible系统默认是不记录日志的,如果想把Ansible系统的输出记录到人i治稳健中,需要设置log_path来指定一个存储Ansible日志的文件 log_path = /var/log/ansible.log 另外需要注意,执行Ansible的用户需要有写入日志的权限,模块将会调用被管节点的syslog来记录,口令是不会出现的日志中的
|private_key_file|在使用ssh公钥私钥登录系统时候,使用的密钥路径。 private_key_file=/path/to/file.pem
|host_key_checking = False|设置False,可直接在host配置文件中配置连接参数
##ansible配置文件优先级
####优先级从上到下,最上的优先级最高
ANSIBLE_CONFIG (环境参数)
ansible.cfg (当前目录的ansible.cfg)
.ansible.cfg (当前用户家目录下的.ansible.cfg)
/etc/ansible/ansible.cfg
#指定文件清单文件
####默认:/etc/ansible/hosts
####利用参数
ansible-playbook -i host2 site.yml
ansible-playbook --inventory-file host2 site.yml
#host配置
vim /etc/ansible/hosts
##单条指定
[WebServer] # 定义分组
www.abc.com
192.168.1.20
192.168.1.30
[DBServer] # 定义多个分组
www.abc.com
192.168.1.60
##范围指定
[webservers]
www[01:50].example.com
[dbservers]
db-[a:f].example.com
172.16.16.[1-255]
##添加参数
www.abc.com ansible_ssh_user=root ansible_ssh_pass='123456'
192.168.1.20 ansible_ssh_user=root ansible_ssh_pass='123456' ansible_ssh_port=22022
####变量参数:
# ansible_ssh_host 连接目标主机的地址
# ansible_ssh_port 连接目标主机的端口,默认 22 时无需指定
# ansible_ssh_user 连接目标主机默认用户
# ansible_ssh_pass 连接目标主机默认用户密码
# ansible_ssh_connection 目标主机连接类型,可以是 local 、ssh 或 paramiko
# ansible_ssh_private_key_file 连接目标主机的 ssh 私钥
# ansible_*_interpreter 指定采用非 Python 的其他脚本语言,如 Ruby 、Perl 或其他类似 ansible_python_interpreter 解释器
#####即weball组中,包含了web1与web2组中的主机,如果包含组中存在重复主机,会去重(重要)
####主机组继承
[web1]
192.168.1.10
192.168.1.11
[web2]
192.168.1.10
192.168.1.12
[weball]
####变量继承
#####即web组中的主机都带上http_port=80这个变量,如果web中已指定,并不会覆盖变量,仍是所指定的那个变量值
[web]
192.168.1.10
192.168.1.11
[web:vars]
http_port=80
#目录结构存放变量
####假设主机清单文件为/etc/ansible/hosts,那么相关的Host和Group变量可以放在/etc/ansible/host_vars/和/etc/ansible/group_vars/下的主机同名目录中的文件
####单示例
#/etc/ansible/host_vars/10.188.100.55文件内容:
http_port: 8080
相当于hosts直接参数
10.188.100.55 http_port=8080
####分组
#/etc/ansible/group_vars/web文件内容:
http_port: 8080
相当于hosts直接参数
[web]
10.188.100.55
10.188.100.56
[web:vars]
http_port=8080