小编Lee*_*Fox的帖子

在模板文件中迭代时的多个组

这篇来自 Ansible.com 的文章展示了如何迭代模板文件中的组:https : //support.ansible.com/hc/en-us/articles/201957887-How-to-loop-over-a-组内主机列表模板-

它显示了以下代码:

{% for host in groups['db_servers'] %}
   {{ hostvars[host]['ansible_eth0']['ipv4']['address'] }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

它工作得很好,但我想要迭代的服务器是通过多个组定义的。所以想象一下,我想遍历 db_servers 和 qa 组中的所有服务器。我怎样才能做到这一点?

我试图以与我在剧本中相同的方式指定组的交集,但这不起作用。所以,当我尝试:

{% for host in groups['db_servers:&qa'] %}
   {{ hostvars[host]['ansible_eth0']['ipv4']['address'] }}
{% endfor %}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

fatal: [54.173.247.115] => {'msg': "AnsibleUndefinedVariable: One or more undefined variables: 'dict object' has no attribute 'db_servers:&qa'", 'failed': True}
Run Code Online (Sandbox Code Playgroud)

关于如何迭代模板文件中的多个组的任何建议?

ansible ansible-playbook

5
推荐指数
1
解决办法
3510
查看次数

如何使用 Ansible 从 host_vars 中提取 AWS 标签值

我想通过 Ansible 从 AWS EC2 标签中提取值。这有效:

{{ hostvars[host]['ec2_private_ip_address'] }}
Run Code Online (Sandbox Code Playgroud)

并将返回 IP 地址。所以,我正在获取 EC2 数据。但是,我的 EC2 实例上有一个名为 app 的标签,其值类似于 Cassandra 或 PostGres,我需要找出我当前正在处理与该帖子关联的应用程序的每个主机。关于如何获取 EC2 标签值的任何想法?

amazon-web-services ansible

2
推荐指数
1
解决办法
2732
查看次数