Im Folgenden ein Teil eines Textbuch in ansible 2,1:ansible: Registerinhalt nicht für andere Host
- hosts: localhost
any_errors_fatal: true
tasks:
- name: Bla Bla
file: path=/var/tmp/somedir state=directory
#ignore_errors: no
- name: Create directory for every host
file: path=/var/tmp/somedir/{{ item }} state=directory
with_items: "{{ groups['XYZ'] }}"
- name: Get File contents of NewFile
shell: cat NewFile.txt executable=/bin/bash
register: file_contents
- hosts: XYZ
#any_errors_fatal: true
vars:
num_hosts: "{{ groups['XYZ'] | length }}"
serial: num_hosts
tasks:
- name: Copy files to corresponding directories
vars:
path: /var/tmp/somedir/{{ item[0] }}
synchronize: mode=pull src={{ item[1] }} dest={{ path }}
with_nested:
- "{{ groups['XYZ'] }}"
- with_lines: cat NewFile.txt
Dies funktioniert nicht. Nun das Problem ist, ich bin nicht in der Lage file_contents
zu verweisen, die unter localhost registriert wurden und ansible unterstützt nicht cat
die NewFile
vom hosts: XYZ
Gibt es eine Möglichkeit, dies in irgendeiner einfachen Art und Weise zu tun? Ich muss den Inhalt des NewFile
nur in diesem Playbook überprüfen und dann dasselbe zum Kopieren von Dateien von Remote zu Local verwenden.
haben Sie versucht, set_fact, wenn nicht nur versuchen, den Wert der file_contents einer Variablen zuweisen, indem Sie set_fact, dann wird es im gesamten Playbook verfügbar sein. –
i versucht 'set_fact' den Wert der Einstellung‚'file_contents' auf eine Variable' lines' und verwendet dann die gleiche Variable in: 'with_nested: - "{{Gruppen [ 'XYZ']}}" - with_items: lines' Ich bekomme den folgenden Fehler: 'link_stat \"/home/XYZ/with_items \ "fehlgeschlagen: Keine solche Datei oder Verzeichnis" –
Verwenden Sie das Debug-Modul und überprüfen Sie den Wert der Zeilen –