Я хочу создать переменную на основе условия, поэтому я создал следующее:
хозяева: тест
vars: vtarget_backup_folder_in_progress: "{{ "{{ folder }}/{{ target }}/test{{ hostvars['localhost']['tstamp'].stdout }}{{ type }}" if node_type == "master " else "{{ папка }}/{{ target }}/prod{{ hostvars['localhost']['tstamp'].stdout }}_{{ type }}" }}"
но у меня это не получается с ошибкой ниже:
Мы можем ошибаться, но это похоже на проблему с отсутствующими кавычками. Всегда заключайте скобки выражения шаблона в кавычки, когда они начинают значение. Например:
with_items:
  - {{фу}}
Должно быть написано как:
with_items:
  - "{{фу}}"
не могли бы вы помочь мне с этим?
РЕДАКТИРОВАТЬ
Я пробовал следующее:
задачи:
- имя: установить папку резервного копирования IN_PROGRESS
  set_fact:
     v_target_backup_folder_in_progress: >-
       {% если node_type == "мастер" %}
       "{{ папка }}/{{ target }}/test_{{ hostvars['localhost']['tstamp'].stdout }}_{{ type }}"
       {% еще %} 
       "{{ папка }}/{{ target }}/prod_{{ hostvars['localhost']['tstamp'].stdout }}_{{ type }}"
       {% конец%}
- имя: убедитесь, что целевая папка в процессе существует
  файл:
    путь: "{{ v_target_backup_folder_in_progress }}"
    состояние: каталог
    владелец: "{{ app_user }}" 
    группа: "{{ app_user_group }}" 
    режим: u=rwx,g=rwx
он получает правильные значения переменной, когда я отлаживаю книгу воспроизведения, НО когда я проверяю v_target_backup_folder_in_progress на каждом узле из 3 узлов, на которых работает игра, я нахожу что-то странное:
на одном узле v_target_backup_folder_in_progress не создается, хотя кажется, что он создается в режиме отладки, но когда я иду по тому же пути, я не могу найти каталог!
на двух других узлах создается v_target_backup_folder_in_progress, но в виде файла! не каталог, хотя он создается в режиме отладки как каталог.
так почему это происходит?