Ich sichere automatisch SSL-Schlüssel wie folgt:
- name: Find ssl keys
find: paths="/etc/ssl/" patterns="*.key" recurse=yes
register: secure_ssl_keys_result
- name: Secure ssl keys
file: path={{ item.path }} user=root group=root mode=600
with_items: secure_ssl_keys_result.files
Jetzt gibt es für jeden Artikel eine große Protokollnachricht mit dem gesamten Inhalt des Artikels:
ok: [127.0.0.1] => (item = {u'uid ': 0, u'woth': False, u'mtime ': 1454939377.264, u'inode': 400377, u'isgid ': False, u' size ': 3243, u'roth': False, u'isuid ': False, u'isreg': True, u'gid ': 0, u'ischr': False, u'wusr ': True, u'xoth ': False, u'rusr': True, u'nlink ': 1, u'issock': False, u'rgrp ': False, u'path': u '/ etc / ssl / foo.key', u 'xusr': False, u'atime ': 1454939377.264, u'isdir': False, u'ctime ': 1454939657.116, u'isblk': False, u'xgrp ': False, u'dev': 65025, u ' wgrp ': False, u'isfifo': False, u'mode ': u'0600', u'islnk ': False})
Dies ist unglaublich unlesbar, da ich nur den Pfad des Elements wissen möchte, das verarbeitet (und möglicherweise geändert) wird. Mit einer großen Anzahl von Schlüsseln ist dies sehr schnell außer Kontrolle geraten.
Wie kann ich dieses Spiel so ändern, dass item.path
für jeden Artikel nur das ausgedruckt wird?
Ich habe es schon versucht no_log: True
, aber das lässt die Ausgabe natürlich komplett aus.
no_log: true
und den Wert vonitem.path
with debug moduleAntworten:
Ansible 2.2 hat
loop_control.label
dafür.quelle
Methode 1
Verwenden
Es wird eine Liste von Pfaden zurückgegeben:
Deine ganze Aufgabe würde werden:
Beachten Sie, dass Sie nur ein einziges Attribut auswählen können, das Sie nicht verwenden können
attribute=['path', 'mode']
oder ähnliches.Methode 2
Ich habe überlegt, mit extract mehrere Schlüssel abzurufen (da manchmal ein zweiter Schlüssel für eine
when
Bedingung erforderlich ist), habe es aber nicht geschafft, da ich die Liste der Wörter zuordnen und dann zuordnen müsste Die Liste der Tasten über dem spezifischen Dikt, die nicht möglich zu sein scheint, da map nur einen Funktionsnamen, aber keine Funktionsdefinition / verkettete Funktionen akzeptiert. Für einen Vorschlag wäre ich hier dankbar!Eine großartige Idee aus den Kommentaren (Danke, Uditha Desilva !):
Methode 3
Alternativ könnte ein benutzerdefinierter Filter wie dieser verwendet werden (das habe ich getan, bevor ich davon erfahren habe
map
):ansible.cfg
:quelle
Das kannst du nicht. Es ist entweder alles oder nichts (via
no_log: True
)quelle