如何解决Ansible 变量在方括号和单引号内 [' ']
大家好,谁能建议我如何格式化方括号和单引号内的变量。
我正在使用库存组,但希望有一个可以更改并被引用的变量,即
_devices:
- webservers
并且我希望在以下内容中使用 var _devices
`groups[' ']`
所以我只有一个条目要更改,而不是整部剧。用 [' ']
努力逃避"{{ _devices }}"
即
groups['"{{_ devices }}"']
{% for host in groups['webservers'] %}
{{ hostvars[host][‘ansible_host’] }}
{% endfor %}
解决方法
您将字符串文字与变量引用混为一谈;任何时候有人发现自己试图使用嵌套的 jinja2 胡子,这是一个错误
您谈到 []
意味着您希望 devices
实际上是一个组名称列表,在这种情况下,您需要 | extract
filter 应用 [groups[g_name] for g_name in devices]
(遗憾的是 jinja2 不理解这样的列表推导式)。然后,因为每次 extract
运行本身都是一个 list[str]
,这意味着输出将是 list[list[str]]
,但您只需要 list[str]
,您将应用 {{1} } 将它们折叠成一个列表
|flatten
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。