Skip to main content
Back to articles

Ansible Roles แยกงานตั้งค่าเซิร์ฟเวอร์ให้ใช้ซ้ำ

role จัด task, handler, template และ default variable เป็นหน่วยงานเดียว อธิบายหลักการใช้งาน กรณีที่เหมาะ และข้อควรระวังจากเอกสารทางการ

Ansible Roles แยกงานตั้งค่าเซิร์ฟเวอร์ให้ใช้ซ้ำ

role จัด task, handler, template และ default variable เป็นหน่วยงานเดียว เหมาะกับการตั้งค่าเว็บเซิร์ฟเวอร์หรือฐานข้อมูลหลายชุดด้วยมาตรฐานเดียวกัน บทความนี้สรุปแนวคิดจากเอกสารทางการของ Ansible และจุดที่ควรตรวจเมื่อนำไปใช้จริง

ภาพรวม

Ansible ใช้ inventory และ playbook เพื่อจัดการเครื่องปลายทาง การรันซ้ำและตรวจว่าเครื่องเปลี่ยนจริงหรือไม่เป็นส่วนสำคัญของ automation

หัวข้อนี้ตอบโจทย์เฉพาะเรื่อง: role จัด task, handler, template และ default variable เป็นหน่วยงานเดียว จึงควรเริ่มจากปัญหาที่ต้องแก้และผลลัพธ์ที่คาดหวัง ไม่ใช่เพียงเปิดฟีเจอร์เพราะมีอยู่ในเครื่องมือ

หลักการทำงาน

playbook เรียก role ตามลำดับและส่งค่าที่ต่างกันให้แต่ละ environment

ให้ตรวจทั้งสถานะที่เครื่องมือรายงานและผลลัพธ์ปลายทางที่ผู้ใช้หรือระบบอื่นได้รับ หากสองส่วนไม่ตรงกัน ควรกลับไปตรวจค่าตั้งต้นและขอบเขตที่ฟีเจอร์นี้รับผิดชอบก่อนเปลี่ยนค่าเพิ่มเติม

เหมาะกับงานแบบไหน

เหมาะกับการตั้งค่าเว็บเซิร์ฟเวอร์หรือฐานข้อมูลหลายชุดด้วยมาตรฐานเดียวกัน

ก่อนทดลอง ให้ระบุสิ่งที่จะใช้วัดผล เช่น เวลาตอบสนอง ความพร้อมใช้งาน ความถูกต้องของข้อมูล หรือภาระการดูแล แล้วเทียบกับสภาพเดิม วิธีนี้ช่วยให้รู้ว่าฟีเจอร์แก้ปัญหาจริงหรือย้ายภาระไปอีกจุดหนึ่ง

ขั้นตอนนำไปใช้

  1. จำกัด inventory ให้เป็นกลุ่มเครื่องทดลอง
  2. ใช้ check mode เมื่อ module รองรับ แล้วอ่าน diff ก่อนรันจริง
  3. รันซ้ำเพื่อตรวจว่า task ไม่เปลี่ยนเครื่องโดยไม่จำเป็น

เริ่มจากขอบเขตเล็กและเก็บผลทดสอบไว้กับการเปลี่ยนแปลง หากจะใช้ใน production ให้กำหนดผู้ติดตามผลและเงื่อนไขที่จะหยุดการขยายการใช้งาน

ข้อควรระวัง

อย่าใส่เงื่อนไขเฉพาะเครื่องมากเกินไปจน role อ่านและทดสอบยาก

แปลงข้อควรระวังนี้เป็นรายการตรวจในการทบทวนงาน เพราะปัญหาจากค่าตั้งต้นอาจไม่แสดงทันทีในสภาพแวดล้อมทดสอบ

สรุป

role จัด task, handler, template และ default variable เป็นหน่วยงานเดียว เหมาะกับการตั้งค่าเว็บเซิร์ฟเวอร์หรือฐานข้อมูลหลายชุดด้วยมาตรฐานเดียวกัน ก่อนนำไปใช้กับงานหลัก ควรตรวจผลตามขั้นตอนข้างต้นและทบทวนข้อจำกัดของระบบที่มีอยู่

อ่านเพิ่มเติม: เอกสารทางการของ Ansible