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 แต่ละงานจะเชื่อมโยงภายในไปยังส่วนของโค้ดที่เรียกว่าโมดูล โมดูลที่ควรดำเนินการและอาร์กิวเมนต์ที่จำเป็นสำหรับโมดูลที่คุณต้องการดำเนินการ