Próbuję utworzyć zestaw autoryzowanych kluczy SSH dla zestawu użytkowników w Ansible. Mam users
zmienną skonfigurowaną tak:
users:
- { username: root, name: 'root' }
- { username: user, name: 'User' }
W tej samej roli mam również zestaw autoryzowanych plików kluczy w files/public_keys
katalogu, jeden plik na autoryzowany klucz:
roles/common/files/public_keys/home
roles/common/files/public_keys/work
Chcę skopiować każdy klucz publiczny do każdego użytkownika.
Próbowałem użyć następującego zadania:
- name: copy authorized keys
authorized_key: user={{ item.0.username }} key={{ item.1 }}
with_nested:
- users
- lookup('fileglob', 'public_keys/*')
Jednak item.1
zawiera ciągiem znaków "lookup('fileglob', 'public_keys/*')"
, a nie każdy pod ścieżka do pliku files/public_keys
.
Czy istnieje sposób, aby uzyskać listę files/public_keys
katalogu i skopiować każdy klucz publiczny do każdego użytkownika?
Być może będziesz musiał znacznie przepisać swoje polecenie, ale istnieje możliwość zapętlania plików cookie
z przykładu:
Inne obiecujące opcje to Pętla nad podelementami, która jest faktycznie zilustrowana kluczami SSH
źródło
with_fileglob
; Po prostu nie jestem pewien, jak tego użyć w połączeniu z zagnieżdżoną pętlą. Pętla nad podelementami może działać, ale mam nadzieję, że nie muszę ręcznie określać całej listy kluczy, które chcę skopiować, ponieważ powinienem być w stanie uzyskać ją jako listę (za pomocąwith_fileglob
).#ansible
nairc.freenode.net
i zobaczyć, czy guru nie ma żadnych jasnych pomysłów.