1

私のプレーブックには、include_varsモジュールを使用してJSONファイルが含まれています。AnsibleプレイブックでJinja2の置換を防ぐ方法は?

- 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 

として:下記としてJSONファイルは脚本に含まれている

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

    "Component2": { 
    "parameter1" : "{{ NET_SEG_VLAN }}", 
    "parameter2": "value2"  
    } 
} 

した後、私はhttpリクエストを送っするuriモジュールを使用しています:JSONファイルの内容を以下に示す通りそれは、http要求の本文がJSONデータComponent2で送信されていることがわかります。ただし、Jinja2はJSONファイルの{{ NET_SEG_VLAN }}を置き換えようとし、undefinedというエラーをスローします。 Jinja2を使用してJSONファイル内の何かを置き換えてHTTPリクエストでそのまま送信することは意図していません。

JSONファイルに含まれる変数のJinja2置換を防ぐにはどうすればよいですか?

答えて

2

{{'{{{NET_SEG_VLAN}}'}}でも変数をエスケープして、jinjaにそのブロック内に何もテンプレートしないようにすることができます。

1

{% raw %}{% endraw %}の変数をescapeとすると、Jinjaにそのブロック内に何もテンプレートを作成しないように指示することができます。

関連する問題