2016-03-23 11 views
0

Ich habe ein einfaches Playbook, das meinen Dienststatus anzeigen soll. und ich möchte die Ausgabe von der Maschine sehen, um zu sehen, ob der Status aktiv ist oder nicht. so habe ich eine Debug-Druck, etwa so:ansible Register mit Schleife Debug-Druck funktioniert nicht

- name: name_of_services 
    shell: systemctl status {{item}} 
    with_items: 
    - service1 
    - service2 
    register: out 

- debug: var=item.stdout_lines 
    with_items: out.results 

, wenn ich dies ausführen ich viele Informationen bekommen ich will nicht plus item.stdout_lines Informationen, die ich am Ende davon wollen. Wie ist es möglich, die Ausgabe meines Befehls besser zu sehen?

Antwort

0

Für Module, einschließlich Debug, die in einer Schleife aufgerufen werden (dh with_items), wird der Wert des Elements bei jeder Iteration angezeigt. Ich weiß nicht, wie ich das abstellen soll. Wenn Sie möchten, dass Sie Ihre Ausgabe reduzieren, können Sie versuchen, den msg-Parameter zu debug module zu verwenden, der eine jinja-basierte Zeichenfolge verwendet. Sie könnten so etwas tun, indem Sie die Regex an die systemctl-Ausgabe anpassen.

- name: show values 
    debug: msg="{{ item.stdout_lines | replace_regex('^(.*).service.*Active: (.*).$', \\\1 \\\2) }}" 
    with_items: out.results 

Wenn Sie nicht möchten, dass die replace_regex Funktion nutzen Sie betrachten können Sie Ihre eigenen filter plugin Schreiben der Daten zu formatieren, wie es Ihnen gefällt.

Im Allgemeinen sind ansible Playbooks kein guter Ort, um Statusinformationen anzuzeigen, die durch Registervariablen, Fakten usw. gesammelt wurden. Die Ausgabe des Playbooks ist mehr auf den Aufgabenstatus ausgerichtet.

Verwandte Themen