Ansible 主配置文件的四种读取方式.note
- ansible加载配置文件的顺序:
1.
1st: 环境变量ANSIBLE_CONFIG指向的配置文件 //通过环境变量手动指定路径
2nd: ./ansible.cfg //当前目录
3rd: ~/.ansible.cfg //用户家目录
4th: /etc/ansible/ansible.cfg //固定路径:/etc/ansible/ansible.cfg
# 如果以上4个位置都找不到配置文件,则config file为none1、设置环境变量:
通过设置环境变量 ANSIBLE_CONFIG ,告诉ansible配置文件路径
vim ~/.bashrc
export ANSIBLE_CONFIG="~/ansible.cfg"
:wq
source ~/.bashrc
cp /etc/ansible/ansible.cfg ~/ansible.cfg
# 验证:
ansible --version
2、配置文件指向当前目录:
当没有设置环境变量时,ansible会在当前执行命令的目录下查找 ansible.cfg 配置文件
将 ~/.bashrc 中的环境变量注释掉后:
#export ANSIBLE_CONFIG="/data/ansible.cfg"
source ~/.bashrc
mkdir /data
cp /etc/ansible/ansible.cfg /data
cd /data
ansible --version
3、配置文件指向用户家目录:
没有设置环境变量,当前执行命令的目录下也没有ansible.cfg文件,ansible到当前登录用户(root)的家目录下去找.ansible.cfg文件,注意这里的是隐藏文件~/.ansible.cfg
# 在~/.bashrc文件中注释掉以下配置
#export ANSIBLE_CONFIG="/data/ansible.cfg"
# 生效
source ~/.bashrc
# 删除/data/下的ansible.cfg
rm -f /data/ansible.cfg
# 家目录新增配置文件
cp /etc/ansible/ansible.cfg ~/.ansible.cfg
ansible --version
4、配置文件指向固定路径:/etc/ansible/ansible.cfg:
没有设置环境变量,当前执行命令的目录下也没有ansible.cfg文件,当前登录用户(root)的家目录也没有.ansible.cfg文件,Ansible最后查找/etc/ansible/ansible.cfg
# 在~/.bashrc文件中注释掉以下配置
#export ANSIBLE_CONFIG="/data/ansible.cfg"
# 生效
source ~/.bashrc
# 删除/data/下的ansible.cfg
rm -f /data/ansible.cfg
# 家目录删除配置文件
rm -f ~/.ansible.cfg
ansible --version