Страницы

Поиск по вопросам

воскресенье, 7 июля 2019 г.

Как использовать when в vars?

Состоит задача в том, чтобы при запуске сценария указывать значение через --extra-vars, и в зависимости от это сценарий использовал ту переменную, которая соответствует значению.
Некий пример, который объясняет суть моей проблемы:
Запуск сценария:
ansible-playbook test.yml --extra-vars "ver=3"
Файл, который содержит переменные:
ver_python: "3.6.4/bin/python3" when: ver == "3"
ver_python: "2.7.14/bin/python" when: ver == "2"
Ну и часть сценария:
- name: Installing shell: sudo -u usertest -i /home/usertest/.venv/{{ ver_python}} /home/usertest/lib/project/src/manage.py collectstatic --noinput


Ответ

when можно использовать только в задачах/ролях и т.п., но не в описании переменных.
Либо используйте словарь вида:
python_path: ver_3: '3.6.4/bin/python3' ver_2: '2.7.14/bin/python'
и в коде {{ python_path['ver_'+ver] }}
Либо вставьте условие прямо в шаблон переменной – это ведь Jinja2:
python_path: > {{ '3.6.4/bin/python3' if ver | default(2) | int == 3 else '2.7.14/bin/python' }}
и в коде уже прямо {{ python_path }}

Комментариев нет:

Отправить комментарий