Saya mencoba membuat satu set kunci SSH resmi untuk satu set pengguna di Ansible. Saya memiliki pengaturan users
variabel seperti:
users:
- { username: root, name: 'root' }
- { username: user, name: 'User' }
Dalam peran yang sama, saya juga memiliki satu set file kunci yang diotorisasi dalam files/public_keys
direktori, satu file per kunci yang diotorisasi:
roles/common/files/public_keys/home
roles/common/files/public_keys/work
Saya ingin menyalin setiap kunci publik ke setiap pengguna.
Saya telah mencoba menggunakan tugas berikut:
- name: copy authorized keys
authorized_key: user={{ item.0.username }} key={{ item.1 }}
with_nested:
- users
- lookup('fileglob', 'public_keys/*')
Namun, item.1
berisi string literal "lookup('fileglob', 'public_keys/*')"
, tidak setiap jalur file di bawah files/public_keys
.
Apakah ada cara saya bisa mendapatkan daftar files/public_keys
direktori dan menyalin setiap kunci publik untuk setiap pengguna?
Anda mungkin harus menulis ulang perintah Anda secara signifikan, tetapi ada ketentuan untuk mengulang fileglobs
dari contoh:
Pilihan menjanjikan lainnya adalah Looping over Subelements yang sebenarnya diilustrasikan oleh kunci SSH
sumber
with_fileglob
; Saya hanya tidak yakin bagaimana menggunakannya bersama dengan loop bersarang. Melonggarkan subelemen bisa berfungsi, tetapi saya berharap saya tidak harus secara manual menentukan seluruh daftar kunci yang ingin saya salin, karena saya seharusnya bisa mendapatkannya sebagai daftar (menggunakanwith_fileglob
).#ansible
atasirc.freenode.net
dan melihat apakah guru ada yang punya ide cemerlang.