Il y a plusieurs façons de le faire et d'après votre question, ce dont vous avez besoin n'est pas clair.
1. Si vous avez besoin que la variable d'environnement soit définie UNIQUEMENT PAR TÂCHE, procédez comme suit:
- 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"
Notez qu'il MY_ENV_VARIABLE
est disponible UNIQUEMENT pour la première tâche, environment
ne le définit pas de manière permanente sur votre système.
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": ""}
Espérons que bientôt l'utilisation environment
sera également possible au niveau du jeu , pas seulement au niveau des tâches comme ci-dessus. Une pull request est actuellement ouverte pour cette fonctionnalité sur le GitHub d'Ansible: https://github.com/ansible/ansible/pull/8651
MISE À JOUR: Il a maintenant fusionné le 2 janvier 2015.
2. Si vous voulez une variable d'environnement permanente + à l'échelle du système / uniquement pour certains utilisateurs
Vous devriez regarder comment vous le faites dans votre distribution / shell Linux, il y a plusieurs endroits pour cela. Par exemple dans Ubuntu vous définissez cela dans des fichiers comme par exemple:
~/.profile
/etc/environment
/etc/profile.d
annuaire
- ...
Vous trouverez la documentation Ubuntu à ce sujet ici: https://help.ubuntu.com/community/EnvironmentVariables
Après tout pour définir la variable d'environnement dans ex. Ubuntu vous pouvez simplement utiliser le lineinfile
module d'Ansible et ajouter la ligne souhaitée à certains fichiers. Consultez la documentation de votre système d'exploitation pour savoir où l'ajouter pour le rendre permanent.