Ansible - Playbooks

Trong chương này, chúng ta sẽ tìm hiểu về Playbooks trong Ansible.

Playbook là các tệp trong đó mã Ansible được viết. Playbook được viết ở định dạng YAML. YAML là viết tắt của Yet Another Markup Language.Playbookslà một trong những tính năng cốt lõi của Ansible và cho Ansible biết những gì cần thực thi. Chúng giống như một danh sách việc cần làm của Ansible chứa một danh sách các nhiệm vụ.

Playbook chứa các bước mà người dùng muốn thực hiện trên một máy cụ thể. Playbook được chạy tuần tự. Playbook là nền tảng cho tất cả các trường hợp sử dụng của Ansible.

Cấu trúc Playbook

Mỗi vở là một tập hợp của một hoặc nhiều vở trong đó. Playbook được cấu trúc bằng cách sử dụng Lượt chơi. Có thể có nhiều hơn một vở kịch trong một vở kịch.

Chức năng của một vở kịch là ánh xạ một tập hợp các hướng dẫn được xác định dựa trên một máy chủ cụ thể.

YAML là một ngôn ngữ được đánh máy nghiêm ngặt; vì vậy, cần phải cẩn thận hơn trong khi viết các tệp YAML. Có nhiều trình soạn thảo YAML khác nhau nhưng chúng tôi sẽ thích sử dụng trình soạn thảo đơn giản như notepad ++. Chỉ cần mở notepad ++ và sao chép và dán yaml bên dưới và thay đổi ngôn ngữ thành YAML (Language → YAML).

Một YAML bắt đầu bằng --- (3 dấu gạch ngang)

Tạo Playbook

Hãy để chúng tôi bắt đầu bằng cách viết một tệp YAML mẫu. Chúng ta sẽ đi qua từng phần được viết trong một tệp yaml.

--- 
   name: install and configure DB
   hosts: testServer
   become: yes

   vars: 
      oracle_db_port_value : 1521
   
   tasks:
   -name: Install the Oracle DB
      yum: <code to install the DB>
    
   -name: Ensure the installed service is enabled and running
   service:
      name: <your service name>

Trên đây là Playbook mẫu mà chúng tôi đang cố gắng trình bày cú pháp cơ bản của một playbook. Lưu nội dung trên vào một tệp dưới dạngtest.yml. Cú pháp YAML cần tuân theo thụt lề chính xác và người ta cần phải cẩn thận một chút khi viết cú pháp.

Các thẻ YAML khác nhau

Bây giờ chúng ta hãy xem xét các thẻ YAML khác nhau. Các thẻ khác nhau được mô tả bên dưới -

Tên

Thẻ này chỉ định tên của sách vở Ansible. Như trong vở kịch này sẽ làm gì. Bất kỳ tên hợp lý nào đều có thể được đặt cho sách vở.

máy chủ

Thẻ này chỉ định danh sách các máy chủ hoặc nhóm máy chủ lưu trữ mà chúng tôi muốn chạy tác vụ. Trường / thẻ máy chủ là bắt buộc. Nó cho Ansible biết máy chủ nào để chạy các tác vụ được liệt kê. Các tác vụ có thể được chạy trên cùng một máy hoặc trên một máy từ xa. Người ta có thể chạy các tác vụ trên nhiều máy và do đó thẻ máy chủ cũng có thể có một nhóm mục nhập máy chủ.

vars

Thẻ Vars cho phép bạn xác định các biến mà bạn có thể sử dụng trong sổ chơi của mình. Cách sử dụng tương tự như các biến trong bất kỳ ngôn ngữ lập trình nào.

nhiệm vụ

Tất cả các playbook phải chứa các nhiệm vụ hoặc danh sách các nhiệm vụ sẽ được thực hiện. Nhiệm vụ là danh sách các hành động mà một người cần thực hiện. Trường nhiệm vụ chứa tên của nhiệm vụ. Điều này hoạt động như văn bản trợ giúp cho người dùng. Nó không bắt buộc nhưng tỏ ra hữu ích trong việc gỡ lỗi playbook. Mỗi nhiệm vụ liên kết nội bộ với một đoạn mã được gọi là mô-đun. Một mô-đun sẽ được thực thi và các đối số được yêu cầu cho mô-đun bạn muốn thực thi.