Làm thế nào để chạy nhiều playbook theo thứ tự với Ansible?


16

Tôi đang làm việc trên một số Playbook Ansible để tạo ra một phiên bản máy chủ mới. Có khoảng 15 playbook khác nhau tôi cần chạy theo một thứ tự cụ thể để khởi động thành công một máy chủ.

Suy nghĩ ban đầu của tôi là viết một kịch bản shell thực thi ansible-playbook playbook_name.ymlvà sao chép nó một mục nhập cho mỗi playbook tôi cần chạy.

Có cách nào thông minh hơn / tốt hơn để làm điều này bằng cách sử dụng một playbook chính và nếu vậy nó sẽ trông như thế nào (ví dụ được đánh giá cao).

Tôi có thể viết một vở kịch nguyên khối làm tất cả nhưng có một số vở kịch chạy bằng root trước sau đó là người dùng sudo sau.


2
sử dụng bao gồm trong playbook chính của bạn docs.ansible.com/ansible/playbooks_roles.html
c4f4t0r

1
Để xử lý trường hợp chạy bằng root, với tư cách là người dùng sudo, bạn có thể sử dụng tính năng chặn - đặt become:phần ở cuối mỗi khối. Bạn có thể cần phải tạo một phát mới để chuyển người dùng kết nối từ người dùng gốc sang người dùng sudo.
RichVel

Câu trả lời:


15

Xây dựng nhiều vở kịch phụ và tổng hợp chúng thông qua các câu lệnh bao gồm.

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

Nếu Playbook của bạn phải chạy theo thứ tự và nếu tất cả chúng là bắt buộc, hãy xây dựng một playbook chính và bao gồm các tệp với các tác vụ. Một cuốn sách nên luôn luôn là một quá trình khép kín.


2
bạn có thể giải thích về phần cuối của câu trả lời của bạn? ý bạn là gì bởi "Một cuốn sách nên luôn luôn là một quy trình khép kín." ?
Mike Vella

1
Có cách nào để chỉ định tất cả các playbook bằng cách sử dụng biểu thức chính quy không? Ví dụ:- include : books/*.yml
blueskin

8
Hình như includebị phản đối. docs.ansible.com/ansible/latest/playbooks_Vuse.html Tôi nghĩ import_playbook: foolà cách đúng đắn để đi, nhưng tôi không có nhiều kinh nghiệm.
Andrew

11

Đối với các phiên bản mới hơn của Ansilbe, bạn có thể xây dựng nhiều sách phụ và tổng hợp chúng thông qua các câu lệnh import_playbook:

---
- import_playbook: A-systemd-networkd.yml
- import_playbook: B-fail2ban-ssh.yml
- import_playbook: C-enable-watchdog.yml
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.