Шаблон Ansible Jinja If, Оператор If

  • Автор темы Chrone111
  • Обновлено
  • 21, Oct 2024
  • #1

Это фрагмент моего шаблона Ansible jinja, который заполняет шаблон, специфичный для среды.

 
 "Syntax Error while loading YAML.\n\n\nThe error appears to have been in 'True': line 26, column 2, but may\nbe elsewhere in the file depending on the exact syntax problem.\n\n(could not open file to display line)"}
 

Это не удается с довольно общим сообщением об ошибке:

docker_compose_mq: <string-passed from Jenkins> docker_compose_profiles: "string" {% if "{{ risk_docker_compose_mq }}" == "string" %} {% "{{ risk_docker_compose_profiles: "string1" }}" %} {% endif %}

Я почти уверен, что это связано с выходом из кавычек здесь, но не могу хоть убей понять, что я делаю неправильно, есть идеи?

#ansible #jinja #template

Chrone111


Рег
29 Jul, 2020

Тем
80

Постов
181

Баллов
601
  • 25, Oct 2024
  • #2

Синтаксические ошибки вызваны наличием

 
 
 {% if variable == "blabla" %}
 
выражение блоки (обычно используемые для заполнения вывода шаблона соответствующим содержимым) внутри {% if backup_dest[0:1] == "/" %} заявление блоки.

Я использовал только автономные шаблоны jinja2, поэтому я не уверен на 100%, применимо ли это и к шаблонам Ansible jinja, но подозреваю, что да. В Джиндже2 {% set docker_compose_mq = <string-passed from Jenkins> %} {% set docker_compose_profiles = "string" %} {% if risk_docker_compose_mq == "string" %} {% set risk_docker_compose_profiles = "string1" %} {% endif %} statement blocks variables are referenced directly (and variable assignments are done in {% set ...%} утверждения), поэтому то, что вам нужно, может быть примерно таким:

{%...%} ||answer||

Синтаксис приведен ниже:

{%...%}

=> этот тест проверяет, является ли первый символ "backup_dest" "/"

{{...}}

=> этот тест проверяет, равна ли «переменная» «блабле»

С уважением

 

Vurhoorma33


Рег
25 Oct, 2024

Тем
66

Постов
154

Баллов
504
Похожие темы Дата
Тем
403,760
Комментарии
400,028
Опыт
2,418,908

Интересно