Automatycznie zabezpieczam klucze SSL w następujący sposób:
- 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
Teraz dla każdego elementu pojawia się ogromny komunikat z całą zawartością elementu:
ok: [127.0.0.1] => (item = {u'uid ': 0, u'woth': False, u'mtime ': 1454939377.264, u'inode': 400377, u'isgid ': False, u' rozmiar ': 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})
Jest to niezwykle nieczytelne, ponieważ chcę tylko poznać ścieżkę przedmiotu, który jest przetwarzany (i może zmieniony). Dzięki dużej liczbie kluczy bardzo szybko wymyka się spod kontroli.
Jak mogę zmienić tę grę w taki sposób, że item.path
dla każdego przedmiotu drukowane są tylko te ?
Próbowałem już no_log: True
, ale to całkowicie pomija wynik.
no_log: true
i zwrócić wartośćitem.path
z modułem debugowaniaOdpowiedzi:
Ansible 2.2 ma
loop_control.label
do tego.źródło
Metoda 1
Posługiwać się
Zwróci listę ścieżek:
Twoim całym zadaniem byłoby:
Uważaj, że możesz wybrać tylko jeden atrybut, nie można go użyć
attribute=['path', 'mode']
ani go podobnego.Metoda 2
Myślałem o użyciu wyciągu, aby móc pobrać wiele kluczy (ponieważ czasami konieczne jest posiadanie drugiego klucza dla
when
warunku), ale nie udało mi się tego zrobić, ponieważ musiałbym zmapować listę nagrań, a następnie zmapować lista kluczy nad danym dyktando, co nie wydaje się możliwe, ponieważ mapa akceptuje tylko nazwę funkcji, ale nie definicję funkcji / funkcje łańcuchowe. Byłbym wdzięczny za sugestię tutaj!Świetny pomysł z komentarzy (Dzięki, Uditha Desilva !):
Metoda 3
Alternatywnie można zastosować taki filtr niestandardowy (tak zrobiłem, zanim się dowiedziałem
map
):ansible.cfg
:źródło
Nie możesz To albo wszystko albo nic (przez
no_log: True
)źródło