[root@master ansible]# rpm -qc ansible
/etc/ansible/ansible.cfg
/etc/ansible/hosts

cfg是主配置文件,hosts是主机清单文件inventory

配置文件中重要部分


ansible 配置文件里面定义了主机清单的位置,所以清单文件放在哪都行。

#inventory      = /etc/ansible/hosts

将模块推送到了被控端,被控端要将模块存储到下面的位置,充当临时目录,然后去执行,执行完了删除。

#remote_tmp     = ~/.ansible/tmp

同时并发的数量,也就是5台,并行主机数量的

#forks          = 5

下面就是ansible的sudo配置了,看你ansible是运行在超级管理员下面还是普通用户,一般的ansible多半是运行在超级管理员账户下面,这些不需要修改。

#sudo_user      = root

默认远程端口22,如果是其他端口需要修改

#remote_port    = 22

每次连接主机的时候,第一次连接需要输入yes和no,如果ansible操作那么多台主机都需要输入yes和no,这不太现实

#host_key_checking = False

配置文件的优先级


第一步读取:ANSIBLE_CINFIG

第二步读取:当前项目目录下的ansible.cfg(一般创建项目目录,在这个目录当中放入ansibel.cfg的文件是最合理的,然后在里面放一个主机清单文件)(因为每个项目都应该配置一个配置文件,因为每个项目配置都不一样)

第三步:读取用户家目录下的.ansible.cfg,如果是root用户就是root用户家目录,如果是普通用户那么就是普通用户家目录

第四步:读取/etc/ansibel/ansible.cfg

目前使用的配置文件优先级是最低的,如果定义ANSIBLE_CINFIG变量的路径

Ansible 配置文件_优先级

可以看到优先级变了,配置文件的优先级,如果要取消环境变量unset一下就行了

Ansible 配置文件_清单文件_02

 

Ansible 配置文件_优先级_03

实际上如何使用ansible配置呢?

在一个服务器上面可能有多个项目,不同的项目连接的主机和需要的配置是不一样的,所以每个项目里面都会放ansible.cfg。各自读取自己的配置文件,在配置文件当中可以定义inventory主机清单的配置,项目1需要访问1-10主机,项目2需要访问11-20主机,这样inventory主机清单就放在项目当中,然后在ansibel.cfg当中将路径inventory 进行修改为当前目录的inventory。

所以正真在使用的时候会为每个项目定义cfg文件和主机清单文件。