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

Mik*_*iLL 17 ansible macos

我使用的是 Mac OS X 并且是Ansible 的新手。我忘记了我是如何安装它的。我认为通过pip

$ pip freeze
altgraph==0.12
ansible==1.9.2
Run Code Online (Sandbox Code Playgroud)

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

$ ls -a /etc/ansible/
.       ..      .hosts.swp  hosts       roles
Run Code Online (Sandbox Code Playgroud)

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

$ echo $ANSIBLE_CONFIG
# blank line
Run Code Online (Sandbox Code Playgroud)

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

有人可以解释一下我没有得到什么吗?

Gia*_*968 16

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

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

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

 /etc/ansible/ansible.cfg
Run Code Online (Sandbox Code Playgroud)

如果不知何故您的系统上有多个用户,也许~/.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
Run Code Online (Sandbox Code Playgroud)


Mik*_*e D 16

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

我没有/usr/local/etc/ansiblebrew 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 下。这可以。 (3认同)

vai*_*war 5

在 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'
Run Code Online (Sandbox Code Playgroud)

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

ansible -i 'host1,' all -m command -a 'hostname'
Run Code Online (Sandbox Code Playgroud)