Automation Server Maintenance with Ansible 2026 - เล่าจาก Dev ไทย
เพิ่งอ่านเจอบทความจากต่างประเทศเกี่ยวกับ Ansible แล้วรู้สึกว่าน่าสนใจมากเลยครับ คือปกติผมก็ใช้ Python เขียน script automate อะไรบ้าง แต่ Ansible มันดูเนี้ยบกว่าเยอะมาก บทความนั้นเขาทำเป็น guide step-by-step เลย ผมเลยอยากมาแชร์ให้เพื่อนๆ dev ที่ไทยเราได้ลองทำตามกันดูครับ โดยเฉพาะคนที่กำลังเจอปัญหา server maintenance ที่ต้องทำเองบ่อยๆ
1. Ansible คืออะไร และทำไมถึงน่าสนใจใน 2026
ก่อนอื่น เรามาทำความเข้าใจกันก่อนว่า Ansible คืออะไรครับ มันคือ tool ที่ใช้ automation tasks ต่างๆ บน server ได้เลย ไม่ว่าจะเป็นการติดตั้ง software, ตั้งค่า configuration, หรือแม้แต่ restart service ทุกอย่างเราทำผ่านไฟล์ YAML ที่เขียนง่ายๆ ครับ
ใน 2026 มันเป็นเครื่องมือที่จำเป็นมาก เพราะทีม dev ส่วนใหญ่ต้องการ deploy application ได้เร็วและลดข้อผิดพลาด ผมคิดว่ามันเหมือนใช้ “Chef” แต่ฟรี และใช้งานง่ายกว่าเยอะมาก จริงๆ ถ้าเป็นผม ผมจะใช้ Ansible แทนการเขียน script ด้วย Python เองเลย เพราะมันช่วยให้การ deploy เป็นไปอย่าง repeatable และ predictable มากกว่า
# ตัวอย่างการ install Apache (จริงๆ ควรใช้ Ansible)
# print("Install Apache...")
# # code here...
# print("Apache installed!")
2. Installation และ Setup Ansible
การติดตั้ง Ansible มันไม่ยากอย่างที่คิดครับ เราสามารถติดตั้งบน server ของเราได้เลย หรือจะใช้ Ansible Engine ก็ได้ ซึ่ง Engine คือส่วนที่ทำหน้าที่สื่อสารกับ target server ครับ
สำหรับผม ผมเลือกติดตั้งบน Ubuntu server ของผมก่อนครับ ขั้นตอนก็ง่ายมาก คือติดตั้ง Ansible Engine และ Ansible Configuration Manager
# sudo apt update
# sudo apt install ansible
Cost: ฟรี! แต่ถ้าอยากใช้ features ขั้นสูง อาจจะต้องพิจารณา Ansible Tower (เสียเงิน) หรือ Ansible Automation Platform (เสียเงิน) แต่สำหรับเริ่มต้น ผมว่าใช้ Ansible Engine อย่างเดียวก็พอครับ
3. เขียน Playbook ครั้งแรก
Playbook คือไฟล์ YAML ที่บอก Ansible ว่าจะทำอะไรบ้าง เราจะสร้าง Playbook ง่ายๆ เพื่อจัดการ service Apache ครับ
---
- hosts: webservers
become: true # จำเป็นต้องใช้ sudo
tasks:
- name: Install Apache
apt:
name: apache2
state: present
- name: Start Apache
service:
name: apache2
state: started
- name: Enable Apache
service:
name: apache2
enabled: true
อธิบาย:
- `hosts: webservers` : ระบุว่า Playbook นี้จะทำงานบน server กลุ่ม "webservers"
- `become: true` : หมายความว่า Playbook นี้จะต้องใช้ sudo เพื่อ execute tasks
- `tasks:` : ส่วนนี้จะเก็บ tasks ต่างๆ ที่เราต้องการให้ Ansible ทำ
ตอนนี้เราสามารถ run Playbook นี้ได้ด้วยคำสั่ง `ansible-playbook my_playbook.yml` ครับ
4. Variables และ Templates
ใน Playbook เราสามารถใช้ variables เพื่อให้มีความยืดหยุ่นมากขึ้น เช่น เปลี่ยนชื่อ server หรือ version ของ software ได้
---
- hosts: webservers
vars:
apache_version: 2.4.5
tasks:
- name: Install Apache
apt:
name: apache{{ apache_version }}
state: present
- name: Start Apache
service:
name: apache2
state: started
และเรายังสามารถใช้ templates เพื่อสร้างไฟล์ configuration ได้อีกด้วย เช่น สร้างไฟล์ configuration สำหรับ Apache ที่มีชื่อ server ของเรา
ถ้ายังไม่คุ้นเคย ลองไปดูตัวอย่างที่ HTMX + FastAPI: สร้าง Web App Python เร็ว 3 เท่า (ไม่ใช้ React) ดูการจัดการ config ด้วย templating ก็ได้ครับ
5. Integration กับ CI/CD
ใน 2026 การ integrate Ansible กับ CI/CD pipeline เป็นสิ่งสำคัญมาก เพื่อให้การ deploy เป็นไปอย่าง automated และ seamless
เราสามารถใช้ tools อย่าง Jenkins, GitLab CI, หรือ GitHub Actions เพื่อ run Playbook เมื่อมีการ push code ขึ้น repository
ผมคิดว่ามันเหมือนการใช้ Ansible ใน CI/CD pipeline แต่เราต้องตั้งค่าให้มันทำงานร่วมกันอย่างถูกต้องเท่านั้นเอง
ถ้าสนใจเรื่อง Serverless DevOps Automation 2026: Speed Up Deployments Now! ลองดูบทความนี้ ครับ
ผมจะลองนำเรื่องนี้ไป apply กับ project ตัวใหม่ที่กำลังทำดูครับ อาจจะลองใช้ Ansible สร้าง CI/CD pipeline เองเลย
FAQ
- Q: Ansible เหมาะกับทีมขนาดไหน? A: เหมาะกับทีมขนาดเล็กถึงขนาดกลางครับ แต่ถ้าทีมใหญ่มากๆ อาจจะต้องพิจารณาเรื่องการจัดการ credentials และ security ให้ดี
- Q: ถ้าไม่เคยใช้ automation tool มาก่อน จะเริ่มจากตรงไหน? A: ผมแนะนำให้เริ่มจาก Playbook ง่ายๆ ก่อนครับ เช่น Install Apache หรือ ตั้งค่า configuration บางอย่าง แล้วค่อยๆ เพิ่มความซับซ้อนขึ้นเรื่อยๆ