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'
@downvoterなぜか説明してください。 –
** jinja2 **の式に任意のpythonコードを書くことはできません。 –