Lorsque je fais ce qui suit dans ansible 1.9.1, il traite chaque clé _individuelle_ par utilisateur comme exclusive, et non le _groupe_ de clés par utilisateur comme exclusif. Par conséquent, seule la dernière clé par utilisateur spécifiée est utilisable.
- name: sync all users keys
authorized_key: user={{item.0.name}} key='{{item.1}}' state=present exclusive=yes
with_subelements:
- users
- keys
ce qui est attendu, vous exécutez le module X nombre de fois, à chaque fois avec exclusif (X == nombre d'éléments).
Salut!
Merci beaucoup pour votre soumission à Ansible. Cela signifie sincèrement beaucoup pour nous.
Nous pensons que le ticket que vous avez déposé est quelque peu mal compris, car une chose fonctionne un peu différemment de ce qui est indiqué.
À l'avenir, cela pourrait être un sujet plus adapté à la liste des utilisateurs, que vous pouvez également publier ici si vous souhaitez plus d'aide sur ce qui précède.
Merci encore pour cela et votre intérêt pour Ansible !
J'ai résolu ce problème par une étape intermédiaire. Ainsi
# Read each file and split by newline, allowing for multiple keys per file
- name: Assemble keys
set_fact:
key_item: "{{ lookup('file', role_path + '/files/' + item).split('\n') }}"
with_items:
- bob.pub
- fred.pub
- barney.pub
register: keys
# Select each key, joining it again and join all keys. Internally the ansible
# module will then split the string by newline and work at each one. This is
# the only way exclusive works with a list of keys.
- name: Distribute operations ssh-keys to root
authorized_key:
key : "{{ keys.results|selectattr('ansible_facts','defined')|map(attribute='ansible_facts.key_item')|map('join', '\n')|join('\n') }}"
manage_dir : yes
state : present
user : root
exclusive : yes
Commentaire le plus utile
J'ai résolu ce problème par une étape intermédiaire. Ainsi