直接在目标系统上更改值,而不是从源系统复制文件
changing values directly on the destination system instead of copying file from the source
使用 ansible 寻找直接在目标系统上更改值而不是从源复制文件的想法。
示例:
我在目标系统上有很多 tmpl 格式的文件,我想通过动态使用 ansible 变量来更改与此 <%= applicationname_zk_quorum %>
相关的值。
/applactionname/conf/zk.properties.tmpl
[root@applicationname-7 ~]# cat /applicationname/conf/zk.properties.tmpl
#nodes in quorum
applicationname.zk.quorum=<%= applicationname_zk_quorum %>
#applicationname.zk.quorum=zook1:6666,zook2:6666,zook3:6666
applicationname.zk.node=/applicationnames/node/
#Session timeout in milliseconds
applicationname.zk.sessionTimeout=72000
我知道 ansible 变量只支持处理 yaml,不知道是否可以为 tmpl 文件应用一些东西。
非常感谢您的支持和指导!!!
请通过jinja2 documents and Ansible template module
假设您在当前 ansible 模块的 templates
文件夹中有此文件 conf/zk.properties.tmpl.j2
- template:
src: conf/zk.properties.tmpl.j2
dest: /applicationname/conf/zk.properties.tmpl
owner: root
group: root
mode: 0644
您可以在conf/zk.properties.tmpl.j2
中定义变量。例如:
#nodes in quorum
applicationname.zk.quorum=<%= {{ applicationname_zk_quorum }} %>
applicationname.zk.node=/applicationnames/node/
#Session timeout in milliseconds
applicationname.zk.sessionTimeout=72000
在vars文件夹中,可以将这个变量applicationname_zk_quorum
定义为一个yml文件,例如tmpl.yml
.
applicationname.zk.quorum: "zook1:6666,zook2:6666,zook3:6666"
使用 ansible 寻找直接在目标系统上更改值而不是从源复制文件的想法。
示例:
我在目标系统上有很多 tmpl 格式的文件,我想通过动态使用 ansible 变量来更改与此 <%= applicationname_zk_quorum %>
相关的值。
/applactionname/conf/zk.properties.tmpl
[root@applicationname-7 ~]# cat /applicationname/conf/zk.properties.tmpl
#nodes in quorum
applicationname.zk.quorum=<%= applicationname_zk_quorum %>
#applicationname.zk.quorum=zook1:6666,zook2:6666,zook3:6666
applicationname.zk.node=/applicationnames/node/
#Session timeout in milliseconds
applicationname.zk.sessionTimeout=72000
我知道 ansible 变量只支持处理 yaml,不知道是否可以为 tmpl 文件应用一些东西。
非常感谢您的支持和指导!!!
请通过jinja2 documents and Ansible template module
假设您在当前 ansible 模块的 templates
文件夹中有此文件 conf/zk.properties.tmpl.j2
- template:
src: conf/zk.properties.tmpl.j2
dest: /applicationname/conf/zk.properties.tmpl
owner: root
group: root
mode: 0644
您可以在conf/zk.properties.tmpl.j2
中定义变量。例如:
#nodes in quorum
applicationname.zk.quorum=<%= {{ applicationname_zk_quorum }} %>
applicationname.zk.node=/applicationnames/node/
#Session timeout in milliseconds
applicationname.zk.sessionTimeout=72000
在vars文件夹中,可以将这个变量applicationname_zk_quorum
定义为一个yml文件,例如tmpl.yml
.
applicationname.zk.quorum: "zook1:6666,zook2:6666,zook3:6666"