Je sécurise automatiquement les clés SSL comme ceci:
- 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
Maintenant, pour chaque élément, il y a un énorme message de journal avec tout le contenu de l'élément:
ok: [127.0.0.1] => (item = {u'uid ': 0, u'woth': False, u'mtime ': 1454939377.264, u'inode': 400377, u'isgid ': False, u' taille ': 3243, u'roth': Faux, u'isuide ': Faux, u'isreg': Vrai, u'gid ': 0, u'ischr': Faux, u'wusr ': Vrai, 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})
C'est incroyablement illisible, car je veux seulement connaître le chemin de l'élément en cours de traitement (et peut-être modifié). Avec un grand nombre de touches, cela devient vraiment incontrôlable.
Comment puis-je changer ce jeu de manière à ce que seul le item.path
soit imprimé pour chaque élément?
J'ai déjà essayé no_log: True
, mais cela omet complètement la sortie bien sûr.
no_log: true
et renvoyer la valeur deitem.path
with debug moduleRéponses:
Ansible 2.2 a
loop_control.label
pour cela.la source
Méthode 1
Utilisation
Il renverra une liste de chemins:
Toute votre tâche deviendrait:
Attention, vous ne pouvez sélectionner qu'un seul attribut, il n'est pas possible de l'utiliser
attribute=['path', 'mode']
ou similaire.Méthode 2
J'ai pensé à utiliser extract pour pouvoir récupérer plusieurs clés (car il est parfois nécessaire d'avoir une deuxième clé pour une
when
condition), mais je n'ai pas réussi à le faire, car j'aurais besoin de mapper la liste des dict, puis de mapper la liste des touches sur le dict spécifique, ce qui ne semble pas possible, car la carte accepte uniquement un nom de fonction mais pas une définition de fonction / fonctions chaînées. Je serais reconnaissant pour une suggestion ici!Une bonne idée des commentaires (Merci, Uditha Desilva !):
Méthode 3
Alternativement, un filtre personnalisé comme celui-ci pourrait être utilisé (c'est ce que j'ai fait avant de le découvrir
map
):ansible.cfg
:la source
Tu ne peux pas. C'est tout ou rien (via
no_log: True
)la source