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

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

我使用的是 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 可以工作(没有本地,并且用户目录中的文件夹ansible.cfg中没有任何内容),但我感到困惑。ansible

有人可以解释一下我在这里不明白什么吗?

答案1

据我所知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 可以工作(没有本地,并且用户目录中的文件夹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

答案2

公式将中的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 常量.py #61: https://github.com/ansible/ansible/blob/v1.9.3-1/lib/ansible/constants.py#L61

答案3

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

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

pip 通常不安装配置文件,pip 与 ansible 也不例外。如果您只是想试用 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'

答案4

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

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

库存 = /etc/ansible/hosts

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

相关内容