Как включить файл vars в файл vars с возможностью?
Можно ли включить файл vars в файл Ansible в другой файл vars динамически?
т.е. У меня есть файл vars:
---
definitions:
- { product: web_v2, suite: mysuite, include: default_step.yml }
- { product: prod2, suite: mysuite2, include: default_step.yml }
Я хочу, чтобы содержимое default_step.yml
добавлялось в словарь. Обратите внимание, что это файл vars, поэтому документация о том, как включить файл vars из задачи, похоже, не применяется.
Все, что я могу придумать, - это создать шаблон этого файла с помощью jinja и использовать его функцию {% include %}
, а затем использовать include_vars
из основной задачи, но это кажется сложным...
Ответы
Ответ 1
К сожалению, файлы vars не содержат операторов.
Вы можете поместить все vars в словарь definitions
или добавить переменные в качестве другого словаря в один и тот же файл.
Если вы не хотите иметь их в одном файле, вы можете включить их на уровне плейеров, добавив файл vars в начале воспроизведения:
---
- hosts: myhosts
vars_files:
- default_step.yml
или в задаче:
---
- hosts: myhosts
tasks:
- name: include default step variables
include_vars: default_step.yml
Ответ 2
Я знаю, что это старый пост, но сегодня у меня была такая же проблема, что я сделал просто: изменив мой script, который отправил мою книгу с моего локального хоста на сервер, перед отправкой с помощью команды maven я сделал это
cat common_vars.yml > vars.yml
cat snapshot_vars.yml >> vars.yml
# or
#cat release_vars.yml >> vars.yml
mvn ....