微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Ansible 变量在方括号和单引号内 [' ']

如何解决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 举报,一经查实,本站将立刻删除。