Es gibt mehrere Möglichkeiten, dies zu tun, und aus Ihrer Frage geht nicht hervor, was Sie benötigen.
1. Wenn die Umgebungsvariable NUR PRO AUFGABE definiert werden muss, gehen Sie folgendermaßen vor:
- 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"
Beachten Sie, dass MY_ENV_VARIABLE
NUR für die erste Aufgabe verfügbar ist und environment
diese nicht dauerhaft auf Ihrem System festgelegt wird.
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": ""}
Hoffentlich bald mit environment
wird auch möglich sein , auf Spielebene , nicht nur Task - Ebene , wie oben. Derzeit ist auf Ansibles GitHub eine Pull-Anfrage für diese Funktion geöffnet: https://github.com/ansible/ansible/pull/8651
UPDATE: Es ist jetzt ab dem 2. Januar 2015 zusammengeführt.
2. Wenn Sie eine permanente Umgebungsvariable + systemweit / nur für bestimmte Benutzer wünschen
Sie sollten sich ansehen, wie Sie dies in Ihrer Linux-Distribution / Shell tun. Dafür gibt es mehrere Stellen. Zum Beispiel definieren Sie dies in Ubuntu in Dateien wie zum Beispiel:
~/.profile
/etc/environment
/etc/profile.d
Verzeichnis
- ...
Ubuntu-Dokumente dazu finden Sie hier: https://help.ubuntu.com/community/EnvironmentVariables
Immerhin für die Einstellung der Umgebungsvariablen in ex. Unter Ubuntu können Sie einfach das lineinfile
Modul von Ansible verwenden und einer bestimmten Datei die gewünschte Zeile hinzufügen. Konsultieren Sie Ihre Betriebssystemdokumente, um zu erfahren, wo Sie es hinzufügen müssen, um es dauerhaft zu machen.