ansible - 从变量向模板添加值
问题描述
我有一个变量测试
test:
- 10.0.0.1
- 10.0.0.2
- 10.0.0.3
- 10.0.0.4
并且有一个配置文件,您需要从该变量中插入一个值。输出中应该有 4 个配置文件,每个文件包含来自该测试变量的一行。我想出了如何使用列表中的 ip 名称创建 4 个文件,但我不明白如何将 ip 替换到模板中。
从模板:
auto br_omgt
iface br_omgt inet static
bridge_ports bond0.2210
address {{ db }}
netmask 255.255.255.192
gateway 10.15.35.62
解决方案
您必须使用模块模板。
你的文件必须是 jinja2。
角色/MY_Role/templates/my_file.txt.j2
my_file.txt.j2
auto br_omgt iface br_omgt inet static bridge_ports bond0.2210 address {{ db }} netmask 255.255.255.192 gateway 10.15.35.62
my_file.txt
auto br_omgt iface br_omgt inet static bridge_ports bond0.2210 address 10.0.0.1 netmask 255.255.255.192 gateway 10.15.35.62
剧本:
vars:
db: 10.0.0.1
tasks:
- name: Use Template
template:
src: my_file.txt.j2
dest: home/My_User/my_file.txt
使用循环,您有 4 个文件。(扩展)
vars:
db: 10.0.0.1
10.0.0.2
tasks:
- name: Use Template looped
template:
src: my_file.txt.j2
dest: home/My_User/my_file_{{index}}.txt
loop_control:
extended: yes
loop: "{{ db }}"
推荐阅读
- javascript - 如何让 webpack 生成包含所需块的单个 JS 文件?
- sql - 从多个表中选择(由另一个选择传递)
- apache - mod_security 基于发布数据的关闭规则
- asynchronous - 等待而不将函数声明为异步
- r - 使用外部列表从行中删除数据
- java - 我可以一次声明一个数组并在整个代码中再次声明它吗?
- sql - 使用 Charindex 获取字符左侧的数据
- amcharts - 如何在不显示滚动条的情况下使 AMchart 4 水平滚动
- python - Watson Studio 的神经网络没有给出正确的输出格式
- elasticsearch - 术语聚合返回多个字段 (min_doc_count: 0)