Подтвердить что ты не робот

Доступные переменные локальной среды

Интересно, есть ли способ для Ansible для доступа к локальным переменным среды.

Ссылки на документацию, обращающиеся к переменной на целевом компьютере:

{{ lookup('env', 'SOMEVAR') }}

Есть ли способ доступа к переменным среды на исходном компьютере?

4b9b3361

Ответ 1

У меня есть Linux vm, работающий на osx, и для меня:

lookup('env', 'HOME') возвращает "/Users/Gonzalo" (переменная HOME из osx), а ansible_env.HOME возвращает "/root" (переменная HOME из vm).

Стоит упомянуть, что ansible_env.VAR терпит неудачу, если переменная не существует, а lookup('env', 'VAR') не работает.

Ответ 2

Использовать доступный lookup:

- set_fact: env_var="{{ lookup('env','ENV_VAR') }}"

Ответ 3

Эти переменные находятся в машине управления, я полагаю, что исходный компьютер в вашем случае.

Отметьте это: http://docs.ansible.com/faq.html#how-do-i-access-shell-environment-variables

В нем говорится: If you just need to access existing variables, use the ‘env’ lookup plugin. For example, to access the value of the HOME environment variable on management machine:

Теперь, если вам нужно получить доступ к нему на удаленном компьютере, вы можете просто запустить свой доступный script локально на удаленном компьютере. Или вы могли бы просто перечислить факты. Если это не в реальных фактах, вы можете просто запустить команду оболочки, чтобы получить ее.