Ansible - Playbooks
ในบทนี้เราจะเรียนรู้เกี่ยวกับ Playbooks ใน Ansible
Playbooks คือไฟล์ที่เขียนโค้ด Ansible Playbooks เขียนในรูปแบบ YAML YAML ย่อมาจาก Yet Another Markup LanguagePlaybooksเป็นหนึ่งในคุณสมบัติหลักของ Ansible และบอก Ansible ว่าจะดำเนินการอะไร เป็นเหมือนรายการสิ่งที่ต้องทำสำหรับ Ansible ที่มีรายการงาน
Playbooks มีขั้นตอนที่ผู้ใช้ต้องการดำเนินการบนเครื่องใดเครื่องหนึ่ง Playbooks จะทำงานตามลำดับ Playbooks เป็นส่วนประกอบสำคัญสำหรับทุกกรณีการใช้งานของ Ansible
โครงสร้าง Playbook
Playbook แต่ละเล่มเป็นการรวมบทละครหนึ่งเรื่องขึ้นไปในนั้น Playbook มีโครงสร้างโดยใช้ Plays สามารถมีการเล่นมากกว่าหนึ่งรายการในเพลย์บุ๊ก
หน้าที่ของการเล่นคือการจับคู่ชุดคำสั่งที่กำหนดไว้กับโฮสต์เฉพาะ
YAML เป็นภาษาพิมพ์ที่เข้มงวด ดังนั้นจึงต้องใช้ความระมัดระวังเป็นพิเศษในขณะที่เขียนไฟล์ YAML มีโปรแกรมแก้ไข YAML ที่แตกต่างกัน แต่เราต้องการใช้โปรแกรมแก้ไขแบบธรรมดาเช่น notepad ++ เพียงแค่เปิด notepad ++ แล้วคัดลอกและวาง yaml ด้านล่างแล้วเปลี่ยนภาษาเป็น YAML (Language → YAML)
YAML เริ่มต้นด้วย --- (ขีดกลาง 3 ตัว)
สร้าง Playbook
เริ่มต้นด้วยการเขียนไฟล์ YAML ตัวอย่าง เราจะอธิบายแต่ละส่วนที่เขียนในไฟล์ 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>
ด้านบนเป็น Playbook ตัวอย่างที่เราพยายามจะครอบคลุมไวยากรณ์พื้นฐานของ playbook บันทึกเนื้อหาข้างต้นเป็นไฟล์test.yml. ไวยากรณ์ของ YAML ต้องเป็นไปตามการเยื้องที่ถูกต้องและต้องระมัดระวังเล็กน้อยในขณะที่เขียนไวยากรณ์
แท็ก YAML ที่แตกต่างกัน
ให้เราดูแท็ก YAML ที่แตกต่างกัน แท็กต่างๆอธิบายไว้ด้านล่าง -
ชื่อ
แท็กนี้ระบุชื่อของ Ansible playbook เช่นเดียวกับในสิ่งที่ Playbook นี้จะทำ สามารถตั้งชื่อเชิงตรรกะให้กับ playbook ได้
เจ้าภาพ
แท็กนี้ระบุรายการโฮสต์หรือกลุ่มโฮสต์ที่เราต้องการรันงาน ฟิลด์ / แท็กโฮสต์มีผลบังคับ มันบอก Ansible ว่าโฮสต์ใดที่จะรันงานที่ระบุไว้ สามารถรันงานบนเครื่องเดียวกันหรือบนเครื่องระยะไกลได้ หนึ่งสามารถรันงานบนเครื่องหลายเครื่องและด้วยเหตุนี้แท็กโฮสต์สามารถมีกลุ่มของรายการโฮสต์ได้เช่นกัน
vars
แท็ก Vars ช่วยให้คุณกำหนดตัวแปรที่คุณสามารถใช้ใน playbook ของคุณ การใช้งานจะคล้ายกับตัวแปรในภาษาโปรแกรมใด ๆ
งาน
Playbooks ทั้งหมดควรมีงานหรือรายการงานที่ต้องดำเนินการ Tasks คือรายการของการดำเนินการที่ต้องดำเนินการ ฟิลด์งานมีชื่อของงาน ใช้เป็นข้อความช่วยเหลือสำหรับผู้ใช้ ไม่ได้บังคับ แต่พิสูจน์ได้ว่ามีประโยชน์ในการดีบัก playbook แต่ละงานจะเชื่อมโยงภายในไปยังส่วนของโค้ดที่เรียกว่าโมดูล โมดูลที่ควรดำเนินการและอาร์กิวเมนต์ที่จำเป็นสำหรับโมดูลที่คุณต้องการดำเนินการ