Buku main dalam buku Ansible inilah yang menjadikan Ansible sangat berguna. Buku main memungkinkan untuk melaksanakan tugas rutin dengan beberapa modul. Bilakah kita harus menggunakan buku permainan?
Mari kita lihat tugas penyelenggaraan rutin: mengemas kini pelayan anda. Kita tidak akan perlu menggunakan playbook untuk ini, memandangkan ia merupakan salah satu arahan: apt-get update
. Kami hanya boleh menggunakan satu perintah untuk mengemas kini perisian di semua pelayan kami. Namun, untuk menggunakan sesuatu seperti pelayan web atau pangkalan data, lebih banyak kerja diperlukan: bukan hanya satu perintah. Buku main adalah pengawas untuk kes ini. Mereka membolehkan anda menggunakan beberapa modul, yang merupakan perintah yang dapat dijalankan di pelayan. Sebagai contoh, ada modul untuk menyalin fail, dan melakukan perintah shell melalui SSH.
Oleh itu, bagaimana kita menggunakan buku permainan? Mari kita mulakan!
Langkah 1: Membuat .yml
fail YAML ( )
Buku main yang boleh ditulis ditulis sebagai .yml
fail; Ansible tidak dapat menafsirkan format lain. Contoh buku main Ansible seperti ini:
---
- hosts: webservers
vars:
http_port: 80
max_clients: 200
remote_user: root
tasks:
- name: ensure apache is at the latest version
yum: pkg=httpd state=latest
- name: write the apache config file
template: src=/srv/httpd.j2 dest=/etc/httpd.conf
notify:
- restart apache
- name: ensure apache is running (and enable it at boot)
service: name=httpd state=started enabled=yes
handlers:
- name: restart apache
service: name=httpd state=restarted
(Diambil dari dokumentasi Ansible)
Langkah 2: Memahami buku main: tugas dan pengendali
Seperti yang anda lihat, terdapat beberapa bahagian dalam buku main ini. Pertama, anda akan melihat hosts:
garis. Ini menentukan host mana yang harus dijalankan. Anda juga dapat melihat bahawa kami telah menentukan beberapa pemboleh ubah yang dapat diakses dan digunakan di seluruh buku permainan. Anda kemudian akan melihat sejumlah tugas. Tugas-tugas ini dapat dinamakan seperti "Install Apache", misalnya. Tugas kedua dalam contoh menulis ke konfigurasi Apache. Anda kemudian akan melihat perkara berikut:
notify:
- restart apache
Ini memberitahu tugas untuk melaksanakan pengendali tertentu. Dalam kes ini, ini merujuk kepada pengendali restart apache
, yang terdapat di bahagian bawah buku main:
handlers:
- name: restart apache
service: name=httpd state=restarted
Pengendali senang dilakukan kerana, sebagai contoh, anda mungkin mahu memulakan semula Apache beberapa kali. Dalam kes ini, anda tidak perlu mengulangi membuat tugas untuk setiap kali anda perlu memulakan semula Apache tetapi sebaliknya, anda hanya boleh merujuk kepada pengendali yang sama setiap masa.
Langkah 3: Melaksanakan buku main
Katakan anda mahu menggunakan pelayan Apache. Seperti yang anda lihat, kami baru sahaja membuat buku permainan untuk itu. Melaksanakan buku main boleh dilakukan dengan menggunakan ansible-playbook
perintah. Sebagai contoh, jika kita menjalankan buku main ini di semua pelayan dalam webservers
kategori (anda perlu mempunyai kategori ini dalam /etc/ansible/hosts
fail anda ), anda akan menjalankan perintah berikut memandangkan nama fail buku main anda adalah apache.yml
:
ansible-playbook -i webservers apache.yml
Tahniah! Anda kini telah melaksanakan buku main di semua pelayan dalam webservers
kategori anda . Anda sekarang hanya perlu menunggu penyebaran selesai, dan anda akan melihat bahawa Apache telah berjaya dipasang dan dikonfigurasi pada pelayan ini.