问题标签 [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.
ansible - 如何在 Ansible 剧本中做出特定于架构的决定?
我正在尝试使用 Ansible 剧本来运行多架构集群。现在,要做到这一点,我需要做出具体的决定。是否有任何 ansible 模块可以帮助我做到这一点?或者有什么方法可以让我知道拱门并在“何时”条件语句中使用它?
ansible - Ansible - 将远程脚本的输出读入变量以供其他游戏处理
我正在编写一个剧本,它将在许多远程盒子上运行一个脚本。运行这些遥控器的 stdout_lines 需要整理成一个单独的数组,该数组可以传递给在本地运行的书中的另一个剧本,然后将这个大的整理数组传递给一个模块。
我似乎找不到办法做到这一点。一些代码类型的东西(不起作用)如下:
hostvars['localhost']['final_info']
在第二部剧中不存在。
谁能解释我是否(a)使用每个遥控器的输出事实正确构建我的数组,以及(b)如何将最终合并的数组放入另一个游戏中以便我可以使用它?
ansible - Ansible 处理程序读取本地事实
我有一个 Ansible 剧本,可以在一组服务器中安装可变数量的应用程序。要安装应用程序,必须运行许多顺序任务,并且由于可能有多个应用程序,我循环通过它们with_items:
我还以这样的方式注册本地事实中的任何更改,如果在应用程序 A 上执行三个任务,则标记应用程序 A。
我遇到了处理程序的问题。它应该读取这些本地事实并重新启动任何已标记的应用程序,但我未能实现这一点。我的处理程序只是跳过,但调试显示带有标志的本地事实。
我的剧本与此类似:
我需要帮助的处理程序如下。它正在跳过“重新启动应用程序”任务:
最后我的group_vars
ansible - 为什么角色部分中没有 Ansible 事实?
问题
ansible_distribution
为什么角色部分中没有诸如 Ansible 的事实?
ansible.cfg
ansible - Ansible 从 vars_file 读取多个同名变量
在我的~/ip_vars_file
,我有
这是用 lineinfile 创建的,
我无法像 with_items 一样读取所有三个 ip。我只得到我剧本中的最后一个 IP。
我得到的输出是,
我想要的输出是这样的
我想一一迭代ips。我如何实现这一目标?
基本上,我想在启动时存储实例的 ips 并在稍后部署期间使用它们。但是当我启动多个具有相同名称的实例时,我被卡住了
ansible - Ansible regex_findall 多组
我正在尝试使用 Ansible 从 IOS 设备收集数据,然后使用收集到的数据来运行任务。
我正在运行一个任务来执行 show running-config 命令来查找具有特定描述的接口:
该任务的输出:
我正在寻找以 * 开头的描述的所有接口名称/编号。我正在使用 set_fact 从 regex_findall() 中获取它:
正则表达式工作正常并从两组中获取数据。输出被视为:
我不知道如何获取该列表中的两个项目并分别使用它们。我想使用 ios_config 运行一个任务,以从该列表中的接口名称/编号配置接口,并使用我收集的该描述。
这是一个嵌套列表吗?我尝试了不同的变化,如:
noAuthInts.0 或 noAuthInts.0.0 和 noAuthInts.0.1,但不产生我正在寻找的东西。
我也尝试使用 with_nested: "{{ noAuthInts }}" 并遍历它,但似乎没有正确循环。
我怎样才能从该列表中取出两件并单独使用它们?
ansible - 在 ansible 中以编程方式复制和运行配置文件
我正在写一个ansible代码。它执行两个任务,首先是将配置文件分组复制到目标实例。其次是运行该配置文件来安装应用程序。
我正在以编程方式创建配置文件和清单,以便将相同的后缀添加到清单中的配置文件名和组名中:
这是我复制文件的代码
这是我运行conf文件的代码
但是根据用户输入,可以创建不确定数量的 conf 文件和组,所以我想以编程方式完成任务。所需的代码可能如下所示:
有人可以建议我用什么来使我的代码更加通用和高效吗?
ansible - Ansible:如何在 Ansible 中仅从 FQDN 获取 IP 地址?
所以,这里是设置。
我通过额外的变量将 FQDN 列表传递给剧本,但控制机器的密钥与其相应的 IP 地址一起复制。此外,它们在清单中也没有特定的组。
这个剧本的主机是一个服务器,它可能是也可能不是我通过额外变量传递的这个列表的一部分。因此,剧本根本没有这些节点的事实。
所以,我的问题是如何即时获取各个主机的 IP 地址,以便我可以遍历它们以检查我之前通过另一个剧本/角色使用它们的 FQDN 设置的某些属性。(注意:我严格需要 FQDN 来设置这些属性)
我使用了 delegate_to 模块,并传递了 FQDN,它可以工作,但它会询问我是否要继续连接(是/否)并等待用户输入以进行初始运行(如果给定是,它会按预期工作)。他们还有其他更简单、更清洁的方法来解决这个问题吗?
(注意:请记住,我不能修改库存的内容,例如放置别名等)
这是代码片段:
这是调用上述角色的主 yml 文件的片段:
库存代码片段如下所示:
[servernode]
10.0.2.15 ansible_ssh_user=grant ansible_ssh_pass=grant
[all]
10.0.2.15 ansible_ssh_user=grant ansible_ssh_pass=grant
10.0.2.16 ansible_ssh_user=grant ansible_ssh_pass=grant
10.0.2.17 ansible_ssh_user=grant ansible_ssh_pass=grant
10.0.2.18 ansible_ssh_user=grant ansible_ssh_pass=授予
10.0.2.19 ansible_ssh_user=授予 ansible_ssh_pass=授予
最后,这就是我通过额外变量传递的内容:
ansible - 在一个角色中创建 set_fact 变量并在另一个角色中使用它们
我有一个复杂的环境,包含多个系统的阶段和用户。
阶段是:dev,int等。
每个阶段都有一个应用程序的用户,我们称之为用户 john。这导致用户 johnd 用于 dev 和 johni 用于 int 等等。
为了抽象系统管理,由于阶段中的所有系统都是相同的,我创建了这个数据结构:
现在我有一个角色“collect_user_information”,它从 LDAP 收集所有类型的信息,并在 set_fact 的帮助下将它们存储在一个变量中。
和 set_fact:
要转储变量,我使用:
调试输出看起来很有希望。
现在我想执行一个角色来创建用户主页。
首先,我转储变量的条目:
现在我想使用这个数据结构。我想我可以通过引用“{{user.name}}”或“{{user['name']}}”来访问这些值,但两者都不起作用。
那么,它是如何工作的?
ansible - 是否可以使用 with_dict 模块和 ansible-fact ?
我正在尝试编写一个角色来配置一个 keepalived 集群。我希望根据目标框的 IP 将唯一信息传递到模板中。
在这种情况下:服务器 A 是 192.168.1.140,服务器 B 是 192.182.1.141,VIP 是 192.168.1.142
字典看起来像这样:
我希望任务看起来像这样:
模板看起来像这样:
任何见解将不胜感激约翰