Es gibt mehrere Möglichkeiten fehlen, dies zu tun und aus Ihrer Frage, es ist noch unklar, was Sie brauchen.
1. Wenn Sie Umgebungsvariable müssen nur pro Aufgabe definiert werden, tun Sie dies:
- 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 zur Verfügung steht, ist environment
nicht gesetzt es dauerhaft auf Ihrem System.
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 environment
verwendet, wird auch möglich sein, auf Spielebene, nicht nur Task-Ebene, wie oben. Es gibt zur Zeit eine Pull-Anforderung offen für diese Funktion auf ansible der GitHub: https://github.com/ansible/ansible/pull/8651
UPDATE: Es ist nun ab 2. Januar verschmolzen, 2015.
2. Wenn Sie permanente Umgebungsvariable wollen + systemweite/nur für bestimmter Benutzer
Sie sollten schauen, wie Sie es in Ihrer Linux-Distribution/Shell tun, gibt es mehrere Orte dafür. Zum Beispiel in Ubuntu definieren Sie, dass in Dateien wie zum Beispiel:
~/.profile
/etc/environment
/etc/profile.d
Verzeichnis
- ...
Sie Ubuntu docs darüber finden Sie hier: https://help.ubuntu.com/community/EnvironmentVariables
Immerhin für die Einstellung der Umgebung Variable in ex. Ubuntu können Sie einfach lineinfile
Modul von Ansible verwenden und gewünschte Zeile zu bestimmten Datei hinzufügen. Sehen Sie in Ihren BS-Dokumenten nach, wo Sie sie hinzufügen können, um sie dauerhaft zu machen.
Sie benötigen es in bestimmten Konto ($ HOME eingestellt /.profile, default (/ etc/profile) oder einfach verfügbar machen, bevor Sie eine Anwendung installieren oder ausführen? – BMW
Ich muss es auf s setzen o Ich kann mongodb Konsole verwenden. Nachdem ich die Maschine angehoben habe, kann ich nicht in die Konsole gehen, ohne diese Variable zu exportieren. – Gleeb
ok, du sprichst über mongodb module in ansible, dann stelle es direkt, wenn du dieses Modul vorbereitest (installiere, setze Konfigurationsdatei oder starte seinen Dienst)? – BMW