将相同的模板写入两个不同的文件,更改一个值

时间:2016-07-28 17:59:08

标签: templates ansible

我想将相同的Ansible模板写入两个不同的文件,一个文件中的值设置为True,另一个文件的值设置为False。

最好的方法是什么?我的直觉是尝试在template:指令中传递一个值。但是,it seems like this is frowned upon

一种方法是拥有两个不同的jinja文件,几乎完全相同的内容;一个值设置为True而另一个值设置为False。

另一种方法是定义变量,编写一个模板,然后使用set_fact更改变量的值,然后编写第二个文件。这似乎有点麻烦。

另一种方法是让模板检测它呈现的文件名,不知何故?并基于该分支在模板中。

我一定错过了一些明显的东西。

1 个答案:

答案 0 :(得分:0)

使用Ansible 2.x,您可以将vars:用于任务:

---
- hosts: localhost
  tasks:
    - template: src=my_template.j2 dest=out1.txt
      vars:
        name: John
    - template: src=my_template.j2 dest=out2.txt
      vars:
        name: Jane