Playbooks trong Ansible là những gì làm cho Ansible trở nên tiện dụng. Playbooks cho phép thực hiện các tác vụ thông thường với một số mô-đun. Khi nào chúng ta nên sử dụng playbooks?
Chúng ta hãy xem một nhiệm vụ bảo trì thường xuyên: cập nhật máy chủ của bạn. Chúng tôi sẽ không phải sử dụng một playbook cho việc này, vì đó chỉ là một lệnh : apt-get update
. Chúng tôi chỉ có thể sử dụng một lệnh duy nhất để cập nhật phần mềm trên tất cả các máy chủ của mình. Tuy nhiên, để triển khai một cái gì đó như máy chủ web hoặc cơ sở dữ liệu, cần nhiều công việc hơn: không chỉ là một lệnh. Playbooks là hoàn hảo cho trường hợp này. Chúng cho phép bạn sử dụng nhiều mô-đun, đó là các lệnh có thể được thực thi trên máy chủ. Ví dụ: có các mô-đun để sao chép tệp và thực hiện các lệnh shell qua SSH.
Vậy làm thế nào để chúng ta sử dụng playbooks? Bắt đầu nào!
Bước 1: Tạo tệp YAML ( .yml
)
Playbook Ansible được viết dưới dạng .yml
tập tin; Ansible không thể giải thích các định dạng khác. Một ví dụ Playbook Ansible trông như thế này:
---
- 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
(Lấy từ tài liệu của Ansible)
Bước 2: Tìm hiểu về playbooks: nhiệm vụ và xử lý
Như bạn có thể thấy, có nhiều phần trong cuốn sách này. Trước hết, bạn sẽ thấy hosts:
dòng. Điều này xác định máy chủ lưu trữ nào sẽ được thực thi. Bạn cũng có thể thấy rằng chúng tôi đã xác định một vài biến có thể được truy cập và sử dụng trong suốt playbook. Sau đó bạn sẽ thấy một số nhiệm vụ. Các tác vụ này có thể được đặt tên giống như "Cài đặt Apache" chẳng hạn. Tác vụ thứ hai trong ví dụ ghi vào cấu hình Apache. Sau đó, bạn sẽ thấy như sau:
notify:
- restart apache
Điều này nói với một nhiệm vụ để thực hiện một xử lý nhất định. Trong trường hợp này, nó đề cập đến trình xử lý restart apache
, có thể được tìm thấy ở dưới cùng của playbook:
handlers:
- name: restart apache
service: name=httpd state=restarted
Trình xử lý thuận tiện vì, lấy ví dụ, bạn có thể muốn khởi động lại Apache nhiều lần. Trong trường hợp này, bạn không phải lặp lại việc tạo một tác vụ cho mỗi lần bạn cần khởi động lại Apache mà thay vào đó, bạn chỉ có thể tham khảo cùng một trình xử lý mỗi lần.
Bước 3: Thi công các vở kịch
Giả sử bạn muốn triển khai một máy chủ Apache. Vâng, như bạn có thể thấy, chúng tôi vừa tạo ra một cuốn sách cho điều đó. Thực hiện playbooks có thể được thực hiện bằng cách sử dụng ansible-playbook
lệnh. Ví dụ: nếu chúng tôi thực hiện Playbook này trên tất cả các máy chủ trong webservers
danh mục (bạn sẽ cần phải có danh mục này trong /etc/ansible/hosts
tệp của mình ), bạn sẽ chạy lệnh sau với tên của tệp playbook của bạn là apache.yml
:
ansible-playbook -i webservers apache.yml
Xin chúc mừng! Bây giờ bạn đã thực hiện một playbook trên tất cả các máy chủ trong webservers
thể loại của bạn . Bây giờ bạn sẽ phải đợi quá trình triển khai kết thúc và bạn sẽ thấy rằng Apache đã được cài đặt và cấu hình thành công trên các máy chủ này.