我的应用安装ansible == 2.2.1.0作为其要求的一部分,我希望它使用我在特定位置的库。 我试图找到ansible.cfg文件,但无法在任何地方找到它,也不确定它最好放在哪里。 我正在使用Mac OS。 编辑: 我在/Users//.ansible.cfg上设置了一个配置文件,当我用-vvv运行ansible-playbook时,它显示: 使用/Users//.ansible.cfg作为配置文件
但我出于某种原因得到了这些错误和警告:
[警告]:找不到主机文件:/ etc / ansible / hosts
[警告]:提供的主机列表为空,只有localhost可用
ERROR!相互冲突的行动陈述
谢谢!
答案 0 :(得分:1)
来自Ansible docs:
可以在配置文件中进行更改,并按以下顺序处理:
- ANSIBLE_CONFIG(环境变量)
- ansible.cfg(在当前目录中)
- .ansible.cfg(在主目录中)
- /etc/ansible/ansible.cfg
也就是说,无需填充 Ansible 即可运行这些位置。但你应该 在那里寻找 。
如果您的应用程序正在运行 Ansible ,并且您想指定配置的内容,只需在执行目录中创建ansible.cfg
即可。如果您希望管理配置,只需按顺序查找它们并按您的需要进行管理。您甚至可以创建每个文件, Ansible 将查找它们。然后,您可以通过在ansible.cfg
或-vv
来电中添加ansible
参数来确定使用的ansible-playbook
。
您看到的警告和错误与找不到 Ansible 配置无关。
[WARNING]: Host file not found: /etc/ansible/hosts
当您致电ansible
或ansible-playbook
时,请添加--inventory path/to/your/inventory
。这也将解决下面的警告。
[WARNING]: provided hosts list is empty, only localhost is available
ERROR! conflicting action statements
这通常是由在单个任务项中进行多个模块调用引起的。把它们分开:
- name: make some files
file: state=directory dest=/etc/foo
file: src=foo/bar dest=/etc/foo/bar
应该是
- name: create a dir
file: state=directory dest=/etc/foo
- name: create a file
file: src=foo/bar dest=/etc/foo/bar