Доступные переменные локальной среды
Интересно, есть ли способ для Ansible для доступа к локальным переменным среды.
Ссылки на документацию, обращающиеся к переменной на целевом компьютере:
{{ lookup('env', 'SOMEVAR') }}
Есть ли способ доступа к переменным среды на исходном компьютере?
Ответы
Ответ 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 локально на удаленном компьютере.
Или вы могли бы просто перечислить факты. Если это не в реальных фактах, вы можете просто запустить команду оболочки, чтобы получить ее.