У меня есть несколько глобальных переменных окружения, заданных в моей целевой машине, которые мне нужно представить при запуске некоторых задач Ansible. Например.Загрузка глобальных переменных окружения в задачу Ansible
MY_VAR=Some global variable
Значение этих глобальных переменных не известного анзибль поэтому не могу использовать environment
функциональности.
Пример задачи:
- shell: echo MY_VAR is $MY_VAR
register: my_var
- debug: msg={{ my_var.stdout }}
Выход я получаю MY_VAR is
, где я хотел бы, чтобы это было MY_VAR is Some global variable
. Я понимаю, что это происходит потому, что неинтерактивные оболочки Bash (которые Ansible использует) не загружают среду из /etc/environment
, но есть ли способ выполнить мою команду в контексте этой среды?
. Примечание: Я на самом деле не хочу, чтобы получить значение переменной окружения (как показано выше), я просто хочу, чтобы присутствовать в контексте того, что я исполняю shell
задачу в
Это не ответит на вопрос. Проблема в том, что при выполнении команды глобальные переменные в '/ etc/environment' не являются частью среды. – DanielGibbs
А я вижу, как насчет поиска его перед запуском вашей команды: '- shell:./etc/environment && commandhere' – Zlemini
Это похоже на трюк; позаботьтесь о том, чтобы опубликовать его как ответ? – DanielGibbs