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 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 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

Ansible Playbooks เจาะลึก: Handlers, Variables, Conditionals และ Loops

Ansible Playbooks เจาะลึก: Handlers, Variables, Conditionals และ Loops

บทความนี้อธิบาย Handlers, Variables ในระดับ play, Conditionals, และ Loops พร้อมตัวอย่างที่นำไปใช้ได้ทันที Playbook เบื้องต้นที่รัน task ตามลำดับใช้งานได้ดี แต่ระบบจริงต้องการความยืดหยุ่นมากกว่านั้น บางครั้งต้องรีสตาร์ต service เฉพาะเมื่อ config เปลี่ยน บางครั้งต้องรัน task เฉพาะบาง server หรือต้องสร

Ansible Host Variables และ Group Variables: ตั้งค่า Default ต่อ Server

Ansible Host Variables และ Group Variables: ตั้งค่า Default ต่อ Server

ตัวแปรใน Ansible ช่วยให้ playbook เดียวทำงานต่างกันในแต่ละ server ได้ ไม่ว่าจะเป็น port, path, หรือค่า config ที่แตกต่างกันระหว่าง production กับ staging การเข้าใจวิธีกำหนด host_vars และ group_vars อย่างถูกต้องช่วยให้ playbook อ่านง่าย maintain ได้ดี และขยายระบบได้โดยไม่ต้องแก้ logic หลัก บทความนี้อ

LINE CHAT