Ansible Modules เจาะลึก: Command, Shell, Script และ Custom Modules

Ansible Modules เจาะลึก: Command, Shell, Script และ Custom Modules

Ansible มี modules หลายร้อยตัวสำหรับงานที่แตกต่างกัน แต่ modules กลุ่ม command execution คือพื้นฐานที่ใช้บ่อยที่สุด ไม่ว่าจะเป็น command, shell, script และสำหรับงานที่ไม่มี module รองรับ ก็ยังสร้าง custom module ขึ้นมาเองได้ บทความนี้อธิบายความแตกต่างระหว่าง command และ shell, วิธีใช้ script รัน loc

Ansible Error Handling: จัดการ Errors ด้วย block/rescue/always

Ansible Error Handling: จัดการ Errors ด้วย block/rescue/always

Error handling ใน Ansible ช่วยให้ Playbook รับมือกับความล้มเหลวได้อย่างชาญฉลาด แทนที่จะหยุดทันทีเมื่อ task ใดล้มเหลว สามารถกำหนดได้ว่าจะ retry, ข้ามไป, rollback, หรือส่ง notification ก่อนหยุด บทความนี้อธิบาย block/rescue/always pattern, การใช้ ignore_errors, failed_when, any_errors_fatal, และ max_fa

Ansible Tags: รันเฉพาะ Tasks ที่ต้องการด้วย Tags

Ansible Tags: รันเฉพาะ Tasks ที่ต้องการด้วย Tags

Tags ใน Ansible ช่วยให้รันเฉพาะ tasks ที่ต้องการโดยไม่ต้องรัน Playbook ทั้งหมด เช่น รันเฉพาะ task ที่เกี่ยวกับ config โดยข้าม task install, หรือข้าม task ที่ใช้เวลานานเมื่อทดสอบ บทความนี้อธิบายวิธีกำหนด tag, การใช้ --tags และ --skip-tags, special tags ที่มีใน Ansible, และ pattern การใช้ tags ที่เหมา

Ansible Roles: จัดระเบียบ Playbook ด้วยโครงสร้าง Role

Ansible Roles: จัดระเบียบ Playbook ด้วยโครงสร้าง Role

Roles คือวิธีจัดระเบียบ Playbook ขนาดใหญ่ให้เป็นหน่วยย่อยที่นำกลับมาใช้ใหม่ได้ แทนที่จะเขียน tasks ทั้งหมดในไฟล์เดียว Role แยกงานออกเป็นโครงสร้างไดเรกทอรีมาตรฐานที่ประกอบด้วย tasks, handlers, templates, files, vars และ defaults บทความนี้อธิบายโครงสร้าง Role, วิธีสร้างและใช้งาน, การส่ง variables เข้า

Ansible Templates (Jinja2): สร้าง Configuration Files อัตโนมัติ

Ansible Templates (Jinja2): สร้าง Configuration Files อัตโนมัติ

Template module ใน Ansible ใช้ Jinja2 engine สร้าง configuration files แบบ dynamic โดยแทรกค่าจาก variables และ facts ลงในไฟล์ต้นแบบ (.j2) ก่อน deploy ไปยัง remote host ทำให้ config file ชุดเดียวรองรับหลาย environment ได้โดยไม่ต้องดูแลหลายไฟล์แยกกัน บทความนี้อธิบายการใช้ template module ตั้งแต่โครงสร

Ansible Lookups: ดึงข้อมูลจากไฟล์ Database หรือ API

Ansible Lookups: ดึงข้อมูลจากไฟล์ Database หรือ API

Lookup Plugins คือกลไกที่ใช้ดึงข้อมูลจากแหล่งภายนอก Playbook ณ เวลาที่รัน ไม่ว่าจะเป็นไฟล์ในระบบ, environment variables, password ที่สร้างแบบ dynamic หรือผลลัพธ์จาก command แล้วนำมาใช้เป็น variable โดยตรง บทความนี้อธิบาย lookup plugins ที่ใช้บ่อยที่สุดในทางปฏิบัติ ตั้งแต่ file, env, password, templa

Ansible Filters: ประมวลผล Variables ด้วย Jinja2 Filters

Ansible Filters: ประมวลผล Variables ด้วย Jinja2 Filters

Jinja2 Filters คือฟังก์ชันที่ใช้แปลงหรือประมวลผล variable ใน Playbook โดยใส่ | ตามหลังตัวแปร เช่น {{ username | upper }} ทำให้ไม่ต้องเขียน task เพิ่มเพื่อแปลงค่า และทำให้ template อ่านง่ายขึ้นมาก บทความนี้รวบรวม filters ที่ใช้บ่อยที่สุดในทางปฏิบัติ ครอบคลุมตั้งแต่การแปลง string, จัดการ list, ตรวจสอบ

Ansible Facts: รวบรวม System Information อัตโนมัติ

Ansible Facts: รวบรวม System Information อัตโนมัติ

Facts คือข้อมูลระบบที่ Playbook รวบรวมจาก remote host โดยอัตโนมัติก่อน task แรกเสมอ ครอบคลุมตั้งแต่ OS version, IP address, จำนวน CPU ไปจนถึง disk layout ทำให้ Playbook ตัดสินใจตามสภาพแวดล้อมจริงได้โดยไม่ต้อง hardcode บทความนี้อธิบาย facts ในเชิงลึก ตั้งแต่โครงสร้าง ansible_facts, การใช้ gather_subs

Ansible Registered Variables: เก็บ Output จาก Task เพื่อใช้ต่อไป

Ansible Registered Variables: เก็บ Output จาก Task เพื่อใช้ต่อไป

Registered Variables คือวิธีเก็บ output จาก task หนึ่งแล้วนำไปใช้ใน task ถัดไป เป็นฟีเจอร์ที่ทำให้ Playbook สามารถตัดสินใจตาม output จริงได้ เช่น ตรวจสอบว่า command สำเร็จหรือไม่, อ่านค่า IP จาก command แล้วนำไปตั้งค่า firewall, หรือตรวจสอบว่าไฟล์มีอยู่แล้วหรือยังก่อน deploy บทความนี้อธิบายวิธีใช้ r

Ansible Variables: เบื้องต้น Local, Fact, Extra Variables

Ansible Variables: เบื้องต้น Local, Fact, Extra Variables

Variables คือหัวใจสำคัญของ Playbook ที่ทำให้ automation ยืดหยุ่นและนำกลับมาใช้ซ้ำได้ แทนที่จะเขียน value ตายตัวลงในแต่ละ task ตรง ๆ การใช้ variables ช่วยให้ปรับค่าต่าง ๆ ได้จากจุดเดียวโดยไม่ต้องแก้ไข task ทั้งหมด บทความนี้อธิบายครบ 3 ประเภทหลักที่ใช้บ่อยที่สุด ได้แก่ Local Variables (กำหนดในไฟล์), F

LINE CHAT