Состоит задача в том, чтобы при запуске сценария указывать значение через --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 }}
Комментариев нет:
Отправить комментарий