问题标签 [ansible-facts]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
10 回答
239080 浏览

ansible - 我在哪里可以获得 Ansible 预定义变量的列表?

我看到 Ansible 提供了一些我们可以在剧本和模板文件中使用的预定义变量。例如,主机 IP 地址是ansible_eth0.ipv4.address。谷歌和搜索文档我找不到所有可用变量的列表。
有人会为我列出它们吗?

0 投票
2 回答
8803 浏览

ansible - 发现管理 IP 并在模板中使用它

我正在尝试使用 Ansible 设置我的 sshd_config 文件。出于设计原因(我们有虚拟机和物理机,具有不同的 NIC),管理接口不是固定的,所以在我的模板中我不能只放

因为我事先不知道哪个接口将成为管理接口,所以我需要发现它。我知道 IP 总是在一个范围内(例如 192.168.1.0/24)。

如何发现哪个接口具有该 IP,然后在模板中使用它?

0 投票
2 回答
5870 浏览

python - 以编程方式使用 ansible 收集的事实

我想编写一个 Python 程序,它使用 Ansible 为我提供的事实ansible HOST -m setup

当我调用它时,我得到一个响应,它几乎只是纯 JSON:

有什么方法可以直接获取这个 JSON 响应而不解析 shell 输出(可能不太稳定)?我什至可以在 Python 3 程序中直接使用 Ansible 吗?

0 投票
3 回答
898 浏览

ansible - 显示主机的自定义名称

我有一本用于处理 EC2 实例的 Ansible 剧本。我正在使用动态清单 ( ec2.py ) 来获取我想要使用的实例组 ( hosts: tag_Service_Foo)。当我运行它时,它会产生如下输出:

但是,我可以从 Amazon 获取特定实例的“名称”标签(我这样做并将其存储在一个变量中,以便在剧本的几个部分中使用)。

有没有办法让 Ansible 在显示进度时将此字符串用作主机名?我希望看到更具描述性的内容(因为我没有记住 IP):

清单脚本的输出ec2.py如下所示(被截断;它很长)。

0 投票
3 回答
21319 浏览

ansible - 你如何改变 ansible_default_ipv4?

我想将 ansible_default_ipv4 更改为指向 eth1 而不是 eth0。我可以在剧本中或通过 --extra-vars 选项执行此操作吗?

0 投票
4 回答
15307 浏览

ansible - 强制对所有主机进行事实收集

我正坐在一个相当复杂的 Ansible 项目前面,我们用它来设置我们的本地开发环境(多个 VM),并且有一个角色使用 Ansible 收集的事实/etc/hosts在每个 VM 上设置文件。不幸的是,当您只想为一台主机运行剧本时(使用 -limit 参数),来自其他主机的事实(显然)丢失了。

有没有办法强制 Ansible 在所有主机上收集事实,即使您将剧本限制在一个特定的主机上?

我们试图在剧本中添加一个剧本来收集来自所有主机的事实,但当然这也仅限于 -limit 参数给定的一个主机。如果有一种方法可以强制该播放在其他播放之前在所有主机上运行,​​那将是完美的。

我用谷歌搜索了一下,找到了使用 redis 进行事实缓存的解决方案,但由于我们的剧本是在本地使用的,我想避免需要额外的软件。我知道,这没什么大不了的,但我只是在寻找一个“更清洁”、仅限 Ansible 的解决方案,并且想知道这是否存在。

0 投票
1 回答
111 浏览

ansible - Ansible 是否可以自动检查节点的状态并在节点未对齐时将其恢复到所需状态?

在 Puppet 中,节点代理将每隔一段时间与 Master 签到并发送有关节点的事实。然后,Master 将检查这些事实是否应该是它应该是的,如果它们已经错位,则会将它们恢复到所需的状态。

例如,假设我想确保没有创建其他用户,任何无根据的用户都将被删除。

在没有代理的情况下,Ansible 如何实现这一点?它如何远程收集事实?

0 投票
3 回答
21285 浏览

ansible - Ansible - actions BEFORE gathering facts

Does anyone know how to do something (like wait for port / boot of the managed node) BEFORE gathering facts? I know I can turn gathering facts off

and THEN wait for port but what if I need the facts while also still need to wait until the node boots up?

0 投票
1 回答
163 浏览

ansible - 是什么导致事实变得不可用?

是什么导致事实在剧本中变得不可用?我正在尝试访问 Ansible 的ansible_date_time事实,但我似乎无法弄清楚如何访问它。在Ansible date variable之后,它应该可以简单地在 playbook 中使用,例如:

当运行为:

应该产生输出:

但是,当我运行剧本时,我收到:

什么会导致ansible_date_time不可用?


更新:内容/etc/ansible/ansible.cfg是:

0 投票
1 回答
1346 浏览

ansible - Ansible - 获取不打印的 VSphere VM 事实

我正在运行 ansible 1.9.1,这是我的剧本。问题是剧本运行时没有任何问题,但只是没有按预期返回虚拟机事实。