Ci sono diversi modi per farlo e dalla tua domanda non è chiaro di cosa hai bisogno.
1. Se è necessario definire la variabile d'ambiente SOLO PER ATTIVITÀ, procedere come segue:
- 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"
Nota che MY_ENV_VARIABLEè disponibile SOLO per la prima attività, environmentnon lo imposta in modo permanente sul tuo sistema.
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": ""}
Si spera che presto l'utilizzo environmentsarà possibile anche a livello di gioco , non solo a livello di attività come sopra. Al momento è aperta una richiesta pull per questa funzione su GitHub di Ansible: https://github.com/ansible/ansible/pull/8651
AGGIORNAMENTO: ora è stato unito a partire dal 2 gennaio 2015.
2. Se si desidera una variabile di ambiente permanente + a livello di sistema / solo per determinati utenti
Dovresti esaminare come lo fai nella tua distribuzione / shell Linux, ci sono più posti per questo. Ad esempio in Ubuntu lo definisci in file come ad esempio:
~/.profile
/etc/environment
/etc/profile.d directory
- ...
Troverai la documentazione di Ubuntu al riguardo qui: https://help.ubuntu.com/community/EnvironmentVariables
Dopo tutto per l'impostazione della variabile d'ambiente in es. Ubuntu puoi semplicemente usare il lineinfilemodulo da Ansible e aggiungere la riga desiderata a un determinato file. Consulta i documenti del tuo sistema operativo per sapere dove aggiungerlo per renderlo permanente.