ansible-facts相关内容

在 Jinja 模板中使用 Ansible control master 的 IP 地址

我想在 Ansible 剧本使用的 J2 模板中插入一个 IP 地址.该 IP 地址是不是正在供应的主机的地址,而是完成供应的主机的 IP.到目前为止,我发现的所有内容都涵盖了使用与正在配置的主机相关的变量/事实.换句话说:当执行 ansible -m setup 127.0.0.1 时,我想插入的 IP 是 ['ansible_default_ipv4']['address'] 中的 IP. ..
发布时间:2021-11-11 01:27:25 其他开发

Ansible - 包含来自远程主机的 vars 文件

我想包含远程主机上文件中的变量,而不是运行 Ansible 的控制机器. 例如我有一个文件/var/database_credentials.yml(在我的网络服务器上) 将变量从该文件添加到主机变量以便我可以在模板中使用它们的最佳方法是什么? include_vars 模块只从控制机器获取文件.我可以使用 fetch 模块,但这似乎是不必要的步骤. 解决方案 将其与 / ..
发布时间:2021-11-11 01:22:07 其他开发

获取 Ansible 控制机 IP 地址的最佳方式

我正在使用 Ansible 和 ufw 在我的服务器上设置防火墙.作为 ufw 规则的一部分,我希望允许来自 Ansible 控制机器的 SSH,但不允许来自其他任何地方.我的问题是 - 获取控制机器本身的 IP 地址以便我可以将其纳入规则的最佳方法是什么? 我知道我可以使用 facts 获取我正在运行剧本的机器的 IP 地址,但我没有看到任何简单的方法可以为运行 ansible 的机器自动 ..
发布时间:2021-11-11 01:21:50 其他开发

你如何更改ansible_default_ipv4?

我想将 ansible_default_ipv4 更改为指向 eth1 而不是 eth0.我可以在剧本中或通过 --extra-vars 选项执行此操作吗? 解决方案 ansible 使用命令 ip -4 route get 8.8.8.8 来获取默认的 ipv4 接口.您可以更改您的 ip/路由表 使 eth1 成为默认路由,它会返回它. 或者您可以使用 自定义事实. PS: ..
发布时间:2021-11-11 01:17:42 其他开发

Ansible - 在收集事实之前采取的行动

有谁知道如何做一些事情(例如等待托管节点的端口/启动)之前收集事实?我知道我可以关闭收集事实 gather_facts: 没有 和THEN等待端口但如果我需要事实同时还需要等到节点启动怎么办? 解决方案 收集事实相当于运行 设置模块.您可以通过运行它来手动收集事实.它没有记录,只是简单地添加一个这样的任务: - 名称:收集事实设置: 结合 gather_facts: no 在剧本级 ..
发布时间:2021-11-11 01:15:20 其他开发

Ansible 迭代由变量设置的清单组中的主机

我的角色模板中有下一个片段: 上游门户{{% 设置节点 = 组["my_dev_cluster"] %}{% 用于节点中的节点 %}...对节点做一些事情...{% 结束为 %}} 而且效果很好. 但是当我尝试像这样参数化库存组名称时: 上游门户{{% set nodes = groups["{{cluster_name}}"] %}{% 用于节点中的节点 %}...对节点做一些事情. ..

如何在 vars 中使用已注册 ansible 变量的字典?

我想使用 vars 将多个变量传递给任务.目前,我正在这样做 变量:var1_name: "var1_value"var2_name: "var2_value" 随着变量数量的增加,我更愿意使用 vars 将变量字典传递给任务.我已经构建了一个像下面这样的变量字典 - 名称:设置事实主机:本地主机任务:- 设置事实:变量:“{{ variables|default({}) | combine ..
发布时间:2021-11-11 01:10:45 其他开发

如何在 Ansible 中将命令输出存储到数组中?

本质上,我希望能够使用 ansible 在 Linux 中处理“通配符文件名".本质上,这意味着使用带有部分文件名后跟“*"的 ls 命令,以便它仅列出某些文件. 但是,我无法将输出正确存储在变量中,因为返回的文件名可能不止一个.因此,无论在一项任务中数组中可能有多少个结果,我都希望能够存储这些结果.然后我希望能够在以后的任务中从数组中检索所有结果.此外,由于我不知道可能返回多少个文件,我无 ..
发布时间:2021-11-11 01:06:45 服务器开发

如何在 Ansible 中获取任意远程用户的主目录?

我可以使用 shell 使用 getent 和 awk 的组合来做到这一点: getent passwd $user |awk -F: '{ 打印 $6 }' 作为参考,在 Puppet 中,我可以使用自定义事实,如下所示: 需要 'etc'等密码{ |用户|Facter.add("home_#{user.name}") 做设置代码做用户目录结尾结尾} 这使得用户的主目录可用作 home_ ..
发布时间:2021-11-11 01:04:03 其他开发

在模块代码中使用 ansible_facts

我正在尝试创建我自己的 ansible 模块(它将更新 cmdb)并且我正在寻找如何在模块代码中使用 ansible_facts ? 我的模块脚本示例是: #!/usr/bin/python从 ansible.module_utils.basic 导入 *导入 json, ast从 servicenow 导入 ServiceNow从 servicenow 导入连接def __get_ser ..
发布时间:2021-11-11 01:03:23 Python

在所有主机上强制收集事实

我正坐在一个相当复杂的 Ansible 项目前面,我们用它来设置我们的本地开发环境(多个 VM),并且有一个角色使用 Ansible 收集的事实来设置 /每个 VM 上的 etc/hosts 文件.不幸的是,当您只想为一台主机运行剧本时(使用 -limit 参数),来自其他主机的事实(显然)丢失了. 有没有办法强制 Ansible 收集所有主机上的事实,即使您将剧本限制在一个特定主机上? ..
发布时间:2021-11-11 01:01:38 其他开发

如何过滤剧本中的收集事实?

我正在担任一个只需要收集一个事实的角色. 性能是一个问题,我知道收集事实很耗时. 我正在寻找某种方法来过滤剧本中的 gather_facts,这将允许我只收集所需的事实. 这可以使用 setup 核心模块: ansible -m setup -a 'filter=ansible_hostname' my_host10.200.0.127 |成功 >>{“ansible_fact ..
发布时间:2021-11-11 01:00:56 其他开发

Ansible:获取当前目标主机的 IP 地址

如何获取角色当前主机的 IP 地址? 我知道您可以获得主机所属的组列表和主机的主机名,但我找不到获取 IP 地址的解决方案. 您可以使用 {{inventory_hostname}} 获取主机名,使用 {{group_names}} 获取组 我尝试过类似 {{ hostvars[{{ inventory_hostname }}]['ansible_ssh_host'] }}和 ip ..
发布时间:2021-11-11 01:00:27 其他开发

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

我看到 Ansible 提供了一些我们可以在剧本和模板文件中使用的预定义变量.比如主机ip地址是ansible_eth0.ipv4.address.谷歌和搜索文档我找不到所有可用变量的列表.有人会帮我列出它们吗? 解决方案 啊!来自常见问题解答: 如何查看所有 ansible_ 变量的列表?Ansible 默认收集有关被管理机器的“事实",这些事实可以在 Playbooks 和模板中 ..
发布时间:2021-11-11 00:58:05 其他开发

ansible ssh 到 json_query 循环响应值

团队,我收到来自 json_query 的响应,这是一个 dict key:value,我想遍历所有值并为每个值运行 ssh 命令 下面为我提供所有节点的列表 - name:“使用 K8s 事实从集群中获取所有节点"k8s_facts:kubeconfig: $WORKSPACE种类:节点verify_ssl:否注册:node_list- 调试:var: node_list |json_q ..
发布时间:2021-11-11 00:55:13 其他开发

ansible 多个 with_items 并在清单组中的所有主机上循环

团队,我遇到了需要在多个主机上执行多个命令的情况.对于单一主机情况,下面很好,但如何在多个主机上迭代相同? - 名称:“ECC 单比特和双比特代码的 SMI 测试"命令:“smi --xml-format --query | grep Retired_count | grep -v 0"ignore_errors: 没有寄存器:_smi_ecc_resultfailed_when: _smi_ ..
发布时间:2021-11-11 00:55:10 其他开发