Ansible 配置是以ini格式存储数据的,在Ansible中,几乎所有配置都可以通过Ansible的Playbook或环境变量来重新赋值。在运行Ansible命令时,命令将会按照预先设定的顺序查找配置文件
1)ANSIBLE_CONFIG:首先,Ansible命令会检查环境变量,及这个环境变量将指向的配置文件
2)./ansible.cfg:其次,将会检查当前目录下的ansible.cfg配置文件
3)~/.ansible.cfg:再次,将会检查当前用户home目录下的.ansible.cfg配置文件
4)/etc/ansible/ansible.cfg:最后,将会检查在用软件包管理工具安装Ansible时自动产生的配置文件
1、使用化境变量方式来配置
大多数的Ansible参数可以通过设置带有ANSIBLE_开头的环境变量进行配置,参数名称必须都是大写字母,如下配置:
export ANSIBLE_SUDO_USER=root
设置了环境变量之后,ANSIBLE_SUDO_USER就可以在playbook中直接引用。
2、设置ansible.cfg配置参数
Ansible有很多配置参数,下面列出常用的配置参数:
1)inventory
该参数表示资源清单inventory文件的位置,资源清单就是一些Ansible需要连接管理的主机列表
inventory = /root/ansible/hosts
2)library
Ansible的操作动作,无论是本地或远程,都使用一小段代码来执行,这小段代码称为模块,这个library参数就是指向存放Ansible模块的目录
library = /usr/share/ansible
3)forks
设置默认情况下Ansible最多能有多少个进程同时工作,默认设置最多5个进程并行处理。具体需要设置多少个,可以根据控制主机的性能和被管理节点的数量来确定。
forks = 5
4)sudo_user
这是设置默认执行命令的用户,也可以在playbook中重新设置这个参数
sudo_user = root
5)remote_port
这是指定连接被关节点的管理端口,默认是22,除非设置了特殊的SSH端口,不然这个参数一般是不需要修改的
remote_port = 22
6)host_key_checking
这是设置是否检查SSH主机的密钥。可以设置为True或False
host_key_checking = False
7)timeout
这是设置SSH连接的超时间隔,单位是秒。
timeout = 20
8)log_path
Ansible系统默认是不记录日志的,如果想把Ansible系统的输出记录到人i治稳健中,需要设置log_path来指定一个存储Ansible日志的文件
log_path = /var/log/ansible.log
另外需要注意,执行Ansible的用户需要有写入日志的权限,模块将会调用被管节点的syslog来记录,口令是不会出现的日志中的
9)host_key_checking
如果有台被管节点重新安装系统并在known_hosts中有了与之前不同的密钥信息,就会提示一个密钥不匹配的错误信息,直到被纠正为止,在使用Ansible时,如果有台被管理节点没有在known_hosts中被初始化,将会在使用Ansible或定时执行Ansible时提示对key信息的确认。
如果你不想出现这种情况,并且你明白禁用此项行为的含义,只要修改该参数为False即可
host_key_checking = False
我们来查看一下 ansible.cfg 配置
egrep -v “(^$|^#)” /etc/ansible/ansible.cfg
[defaults]
inventory = /etc/ansible/hosts
library = /usr/share/ansible/
forks = 5
sudo_user = root
remote_port = 22
roles_path = /root/ansible_playbook/roles
host_key_checking = False
timeout = 20
log_path = /var/log/ansible.log
[privilege_escalation]
[paramiko_connection]
[ssh_connection]
[accelerate]
[selinux]
[colors]
[root@centos7-200 ~]#
另外说明:ansible-doc 命令查看帮助信息
ansible-doc -l 可以列出所有支持的模块
ansible-doc -s yum 可以列出yum的详细说明信息及用法