2017-02-09 12 views
0

私はansiblesジンジャーテンプレートで他の条件が単純であることを望みます。平野Python用不可能な条件テンプレート

cluster_name+'A' if isCondition is True else cluster_name +'B' 

wors偉大以下の変数が定義されている場合:ansibleで

isSingleNode = True 
cluster_name = 'example' 

を私は次のエラーを参照してください。ここで

fatal: [localhost]: FAILED! => {"changed": false, "failed": true, "msg": "AnsibleError: template error while templating string: no test named 'True'. String: {\n\n \"key\" : \"{{ groups[cluster_name+'_mn01' if isSingleNode is True else cluster_name + '_mn02'] }}\"\n}\n"} 

は、最小限の例です。

file_1:変数

--- 
isCondition: True 

file_2:playbook.yml

--- 
- hosts: all 
    tasks: 
    - include_vars: variables 
    - debug: msg=" condition is {{ isCondition }} with cluster_name {{ cluster_name }}" 

    - name: copy file 
     template: src="bare_cluster.bp.j2" dest={{ cluster_name }}_blueprint.json backup=yes 

file_4:インベントリ

[examplecluster:children] 
examplecluster_mn01 

[mn01:children] 
examplecluster_mn01 

[examplecluster_mn01] 
localhost ansible_connection=local 

file_5:最小限の例を実行するbare_cluster.bp.j2

{ 

    "key" : "{{ groups[cluster_name+'_mn01' if isSingleNode is True else cluster_name + '_mn02'] }}" 
} 

コマンドがansible-playbook -i inventory playbook.yml -e 'cluster_name=examplecluster'

あります
+0

@downvoterなぜか説明してください。 –

+0

** jinja2 **の式に任意のpythonコードを書くことはできません。 –

答えて

1

試しましたか?

{% if isCondition %} {{ cluster_name }} A {% else %} {{ cluster_name }} B {% endif %} 
関連する問題