Ich versuche, eine Umgebungsvariable von Target Linux Host mit Ansible Playbook zu lesen. Ich habe alle folgenden Aufgaben wie im Dokument versucht, aber es gibt kein Ergebnis.Ansible - Lese-Umgebungsvariable von Remote-Host
- name: Test1
debug: msg="{{ ansible_env.BULK }}"
delegate_to: "{{ target_host }}"
- name: Test2
shell: echo $BULK
delegate_to: "{{ target_host }}"
register: foo
- debug: msg="{{ foo.stdout }}"
- name: Test3
debug: msg="{{ lookup('env','BULK')}} is an environment variable"
delegate_to: "{{ target_host }}"
Die Umgebungsvariable „bulk“ wird in den lokalen Host nicht festgelegt, wo ich das Textbuch bin Ausführung, so nehme ich an seiner Rückkehr nichts. Anstelle von BULK, wenn ich "HOME" verwende, das immer verfügbar ist, gibt es das Ergebnis zurück. Wenn ich in den target_host SSH bin, kann ich echo $BULK
ohne irgendein Problem laufen lassen.
Wie erhält man die Umgebungsvariable vom Remote-Host?
Warum verwenden Sie 'delegate_to' in jeder Aufgabe? – techraf
@techraf: In dieser Yaml-Datei gibt es mehrere Aufgaben. Nur wenige Aufgaben laufen in localhost und wenige in der Zielrichtung. Dies ist nur zum Testen, alle drei Aufgaben führen die gleiche Operation durch. Wenn ich die Umgebungsvariable lesen kann, lösche ich die anderen beiden. –