ansible匹配自定义路径清单文件
查看当前匹配的清单文件路径
[root@server ~]# ansible --version
ansible [core 2.13.5]
config file = /etc/ansible/ansible.cfg --- 默认配置文件
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python3.9/site-packages/ansible
ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
executable location = /usr/bin/ansible
python version = 3.9.14 (main, Dec 5 2022, 13:41:22) [GCC 8.5.0 20210514 (Red Hat 8.5.0-17)]
jinja version = 3.1.2 --- 版本
libyaml = True
如果当前目录有ansible.cfg文件,则匹配当前目录下的,如果没有则匹配家目录下的,家目录也没有的话则匹配 /etc/ansible/ansible.cfg
执行 ansible 命令根据所在目录匹配相关 ansible 配置文件,实践中一般使用 ansible 命令的目录中创建
ansible.cfg 文件,此目录中也将包含任何你的 ansible 项目使用的文件,有清单或者主机清单。
ANSIBLE_CONFIG(ansible 环境变量中指向的配置文件)---->./ansible.cfg ---->~/.ansible.cfg ---->/etc/ansible/ansible.cfg 默认只有一个配置文件生效
管理配置文件中的设置
[defaults]
inventory = ./inventory #主机列表配置文件 加载自定义路径文件
library = /usr/share/my_modules #库文件存放目录
forks = 5 #默认并发数 5 (同时可以处理 5 个命令 -- 同时有 20 个节点主机 5 个主机执行在
5 个执行)
sudo_user = root #默认的 sudo 用户 root
ask_pass = false #每次执行 ansible 命令是否询问 ssh 密码
remout_port = 22
host_key_checking = False #检查对应服务器的 host_key ,建议取消注释
log_path = /var/log/ansible.log #ansible日志文件
module_name = command #默认模块,可以改为 shell
remote_user = user #要在受管主机上登录的用户名称,没有指定则是当前用户(受管、管 控、托管主机的用户名)
remote_tmp = ~/.ansible/tmp #临时的 py 命令文件存放在远程主机目录
[privilege_escalation] #特权升级
become = true #连接后是否在受管主机上切换用户,默认会切换到 root 下
become_method = sudo #如何切换用户
become_user = root #受管主机切换到的用户
become_ask_pass = false #是否为 become_method 提示输入密码,默认为 false
ansible匹配自定义路径清单文件
[root@server ~]# cd /home/student/ansible/inventory
[root@server inventory]# touch ansible.cfg
[root@server inventory]# ansible --version
ansible [core 2.13.5]
config file = /home/student/ansible/inventory/ansible.cfg
configured module search path = ['/root/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
ansible python module location = /usr/lib/python3.9/site-packages/ansible
ansible collection location = /root/.ansible/collections:/usr/share/ansible/collections
executable location = /usr/bin/ansible
python version = 3.9.14 (main, Dec 5 2022, 13:41:22) [GCC 8.5.0 20210514 (Red Hat 8.5.0-17)]
jinja version = 3.1.2
libyaml = True
[root@server ~]# mkdir /home/student/ansible/inventory -p
[root@server ~]# cd /home/student/ansible/inventory
[root@server inventory]# ansible --version
[root@server inventory]# touch inventory
[root@server inventory]# vim inventory
[root@server inventory]# ansible-inventory --graph