Для цього існує кілька способів, і з вашого запитання не зрозуміло, що вам потрібно.
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
Адже для встановлення змінної середовища в напр. Ubuntu ви можете просто використовувати lineinfile
модуль з Ansible і додати потрібний рядок до певного файлу. Зверніться до документів з ОС, щоб знати, куди його додати, щоб зробити його постійним.