Ansible:ansible.cfg的路径

lov*_*ova 5 ansible

我有这个已知的问题.所以我尝试修复它,但我没有看到我在哪里创建我的ansible.cfg(或它已经存在)?我在我的家庭目录中尝试过,但它仍然无法正常工作.

sudo vi ~/.ansible.cfg
Run Code Online (Sandbox Code Playgroud)

我读了很多关于/ etc/ansible的内容,但在我的系统上却没有.我在Mac El Capitan.我用安装安装了ansible pip.

ansible --version
ansible 1.9.4
  configured module search path = None
Run Code Online (Sandbox Code Playgroud)

udo*_*dan 15

来自文档:

可以在配置文件中进行更改并使用,该文件将按以下顺序处理:

  • ANSIBLE_CONFIG(环境变量)
  • ansible.cfg(在当前目录中)
  • .ansible.cfg(在主目录中)
  • /etc/ansible/ansible.cfg

我不确定这是否100%适用于1.9.4.Ansible在编写文档时非常糟糕.(=只有一个版本,并不总是提到引入或更改功能的版本)

但是我确信除了~/.ansible.cfg1.x 之外的所有东西都是我之前尝试过的.

因此,如果您已创建~/.ansible.cfg并且未使用它,请检查是否ANSIBLE_CONFIG已设置环境var ,或者您调用ansible的目录中是否有一个文件.找到的第一个将被使用.按以下顺序处理并不意味着它们将按该顺序合并.第一个获胜.

我读了很多关于/ etc/ansible的内容,但在我的系统上却没有.

是的,这取决于Ansible的安装方式.如果它不在那里你可以创建它但如果你不需要它,就不需要创建它.我实际上删除了我的,因为我觉得没用.

  • 这是黄金:**按以下顺序处理并不意味着它们将按该顺序合并。第一个发现胜利。**。由于现在大多数工具都会合并来自多个文件的配置。 (2认同)

小智 11

对于最新版本 (2.7.6),如果您通过 pip 安装,您将不会在 /etc 中获得 ansible 文件夹。所以这就是你做 ansible --version 时得到的

ansible --version
ansible 2.7.6
  config file = None
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /usr/bin/ansible
Run Code Online (Sandbox Code Playgroud)

但是一旦您在 /etc 下手动创建目录作为 ansible 并添加 ansible.cfg 文件,ansible 就会自动检测到它。但是您必须像 hosts file..etc 一样手动配置其余部分。所以在这之后我们得到

ansible --version
ansible 2.7.6
  config file = /etc/ansible/ansible.cfg
  configured module search path = [u'/root/.ansible/plugins/modules', u'/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python2.7/site-packages/ansible
  executable location = /usr/bin/ansible
Run Code Online (Sandbox Code Playgroud)