#79 - Ansible Playbook
-
Saya telah sebut Ansible beberapa bulan lepas. Satu lagi yang menarik ialah ansible-playbok. Pendek cerita, kalau hendak jalankan beberapa arahan keatas sekumpulan hos komputer (atau inventory dalam bahasa ansible), pakai ansible-playbook
-
Contohnya disini, saya hendak kemaskini semua komputer dan reboot selepas itu. Biasanya ada beberap langkah: a. ssh ke hos komputer b. sudo apt-get update c. sudo apt-get upgrade d. reboot
Itu hanya untuk satu host. Jadi darab jumlah host yang ada.
-
Mulakan dengan siapkan fail playbook. Kita namakan fail ini playbook_update.yaml . Sambungan yaml menunjukkan format yaml digunakan untuk fail konfigurasi ini.
- hosts: all
become: true
tasks:
- name: Update apt
apt: update_cache=yes force_apt_get=yes cache_valid_time=3600
- name: Upgrade all packages
apt: upgrade=dist force_apt_get=yes
- name: Check if reboot is needed
register: reboot_required_file
stat: path=/var/run/reboot-required get_md5=no
- name: Reboot the box if kernel updated
reboot:
msg: "reboot initiated by ansible"
connect_timeout: 5
reboot_timeout: 300
pre_reboot_delay: 0
post_reboot_delay: 30
test_command: uptime
when: reboot_required_file.stat.exists
- Jalankan ansible-playbook:
ansible-playbook -i inventory playbook_update.yaml -f 10 -K
Parameter -K disini adalah untuk masukkan password sudo & dan inventory adalah nama fail yang mengandungi maklumat tentang hos (alamat IP atau nama host serta nombor port yang digunakan)
- Setelah ansible-playbook dijalankan, boleh lihat status arahan seperti yang dipaparkan. Jika lihat di bawah, ada satu hos yang tidak boleh dicapai dan satu lagi yang ada masalah.
Rujukan:
a. Belajar Ansible dengan Jeff Geerling di Youtbe https://www.youtube.com/watch?v=goclfp6a2IQ b. Laman Web Rasmi Ansible: https://www.ansible.com c. Buku Ansible for DevOps oleh Jeff Geerling
Selamat Mencuba!