使用Ansible编辑J2模板

时间:2019-06-10 19:11:44

标签: ansible jinja2 ansible-template

我收到了一份供应商Ansible剧本,我需要在j2模板中添加新行并为我们的环境调整剧本, 我将需要在一行中编辑模板->保留天数:{{xyz}}

原始模板的外观如下:

#cat cluster.j2
apiVersion: v1
metadata:
  name: cluster
  cluster_name: {{ my_name }}
data:
  new_image: |+
      baseImage: {{ FROM_repo }}

这是我的Ansible剧本,以添加该行。

---
- name: mydata
  hosts: localhost
  tasks:
   - name: edit files
     lineinfile:
       dest: cluster.j2
       line: " retention_days: {{ xyz }}"
       insertafter: 'new_image'

我的最终结果,即;我的j2模板文件应具有像这样的确切字符串

retention_days:{{xyz}}

最终-文件应如下所示->

#cat cluster.j2
apiVersion: v1
metadata:
  name: cluster
  cluster_name: {{ my_name }}
data:
  new_image: |+
      retention_days: {{ xyz }}
      baseImage: {{ FROM_repo }}

我不希望Ansible将{{xyz}}视为变量,而是将其视为一个字符串并将其添加到其中...我该如何转义{{和}},请告诉我。 / p>

现在。,我得到一个错误:xyz未定义。.

MSG:

***The task includes an option with an undefined variable. The error was: 'xyz' is undefined***

1 个答案:

答案 0 :(得分:0)

根据documentation中的指定,您可以使用Executor来转义块中的元素,或添加其他花括号。

例如:

RejectedExecutionHandler