在Mac OS X上的“ / etc / ansible /”中找不到配置文件


15

我在Mac OS X上,是Ansible的新手。我忘记了如何安装它。我认为通过pip

$ pip freeze
altgraph==0.12
ansible==1.9.2

无论如何,从我正在阅读/etc/ansible/的内容来看,应该有一个配置文件,但是该目录的内容仅仅是:

$ ls -a /etc/ansible/
.       ..      .hosts.swp  hosts       roles

看起来也没有定义任何环境变量:

$ echo $ANSIBLE_CONFIG
# blank line

据我所知,Ansible可以正常工作(没有local ansible.cfg,并且ansible用户目录中的文件夹中没有任何东西),但是我很困惑。

有人可以解释一下我没来吗?

Answers:


14

据我所知,Ansible配置文件(ansible.cfg)可能位于此处,用于用户级配置设置:

~/.ansible.cfg

以及位于此处的系统范围的配置;您声明找不到任何此类文件的位置:

 /etc/ansible/ansible.cfg

如果您以某种方式在系统上有多个用户,那么~/.ansible.cfg您忘记的一个用户目录中可能有一个浮动目录?

您声明您可能使用来安装了它pip,但检查了Ansible的Homebrew公式,直到9月4日它才从1.9.2版本升级到1.9.3版本。那么,也许您是通过Homebrew安装的?

您主要关心的是是否ansible.cfg有必要:

据我所知,Ansible可以正常工作(没有local ansible.cfg,并且ansible用户目录中的文件夹中没有任何东西),但是我很困惑。

有人可以解释一下我没来吗?

是的,无需配置即可正常运行。对于大多数软件来说,所有配置文件都将覆盖核心系统默认设置。因此,如果ansible.cfg缺少它,Ansible仍然可以工作,但仅使用核心系统默认值。如Ansible官方文档中所述

Ansible中的某些设置可以通过配置文件进行调整。对于大多数用户而言,库存配置应该足够了,但是可能有一些原因需要更改它们。

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

* ANSIBLE_CONFIG (an environment variable)
* ansible.cfg (in the current directory)
* .ansible.cfg (in the home directory)
* /etc/ansible/ansible.cfg

不在任何地方。而且我是唯一的用户。我想我可以从git repo复制它并将其放在那些目录之一中。
MikeiLL 2015年

好决定。它不是通过自制软件安装的,但它是1.9.2版。目前正在通过pip重新安装...
MikeiLL 2015年

现在为1.9.3,但仍不能在上述两个位置中找到配置目录。有~/.ansible/cp,并且/etc/ansible/内容相同。
MikeiLL,2015年

谢谢。说得通。我只是不确定库存配置是否通常存储在引用的ansible.cfg文件之一中。
MikeiLL 2015年

1
@MikeiLL不,不用担心。我的最后编辑是当我终于了解您的担忧时。老实说,我想不出一个众所周知的软件,它不能按照“我将拥有核心默认值,但是如果我找到一个将覆盖默认值的用户配置文件”的逻辑运行。当整个系统依赖于外部配置文件时,您遇到的最大安全性/稳定性风险是,如果该文件不存在,整个系统将崩溃吗?这不是一个好计划。现在您很高兴明白,如果缺少配置文件,则不会发生任何不良情况。
JakeGould

13

homebrew公式替换字符串/etc/ansibleconstants.py使用/usr/local/etc/ansible。对我来说似乎是坏枣。

我没有/usr/local/etc/ansible以后brew install ansible。但是,我确实确认,如果您在ansible.cfg此处放置有效货币,则将兑现(暂时)。

我的建议:

  1. 不要使用brew安装Ansible
  2. 明确说明您的配置不依赖于系统环境全局变量,例如 /etc/ansible/ansible.cfg

参考代码:

Brew Ansible公式替换#475:https : //github.com/Homebrew/homebrew/blob/master/Library/Formula/ansible.rb#L475

ansible constants.py#61:https//github.com/ansible/ansible/blob/v1.9.3-1/lib/ansible/constants.py#L61


自制程序在用户空间中工作,因此所有内容都在/ usr / local下。这可以。
gagarine

3

在OSX上,我使用pip安装了ansible,发现/ etc / ansible或主目录中不存在ansible.cfg。

资料来源:https : //github.com/ansible/ansible/issues/18512

pip通常不会安装配置文件,而ansible的pip也不例外。如果您只想尝试使用ansible,通常无需ansible.cfg文件即可使用。(您确实需要指定一些清单,但是您可以在命令行而不是文件上进行指定)。如果要获取示例配置文件以进行调整,可以从tarball或源存储库中获取它:https : //github.com/ansible/ansible/blob/devel/examples/ansible.cfg

清单文件的解释如下:http : //docs.ansible.com/ansible/intro_inventory.html要在命令行上指定清单的主机,只需执行以下操作:

ansible -i 'host1,host2,host3'  all -m command -a 'hostname'

如果要通过命令行指定单个主机,请在清单字符串中使用尾部逗号:

ansible -i 'host1,' all -m command -a 'hostname'

2

我发现Homebrew不会创建/etc/ansible目录,也不会创建配置文件或主机文件。但是,如果您创建/etc/ansible目录并将配置从github存储库复制到/etc/ansible目录中,它将识别为配置。

您可能还想进入该配置,并取消注释指定库存位置的行,以及:

库存= / etc / ansible / hosts

完成此操作后,ansible进行自制安装的方式将与其他任何安装相同,并且在线查找的文档可与该自制版本一起使用。


无法识别/ usr / local / etc /。尝试创建/ etc / ansible /目录,并移动主机和ansible.cfg正常!
aelkz
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.