Inline jinja2, если условие в пьесе Ansible - PullRequest
0 голосов
/ 27 сентября 2019

Я не могу запустить встроенное утверждение elif jinja из пьесы Ansible.Я играю, как показано ниже

vm_number генерируется динамически, есть файл vars со значениями каждого vm (например, "PARAMS_vm_1").

PARAMS_vm_1:
-IP
- имя
- fqdn
- os
- местоположение

Условие:
<5 ошибка <br>= 5 добавить значение ксписок
что-нибудь еще, просто установите значение PARAMS_vm_1 равным get_vmdata

- name: set vm name
  set_fact:
    vmname: "vm_{{ vm_number }}"
 - name: set PARAMS_vmname
   set_fact:
     PARAMS_vmname: "PARAMS_{{ vmname }}"
 - name: get get_vmdata
   set_fact:
     get_vmdata: "{{ error if ((lookup('vars', PARAMS_vmname)) | length < 5) elif ((lookup('vars', PARAMS_vmname)) | length = 5) (lookup('vars', PARAMS_vmname)) + none else (lookup('vars', SUBTOPO_PARAMS_simname)) }}"

Если я использую только оператор if - все работает нормально.

Если я включилусловие elif показывает следующую ошибку - "msg": "template error while templating string: expected token 'end of print statement', got 'elif'.

1 Ответ

0 голосов
/ 27 сентября 2019

Ниже приведено утверждение if-elif-else-endif jinja.

Вам, очевидно, нужно внести изменения в эту команду, но убедитесь, что вы используете кавычки " или ' там, где это необходимо.

"{% if <your condition> %}<your command or message>{% elif <your condition> %}<your command or message>{% else <your condition> %}<your command or message>{% endif %}"
...