Есть несколько способов сделать это, и из вашего вопроса непонятно, что вам нужно.
1. Если вам нужно, чтобы переменная среды определялась ТОЛЬКО ДЛЯ ЗАДАЧИ, сделайте следующее:
- hosts: dev
tasks:
- name: Echo my_env_var
shell: "echo $MY_ENV_VARIABLE"
environment:
MY_ENV_VARIABLE: whatever_value
- name: Echo my_env_var again
shell: "echo $MY_ENV_VARIABLE"
Обратите внимание, что MY_ENV_VARIABLE
доступно ТОЛЬКО для первой задачи, environment
а не постоянно в вашей системе.
TASK: [Echo my_env_var] *******************************************************
changed: [192.168.111.222] => {"changed": true, "cmd": "echo $MY_ENV_VARIABLE", ... "stdout": "whatever_value"}
TASK: [Echo my_env_var again] *************************************************
changed: [192.168.111.222] => {"changed": true, "cmd": "echo $MY_ENV_VARIABLE", ... "stdout": ""}
Надеюсь, скоро буду использовать environment
станет возможным и на игровом уровне , а не только на уровне задач, как указано выше. В настоящее время для этой функции открыт запрос на перенос на GitHub Ansible: https://github.com/ansible/ansible/pull/8651
ОБНОВЛЕНИЕ: теперь он объединен 2 января 2015 года.
2. Если вам нужна постоянная переменная среды + общесистемная / только для определенного пользователя
Вы должны изучить, как вы это делаете в вашем дистрибутиве / оболочке Linux, для этого есть несколько мест. Например, в Ubuntu вы определяете это в файлах, например:
~/.profile
/etc/environment
/etc/profile.d
каталог
- ...
Здесь вы найдете документацию по Ubuntu: https://help.ubuntu.com/community/EnvironmentVariables
В конце концов, для установки переменной окружения в ex. В Ubuntu вы можете просто использовать lineinfile
модуль из Ansible и добавить нужную строку в определенный файл. Проконсультируйтесь с документацией по вашей ОС, чтобы узнать, где его добавить, чтобы сделать его постоянным.