Bagaimana cara menjalankan beberapa buku pedoman dalam rangka dengan Ansible?


16

Saya sedang mengerjakan beberapa buku pedoman yang memungkinkan untuk memutar contoh server baru. Ada sekitar 15 buku pedoman berbeda yang harus saya jalankan dalam urutan tertentu agar berhasil memunculkan server.

Awal saya berpikir untuk menulis script shell yang mengeksekusi ansible-playbook playbook_name.ymldan duplikat satu entri untuk setiap playbook saya perlukan untuk menjalankan.

Apakah ada cara yang lebih pintar / lebih baik untuk melakukan ini dengan menggunakan buku pedoman utama dan jika demikian seperti apa bentuknya (contoh dihargai).

Saya bisa menulis satu buku pedoman monolitik yang melakukan semuanya tetapi ada beberapa permainan yang dijalankan sebagai root terlebih dahulu kemudian sebagai pengguna sudo kemudian.


2
gunakan sertakan dalam buku pedoman utama Anda docs.ansible.com/ansible/playbooks_roles.html
c4f4t0r

1
Untuk menangani kasus menjalankan sebagai root lalu sebagai pengguna sudo, Anda dapat menggunakan fitur blok - menempatkan become:bagian di akhir setiap blok. Anda mungkin perlu membuat yang baru bermain untuk beralih pengguna koneksi dari akar ke sudo pengguna sekalipun.
RichVel

Jawaban:


15

Buat banyak sub-playbook dan kumpulkan melalui pernyataan sertakan.

- include: playbook-one.yml
- include: playbook-two.yml

Jika playbook Anda harus dijalankan secara berurutan dan jika semuanya wajib, buat playbook utama dan sertakan file dengan tugas. Buku pedoman harus selalu menjadi proses yang tertutup.


2
Bisakah Anda menguraikan bagian terakhir dari jawaban Anda? apa yang Anda maksud dengan "Buku pedoman harus selalu menjadi proses yang tertutup." ?
Mike Vella

1
Apakah ada cara untuk menentukan semua buku pedoman menggunakan ekspresi reguler? Misalnya:- include : books/*.yml
blueskin

8
Sepertinya includesudah usang. docs.ansible.com/ansible/latest/playbooks_reuse.html Saya pikir import_playbook: fooini cara yang tepat, tapi saya tidak terlalu berpengalaman.
Andrew

11

Untuk versi Ansilbe yang lebih baru, Anda dapat membuat banyak sub-playbook dan menggabungkannya melalui pernyataan import_playbook:

---
- import_playbook: A-systemd-networkd.yml
- import_playbook: B-fail2ban-ssh.yml
- import_playbook: C-enable-watchdog.yml
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.