templates - 在 Ansible 模板中使用变量
问题描述
我需要通过 jinja 模板创建一个文件,但面临一些问题。
我的变量
my:
acl:
- name: test
allow:
- 0.0.0.0
deny:
- 1.1.1.1
- name: china
allow:
- 1.2.3.4
deny:
- 10.10.10.10
我的任务:
- name: Create acl file
template:
force: yes
src: acl.conf.j2
dest: "/etc/nginx/conf.d/{{ item.name }}.conf"
become: yes
with_items:
- "{{ my.acl }}"
我的模板
{% for allow in my.acl %}
allow {{allow.allow}};
{% endfor %}
{% for deny in my.acl %}
deny {{deny.deny}};
{% endfor %}
结果 china.conf
allow ['0.0.0.0'];
allow ['1.2.3.4'];
deny ['1.1.1.1'];
deny ['10.10.10.10'];
结果 test.conf
allow ['0.0.0.0'];
allow ['1.2.3.4'];
deny ['1.1.1.1'];
deny ['10.10.10.10'];
我在 china 文件中只需要在对象 china 中定义的没有 [' '] 的 IP 地址
我怎样才能做到这一点?
解决方案
修复模板
{% for allow in item.allow %}
allow {{ allow }};
{% endfor %}
{% for deny in item.deny %}
deny {{ deny }};
{% endfor %}
推荐阅读
- javascript - 是否可以修改此脚本以向现有类添加样式?
- python - HTML表单(python,flask):有一个按钮向方法提交一个唯一的参数
- css - Material UI - 在 FlexBox 中垂直居中一个元素
- ruby-on-rails - 无法运行 rails 控制台,我不确定问题是什么
- upwork-api - 我没有使用 https://www.upwork.com/api/auth/v1/oauth/token/access 获取访问令牌
- python - 将 json 对象列嵌套到数据框中
- azure - 无法通过门户下载 azure 功能的应用内容
- c# - 将随机数写入文本文件,C Sharp?
- python-3.x - 实现 Atari Breakout 时出现错误“AttributeError: 'NoneType' object has no attribute 'shape'”
- javascript - useEffect 不监听 localStorage