Auf der Suche nach Hilfe mit einem Problem, mit dem ich seit ein paar Stunden gekämpft habe. Ich möchte über eine Liste iterieren, einen Befehl ausführen, die Ausgabe für jeden Befehl registrieren und dann mit Debug über jedes eindeutige Register {{someregister}} iterieren. StdoutIteration mit With_items und Register
Zum Beispiel spuckt der folgende Code "msg „:‚1‘ und ‚msg‘:‚2‘
---
- hosts: localhost
gather_facts: false
vars:
numbers:
- name: "first"
int: "1"
- name: "second"
int: "2"
tasks:
- name: Register output
command: "/bin/echo {{ item.int }}"
register: result
with_items: "{{ numbers }}"
- debug: msg={{ item.stdout }}
with_items: "{{ result.results }}"
Wenn ich jedoch versuchen, die Ausgabe eines Befehls in einer Registervariablen erfassen, die with_list mit Namen, ich habe Probleme beim Zugriff auf die Liste oder die Elemente darin. Zum Beispiel, um den Code leicht zu verändern:
---
- hosts: localhost
gather_facts: false
vars:
numbers:
- name: "first"
int: "1"
- name: "second"
int: "2"
tasks:
- name: Register output
command: "/bin/echo {{ item.int }}"
register: "{{ item.name }}"
with_items: "{{ numbers }}"
- debug: var={{ item.name.stdout }}
with_items: "{{ numbers }}"
mir gibt:
TASK [debug]
> ******************************************************************* fatal: [localhost]: FAILED! => {"failed": true, "msg": "'unicode
> object' has no attribute 'stdout'"}
Ist es nicht möglich, dynamisch die Ausgabe eines Befehls der Registernamen, die dann später im Spiel aufgerufen werden ? Ich möchte, dass auf jede Iteration des Befehls und seines nachfolgenden Namens eindeutig zugegriffen wird, z. B. in Anbetracht des letzten Beispiels, das ich erwarten würde, dass dort Variablen registriert sind, die "erste" und "zweite" genannt werden, aber nicht.
Die with_items aus der Debug-Zeilengruppe entfernen und nur die Variable oder Nachricht explizit definieren, die first.stdout verwendet, gibt "undefined" zurück.
Ansible-Version ist 2.0.2.0 auf Centos 7_2.
Vielen Dank im Voraus.
Dank Amit, die dazu beigetragen haben, und ich habe die Frage in der Hoffnung, dass neu geschrieben es ist klarer zu verstehen. – Rowley