次のような group_vars で定義された変数を使用して、Jinja2 テンプレート ファイルの変数「env」の値を取得しています。
env: "{{ defined_variable.split('-')[0] }}"
env
可能な 3 つの値はabc
、、、def
ですxyz
。
この値に基づいて、可能な値を次のように定義したサーバー URL を使用したいと思いますdefaults/main.yml
。
server_abc: https://xxxx.xxx.com
server_def: https://xxxxx.xxx.com
server_xyz: https://xxxx.xxx.com
Jinja2 テンプレートで、私はやろうとしています:
{% if 'abc' == "{{env}}" %}
serverURL: '{{ server_abc }}'
{% elif 'def' == "{{env}}" %}
serverURL: '{{ server_def}}'
{% elif 'xyz' == "{{env}}" %}
serverURL: '{{ server_xyz }}'
{% else %}
ServerURL: 'server Url not found'
{% endif %}
ただし、 、またはの値が付いていServerURL = "server URL not found"
ても、常に定義されてしまいます。env
abc
def
xyz
以下の条件のように、Jinja2 テンプレート (ハードコード) の env を置き換えようとすると、true になります。
{% if 'abc' == "abc" %}
serverURL: '{{ server_abc }}'
つまり、構文は true ですが、"{{env}}"
実行時の値は評価されません。
これを解決するために何ができますか?