Ansible Role Variables: defaults/main.yml, vars/main.yml อธิบายแตกต่างกัน

Ansible Role Variables: defaults/main.yml, vars/main.yml อธิบายแตกต่างกัน

Ansible มีระบบ variable precedence (ลำดับความสำคัญของ variables) ที่ซับซ้อน — ใน Ansible Role มีไฟล์ variable หลัก 2 ไฟล์คือ defaults/main.yml และ vars/main.yml ซึ่งมีความแตกต่างกันอย่างชัดเจนทั้งในด้าน priority, วัตถุประสงค์ และวิธีใช้งาน การเข้าใจความแตกต่างนี้ทำให้ออกแบบ role ที่ยืดหยุ่นและนำกลับ

สร้าง Ansible Role จาก Scratch: Directory Structure และ Files

สร้าง Ansible Role จาก Scratch: Directory Structure และ Files

Ansible Role มีโครงสร้าง directory ที่กำหนดไว้แน่นอน — แต่ละ directory มีหน้าที่เฉพาะตัว เช่น tasks/ สำหรับ task logic, templates/ สำหรับ Jinja2 templates, handlers/ สำหรับ handlers และ defaults/ สำหรับ default variables การเข้าใจโครงสร้างนี้ทำให้สร้างและใช้ roles ได้อย่างถูกต้อง บทความนี้ครอบคลุมกา

Ansible Roles ขั้นสูง: Dependencies, Defaults และ Galaxy Integration

Ansible Roles ขั้นสูง: Dependencies, Defaults และ Galaxy Integration

Ansible Role เป็นวิธีจัดระเบียบ Playbook ให้ reusable และ shareable — แต่ Role ที่ดีจริง ๆ ต้องเข้าใจการจัดการ dependencies ระหว่าง roles, ความแตกต่างระหว่าง defaults และ vars และการใช้ประโยชน์จาก Ansible Galaxy เพื่อดึง community roles มาใช้แทนการเขียนเอง บทความนี้ครอบคลุม role dependencies ใน meta

Ansible Block: จัดกลุ่ม Tasks และ Apply Block-level Handler

Ansible Block: จัดกลุ่ม Tasks และ Apply Block-level Handler

Ansible block ใช้จัดกลุ่ม tasks หลาย ๆ task เข้าด้วยกัน และ apply directive ร่วมกันทั้งกลุ่มได้ในครั้งเดียว — เช่น กำหนด when, become, tags, หรือ notify ระดับ block ให้ทุก task ภายในได้รับผลพร้อมกัน แทนที่จะเขียนซ้ำในแต่ละ task บทความนี้ครอบคลุมการใช้ block เพื่อจัดกลุ่ม tasks, การ apply when ระดับ

Ansible Error Handling: ignore_errors, failed_when, changed_when

Ansible Error Handling: ignore_errors, failed_when, changed_when

Ansible มีกลไก error handling ที่ยืดหยุ่น ช่วยให้ Playbook ทำงานต่อได้แม้บาง task จะล้มเหลว หรือกำหนดว่าเมื่อไรจึงถือว่า task สำเร็จหรือมีการเปลี่ยนแปลง — ignore_errors, failed_when และ changed_when เป็น directives หลักที่ใช้ควบคุมพฤติกรรมนี้ บทความนี้ครอบคลุมการใช้ ignore_errors เพื่อ skip errors ท

Ansible Loops: repeat Tasks หลาย ๆ ครั้งกับ Loop Data

Ansible Loops: repeat Tasks หลาย ๆ ครั้งกับ Loop Data

Ansible loop ใช้รัน task ซ้ำหลายครั้งด้วยข้อมูลที่ต่างกัน — เช่น ติดตั้ง packages หลายตัว, สร้างหลาย users, หรือ deploy หลาย config files ในคำสั่งเดียว แทนที่จะเขียน task แยกสำหรับแต่ละรายการ บทความนี้ครอบคลุม syntax พื้นฐานของ loop, การวนซ้ำบน list, dictionary, และ nested data, การใช้ loop_control

Ansible Conditionals: when statement ให้ Task ทำงานตามเงื่อนไข

Ansible Conditionals: when statement ให้ Task ทำงานตามเงื่อนไข

Ansible when statement ใช้กำหนดเงื่อนไขให้ task รันเฉพาะเมื่อตรงตามที่ต้องการ — เช่น รันเฉพาะบน Ubuntu, เฉพาะเมื่อไฟล์ยังไม่มี, หรือเฉพาะเมื่อ variable มีค่าที่กำหนด ทำให้ Playbook ทำงานได้บนหลาย OS หรือหลาย environment โดยใช้ไฟล์เดียว บทความนี้ครอบคลุม syntax พื้นฐานของ when, การใช้ facts ตรวจ OS,

Ansible Handlers: Trigger Actions เมื่อ Task มีการเปลี่ยนแปลง

Ansible Handlers: Trigger Actions เมื่อ Task มีการเปลี่ยนแปลง

Ansible Handlers คือ task พิเศษที่ถูก trigger โดย notify เมื่อ task อื่นมีการเปลี่ยนแปลง (changed) เท่านั้น — เหมาะสำหรับ action ที่ควรทำเฉพาะเมื่อจำเป็น เช่น restart service หลังแก้ไข config, reload Nginx หลังเพิ่ม virtual host หรือ clear cache หลัง deploy code บทความนี้ครอบคลุมการประกาศ handlers,

Ansible wait_for Module: รอให้ Service Ready ก่อน Deploy ต่อ

Ansible wait_for Module: รอให้ Service Ready ก่อน Deploy ต่อ

Ansible wait_for module ใช้หยุดรอให้เงื่อนไขบน remote server เป็นจริงก่อนดำเนินการ task ถัดไป ไม่ว่าจะเป็นรอให้ port เปิด, service พร้อม, ไฟล์ปรากฏ, หรือ connection ปิด — เหมาะสำหรับ deployment workflow ที่ต้องการให้ service พร้อมก่อน proceed ต่อ บทความนี้ครอบคลุม parameters หลัก, การรอ port, การรอ

Ansible uri Module: API Requests และ HTTP Calls ใน Playbook

Ansible uri Module: API Requests และ HTTP Calls ใน Playbook

Ansible uri module ใช้ส่ง HTTP/HTTPS request จาก Playbook ไปยัง REST API, Webhook หรือ Web Service โดยตรง รองรับ GET, POST, PUT, PATCH, DELETE และ method อื่น ๆ พร้อมกำหนด headers, body, authentication และตรวจสอบ status code — ทั้งหมดนี้ทำได้โดยไม่ต้องรัน command: curl ซึ่งไม่ idempotent บทความนี้คร

LINE CHAT