Saya memiliki variabel berikut yang dimuat melalui include_vars
:
access:
username-foo:
- path: /
permissions: rwX
recursive: true
username-bar:
- path: /
permissions: rX
- path: /css
permissions: rwX
recursive: true
- path: /data
permissions: rX
- path: /data/reviews.yml
permissions: rw
- path: /js
permissions: rX
- path: /js/*.js
permissions: rw
Saya ingin memasukkan informasi ini ke shell
perintah untuk mengatur izin yang sesuai.
Saya sudah mencoba beberapa teknik dari sini: http://docs.ansible.com/playbooks_loops.html tetapi gagal menemukan solusi yang berfungsi.
Apakah mungkin untuk mengulangi struktur ini? Jika tidak, bagaimana cara menyusun ulang untuk membuatnya berfungsi? Apakah mungkin untuk melakukan ini tanpa melanggar aturan KERING (misalnya, memasukkan nama pengguna ke dalam setiap catatan)?
shell
modul karena saya perlu melakukan ACL rekursif dan itu tidak didukung olehacl
modul.shell
ini taruhan terbaik Anda dengan ACL dan rekursi.recursive
dalam contoh saya? Ketika saya mencoba mengaksesnya dan itu hilang, Ansible akan menghentikan eksekusi playbook dan melemparkan pengecualian. Saya lebih suka tidak menambahkanrecursive: false
ke setiap record.{{ some_variable | default() }}
. Jadi, dalam hal ini:{{ item.1.recursive | default(false) }}
Ini adalah contoh keluaran yang bagus yang bisa Anda coba sendiri. Buat buku pedoman baru bernama
iteration_loop.yml
:Kemudian jalankan playbook seperti ini:
ansible-playbook -i '172.16.222.131,' iteration_loop.yml
dan output akan memberi Anda bagaimana item diakses:
sumber
Dengan asumsi itu
dict={a:[1,2,3],b:[1,2]}
dan seterusnya:Sekarang
flattened == [1,2,3,1,2]
sumber
Saya akan memformat ulang vars Anda ke format di bawah ini:
dan kemudian buku pedoman saya seperti di bawah ini:
sumber