相关疑难解决方法(0)

如何防止 Ansible 剧本中的 Jinja2 替换?

在我的剧本中,使用include_vars模块包含了一个 JSON 文件。JSON 文件的内容如下:

{
  "Component1": {
    "parameter1" : "value1",
    "parameter2" : "value2"
  },

  "Component2": {
    "parameter1" : "{{ NET_SEG_VLAN }}",
    "parameter2": "value2"       
  }
}
Run Code Online (Sandbox Code Playgroud)

将 JSON 文件包含在剧本中后,我正在使用uri模块发送 http 请求,如下所示:

- name: Configure Component2 variables using REST API
  uri:
      url: "http://0.0.0.0:5000/vse/api/v1.0/config/working/Component2/configvars/"
      method: POST
      return_content: yes
      HEADER_x-auth-token: "{{ login_resp.json.token }}"
      HEADER_Content-Type: "application/json"
      body:  "{{ Component2 }}"
      body_format: json
Run Code Online (Sandbox Code Playgroud)

可以看出,http 请求的正文与 JSON 数据一起发送Component2。但是,Jinja2 尝试替换{{ NET_SEG_VLAN }}JSON 文件中的 并抛出undefined错误。目的不是使用 Jinja2 替换 JSON 文件中的任何内容,而是像在 …

configuration-management jinja2 ansible ansible-playbook

5
推荐指数
1
解决办法
2646
查看次数