Ansible: фильтр по умолчанию не разрешает переменные в Ansible 1.8.2

Созданный на 19 дек. 2014  ·  3Комментарии  ·  Источник: ansible/ansible

Тип выпуска:

Отчет об ошибке

Ансибл версия:

1.8.2

Окружающая обстановка:

РЕЛ 5

Резюме:

Фильтр по умолчанию не разрешает переменные, определенные в инвентаре.

Например, если я определил в своем файле инвентаризации следующую переменную:

app_install_dir=/тест

В моей пьесе есть это, а "некоторая переменная" не определена:

dest_dir="{{ somevariable | default('{{app_install_dir}}/DATA') }}"

При запуске playbook по умолчанию не удается разрешить «app_install_dir».

Раньше это работало на Ansible 1.7.1.

Действия по воспроизведению:

1) Определите переменную в инвентаре с именем "test_directory=/tmp/testdir"
2) В плейбуке есть задача создать каталог, определяемый переменной dest={{ undefined_variable | по умолчанию('{{test_directory}}') }}
3) После запуска playbook не удается разрешить значение «test_directory».

Ожидаемые результаты:

Фильтр по умолчанию должен иметь возможность разрешать переменные

Фактические результаты:

Фильтр по умолчанию не разрешает переменные, определенные в инвентаре.

Самый полезный комментарий

Обычно я не вижу сообщения в закрытых тикетах, но пользователь irc пинговал меня на это:
dest={{ undefined_variable | default(test_directory + '/subdir') }}

Все 3 Комментарий

Возможное недоразумение

Привет!

Большое спасибо за вашу заявку на Ansible. Это искренне много значит для нас.

Мы считаем, что заявка, которую вы подали, несколько неправильно понята, так как одна вещь работает немного иначе, чем заявлено.

dest={{ undefined_variable | default('{{test_directory}}') }}

является недопустимым выражением, вы не можете вкладывать {{ }}, вы, вероятно, хотите следующее:

dest={{ undefined_variable | default(test_directory) }}

В будущем эта тема может стать более подходящей для списка пользователей, который вы также можете опубликовать здесь, если вам нужна дополнительная помощь по вышеизложенному.

Еще раз спасибо за это и ваш интерес к Ansible!

@bcoca : Полезно знать, но значит ли это, что мы не можем объединить переменную и литерал по умолчанию? Что-то вроде: dest={{ undefined_variable | default('{{test_directory}}/subdir') }} (но допустимо ;-)

Обычно я не вижу сообщения в закрытых тикетах, но пользователь irc пинговал меня на это:
dest={{ undefined_variable | default(test_directory + '/subdir') }}

Была ли эта страница полезной?
0 / 5 - 0 рейтинги