Można to zrobić na wiele sposobów, az Twojego pytania nie wynika, czego potrzebujesz.
1. Jeśli potrzebujesz zdefiniować zmienną środowiskową TYLKO DLA ZADANIA, wykonaj następujące czynności:
- 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"
Zauważ, że MY_ENV_VARIABLE
jest dostępne TYLKO dla pierwszego zadania, environment
nie ustawia go na stałe w systemie.
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": ""}
Miejmy nadzieję, że wkrótce korzystanie z niego environment
będzie również możliwe na poziomie gry , a nie tylko na poziomie zadań, jak powyżej. Obecnie otwarte jest żądanie ściągnięcia tej funkcji w serwisie GitHub firmy Ansible: https://github.com/ansible/ansible/pull/8651
AKTUALIZACJA: teraz została scalona od 2 stycznia 2015 r.
2. Jeśli chcesz mieć stałą zmienną środowiskową + systemową / tylko dla określonego użytkownika
Powinieneś przyjrzeć się, jak to robisz w swojej dystrybucji / powłoce Linuksa, jest na to wiele miejsc. Na przykład w Ubuntu definiujesz to w plikach takich jak na przykład:
~/.profile
/etc/environment
/etc/profile.d
informator
- ...
Dokumentację Ubuntu na ten temat znajdziesz tutaj: https://help.ubuntu.com/community/EnvironmentVariables
W końcu do ustawienia zmiennej środowiskowej w ex. Ubuntu możesz po prostu użyć lineinfile
modułu Ansible i dodać żądaną linię do określonego pliku. Skonsultuj się z dokumentacją systemu operacyjnego, aby dowiedzieć się, gdzie go dodać, aby był trwały.