0

using ansible looking for some idea for changing values directly on the destination system instead of copying files from source.

example:

I have many files in tmpl format on the destination system and would like to change the values related to this <%= applicationname_zk_quorum %> by using ansible variable's dynamically.

/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

I understand that ansible variables only support for handling yaml and don't have any idea if anything it is possible to apply something for tmpl file.

thanks a lot for all your support and guidance!!!.

BMW
  • 42,880
  • 12
  • 99
  • 116
Vadiraj k.s
  • 55
  • 1
  • 8

1 Answers1

0

Please go through jinja2 documents and Ansible template module

Suppose you have this file conf/zk.properties.tmpl.j2 in your current ansible module's templates folder

- template:
    src: conf/zk.properties.tmpl.j2
    dest: /applicationname/conf/zk.properties.tmpl
    owner: root
    group: root
    mode: 0644

You can define the variable in conf/zk.properties.tmpl.j2. For example:

#nodes in quorum

applicationname.zk.quorum=<%= {{ applicationname_zk_quorum }} %>

applicationname.zk.node=/applicationnames/node/

#Session timeout in milliseconds
applicationname.zk.sessionTimeout=72000

In vars folder, you can define this variable applicationname_zk_quorum as a yml file, for example, tmpl.yml.

applicationname.zk.quorum: "zook1:6666,zook2:6666,zook3:6666"
BMW
  • 42,880
  • 12
  • 99
  • 116