【发布时间】:2015-06-24 08:57:39
【问题描述】:
我正在使用 geerlingguy.firewall ansible Galaxy 角色来添加 iptables 规则。其中有一个 firewall_additional_rules 列表变量,我在其中添加了一些脚本以允许来自某些 ips,我想提供另一个列表变量
white_listed_ips:
- 1.1.1.1
- 1.1.1.2
等
我希望能够通过循环从 white_listed_ips 列表生成 firewall_additional_rules 列表。但是我找不到任何方法来做到这一点。可以循环遍历变量并添加到 yaml 中的数组吗?
所以我想在 var 文件中做这样的事情(我知道这行不通,请放纵我)
firewall_additional_rules:
{% for ip in white_listed_ips %}
- iptables -A INPUT -p tcp -s {{ ip }} --dport ssh -j ACCEPT
- iptables -A INPUT -p tcp -s {{ ip }} --dport 80 -j ACCEPT
{% endfor %}
这是要进入角色中的jinja2模板,可以看这里: https://github.com/geerlingguy/ansible-role-firewall/blob/master/templates/firewall.bash.j2
【问题讨论】:
-
你能详细说明“这不起作用”吗?错误消息..查看示例 (github.com/ansible/ansible-examples/blob/master/lamp_simple/…),您的代码应该可以工作。
-
我正在尝试在 var 文件中做类似的事情,而不是 jinja 模板
标签: loops variables yaml jinja2 ansible