Ich versuche, eine Reihe von autorisierten SSH-Schlüsseln für eine Reihe von Benutzern in Ansible zu erstellen. Ich habe eine users
Variable wie folgt eingerichtet:
users:
- { username: root, name: 'root' }
- { username: user, name: 'User' }
In der gleichen Rolle habe ich auch einen Satz autorisierter Schlüsseldateien in einem files/public_keys
Verzeichnis, eine Datei pro autorisiertem Schlüssel:
roles/common/files/public_keys/home
roles/common/files/public_keys/work
Ich möchte jeden öffentlichen Schlüssel für jeden Benutzer kopieren.
Ich habe versucht, die folgende Aufgabe zu verwenden:
- name: copy authorized keys
authorized_key: user={{ item.0.username }} key={{ item.1 }}
with_nested:
- users
- lookup('fileglob', 'public_keys/*')
Allerdings item.1
enthält die Zeichenkette "lookup('fileglob', 'public_keys/*')"
, nicht jeder Dateipfad unter files/public_keys
.
Gibt es eine Möglichkeit, das files/public_keys
Verzeichnis aufzulisten und jeden öffentlichen Schlüssel für jeden Benutzer zu kopieren?
Möglicherweise müssen Sie Ihren Befehl erheblich umschreiben, aber es gibt Vorkehrungen für das Durchlaufen von Fileglobs
aus dem Beispiel:
Weitere vielversprechende Optionen sind Schleifen über Unterelemente, was durch SSH-Schlüssel veranschaulicht wird
quelle
with_fileglob
; Ich bin nur nicht sicher, wie ich das in Verbindung mit einer verschachtelten Schleife verwenden soll. Looping über Subelemente könnte funktionieren, aber ich hoffe , ich muss nicht manuell die gesamte Liste der Schlüssel angeben ich kopieren wollen, da ich sollte nur in der Lage sein , dass als eine Liste zu erhalten (mitwith_fileglob
).#ansible
aufirc.freenode.net
und sehen , ob die Gurus es irgendwelche gute Ideen haben.