
Network Automation: ใช้ Ansible จัดการ Switch และ Router อัตโนมัติ
การ configure switch และ router ทีละตัวด้วย CLI เป็นงานที่ใช้เวลามากและเสี่ยงต่อ human error โดยเฉพาะเมื่อองค์กรมีอุปกรณ์ network หลายร้อยตัว การเปลี่ยน VLAN, อัพเดท ACL หรือ push configuration ไปยังทุกอุปกรณ์พร้อมกัน ถ้าทำ manual อาจใช้เวลาหลายวันและมีโอกาสผิดพลาดสูง Network Automation ด้วย Ansible ช่วยให้ทำงานเหล่านี้ได้ในไม่กี่นาที อย่างถูกต้องและทำซ้ำได้
Ansible เป็น automation tool ที่นิยมที่สุดสำหรับ network automation เพราะ agentless (ไม่ต้องติดตั้ง software บนอุปกรณ์ network) ใช้ SSH ที่มีอยู่แล้ว syntax เป็น YAML ที่อ่านง่าย มี modules สำหรับ Cisco, Juniper, Arista, FortiGate, Mikrotik และอีกมากมาย
ทำไมต้อง Network Automation
ลดเวลาและ Human Error
งานที่เคยใช้เวลา 4 ชั่วโมง (login เข้าอุปกรณ์ 50 ตัว พิมพ์ command ทีละตัว) Ansible ทำได้ใน 5 นาที และไม่มี typo ไม่มีการลืม configure อุปกรณ์บางตัว configuration ทุกตัวเหมือนกัน 100% (consistency)
Configuration as Code
Ansible playbooks เป็น code ที่เก็บใน Git ได้ track changes ได้ว่าใครเปลี่ยนอะไรเมื่อไหร่ review ก่อน deploy ได้ (pull request) rollback กลับ version เก่าได้ถ้ามีปัญหา เป็นหลักการ Infrastructure as Code (IaC) ที่ใช้กันในโลก DevOps
Compliance และ Audit
ใช้ Ansible ตรวจสอบว่าอุปกรณ์ทุกตัว comply กับ security policy เช่น SSH enabled, Telnet disabled, NTP configured, SNMP community string เปลี่ยนจาก default, password policy ถูกต้อง รัน playbook ทุกวันเพื่อ audit compliance อัตโนมัติ
Ansible พื้นฐานสำหรับ Network Engineer
Inventory
Inventory คือไฟล์ที่กำหนดว่ามีอุปกรณ์อะไรบ้าง จัดกลุ่มอย่างไร เขียนเป็น INI หรือ YAML format ตัวอย่าง: กลุ่ม [core_switches] มี sw-core-01, sw-core-02 กลุ่ม [access_switches] มี sw-acc-01 ถึง sw-acc-20 กลุ่ม [firewalls] มี fw-01, fw-02 กำหนด variables เช่น ansible_network_os, ansible_user, ansible_password ต่อกลุ่มได้
Playbook
Playbook คือไฟล์ YAML ที่กำหนดว่าจะทำอะไรกับอุปกรณ์ไหน ประกอบด้วย hosts (อุปกรณ์ที่จะ run), tasks (รายการสิ่งที่จะทำ) แต่ละ task ใช้ module ที่เหมาะสม เช่น cisco.ios.ios_config สำหรับ Cisco IOS, junipernetworks.junos.junos_config สำหรับ Juniper
Modules สำหรับ Network
| Vendor | Collection | Module ตัวอย่าง |
|---|---|---|
| Cisco IOS/IOS-XE | cisco.ios | ios_config, ios_command, ios_vlans, ios_interfaces |
| Cisco NX-OS | cisco.nxos | nxos_config, nxos_vlans, nxos_bgp |
| Juniper Junos | junipernetworks.junos | junos_config, junos_command |
| Arista EOS | arista.eos | eos_config, eos_vlans |
| FortiGate | fortinet.fortios | fortios_firewall_policy, fortios_system_interface |
| Generic | ansible.netcommon | cli_command, cli_config, net_ping |
ตัวอย่าง Use Cases
1. Push VLAN Configuration ไปทุก Switch
สร้าง playbook ที่ สร้าง VLAN ใหม่ บน access switches ทั้งหมดพร้อมกัน กำหนด VLAN ID, name, และ assign ports hosts: access_switches tasks: ใช้ ios_vlans module สร้าง VLAN, ใช้ ios_l2_interfaces module assign ports เข้า VLAN รัน playbook ครั้งเดียว VLAN ถูกสร้างบนทุก switch ในไม่กี่วินาที
2. Backup Configuration ทุกอุปกรณ์
สร้าง playbook ที่ backup running-config จากทุกอุปกรณ์ เก็บเป็นไฟล์ใน directory ที่กำหนด ตั้ง cron job รัน playbook ทุกวัน เก็บ backup ใน Git repository track changes อัตโนมัติ เมื่อ configuration เปลี่ยน Git จะแสดง diff ว่าเปลี่ยนอะไร
3. Security Audit
สร้าง playbook ที่ ตรวจสอบ security settings ทุกอุปกรณ์ ตรวจว่า Telnet disabled, SSH version 2 enabled, SNMP community ไม่ใช่ “public”, NTP configured, logging enabled, password encryption enabled รายงานอุปกรณ์ที่ไม่ comply ส่ง email alert
Ansible vs Other Tools
| Tool | Agent Required | Language | Network Support | Learning Curve |
|---|---|---|---|---|
| Ansible | ไม่ (agentless) | YAML | ดีมาก (หลาย vendors) | ต่ำ |
| Puppet | ใช่ | Puppet DSL | จำกัด | สูง |
| Chef | ใช่ | Ruby | จำกัด | สูง |
| Terraform | ไม่ | HCL | ปานกลาง (เน้น cloud) | ปานกลาง |
| Nornir | ไม่ | Python | ดี (Python-native) | ปานกลาง (ต้องรู้ Python) |
Best Practices สำหรับ Network Automation
เริ่มจาก Read-Only Tasks
เริ่ม automation จาก tasks ที่ไม่เปลี่ยนแปลง configuration เช่น show commands, backup config, health check เพื่อสร้างความมั่นใจก่อน เมื่อชำนาญแล้วค่อยทำ tasks ที่เปลี่ยน configuration
ทดสอบใน Lab ก่อน
ทดสอบ playbook ใน lab environment ก่อนรัน production ใช้ GNS3, EVE-NG หรือ CML (Cisco Modeling Labs) สร้าง virtual network lab ทดสอบจน confident แล้วค่อยรันกับ production
ใช้ Git
เก็บ playbooks, inventory, variables ทั้งหมดใน Git repository ใช้ branching strategy (main = production, develop = testing) review changes ก่อน merge ผ่าน pull request tag versions สำหรับ rollback
ทิ้งท้าย: Automation ไม่ใช่ทางเลือก แต่เป็นความจำเป็น
Network Automation ไม่ใช่แค่ trend แต่เป็นทักษะที่ Network Engineer ต้องมีในปี 2026 เริ่มจาก Ansible เพราะเรียนรู้ง่ายที่สุด ทำ read-only tasks ก่อน ค่อยๆ ขยายไปจนจัดการ network ทั้งหมดด้วย automation ลดเวลา ลด error เพิ่ม consistency
อ่านเพิ่มเติมเกี่ยวกับ Network Monitoring และ VLAN Configuration ที่ siamlancard.com หรือจาก icafeforex.com และ siam2r.com