ใช้ Ansible กับ Windows Server 2025 จัดการ Server หลายร้อยเครื่องพร้อมกัน

เมื่อจำนวน Server เพิ่มขึ้น การเข้า Remote Desktop ทีละเครื่องเพื่อแก้ไขปัญหา ติดตั้ง Software หรือเปลี่ยน Configuration จะกลายเป็นงานที่เสียเวลามาก

Ansible เป็นเครื่องมือ Automation ที่ได้รับความนิยมระดับโลก ช่วยให้ Administrator จัดการ Windows Server หลายสิบหรือหลายร้อยเครื่องพร้อมกันได้จากศูนย์กลาง

แม้หลายคนจะมองว่า Ansible เหมาะกับ Linux แต่ความจริงแล้ว Ansible สามารถทำงานกับ Windows Server 2025 ได้ดีมากผ่าน WinRM


① Ansible คืออะไร

Ansible เป็น Automation Platform แบบ Open Source

ใช้สำหรับ

  • Configuration Management
  • Automation
  • Application Deployment
  • Infrastructure Management
  • Compliance

Ansible ถูกพัฒนาโดย Red Hat และได้รับความนิยมในองค์กรทั่วโลก


② ทำไมต้องใช้ Ansible

ข้อดีหลัก

  • ไม่ต้องติดตั้ง Agent
  • จัดการหลายเครื่องพร้อมกัน
  • ใช้ YAML อ่านง่าย
  • รองรับ Windows และ Linux
  • ใช้งานร่วมกับ Cloud ได้
  • เหมาะกับ Infrastructure as Code

จึงได้รับความนิยมอย่างมากใน Data Center ยุคใหม่


③ Ansible ทำงานอย่างไร

โครงสร้างพื้นฐาน

Ansible Controller

WinRM

Windows Server

Controller จะส่งคำสั่งไปยัง Server ผ่าน WinRM


④ สิ่งที่ต้องเตรียม

ฝั่ง Windows Server

  • เปิด WinRM
  • เปิด Firewall
  • มีสิทธิ์ Administrator

ฝั่ง Controller

  • ติดตั้ง Ansible
  • เชื่อมต่อ Network ได้

⑤ เปิด WinRM บน Windows Server

ตัวอย่าง

Enable-PSRemoting -Force

จากนั้นตรวจสอบ

Test-WSMan localhost

หากตอบกลับข้อมูล Service แสดงว่าพร้อมใช้งาน


⑥ ติดตั้ง Ansible Controller

บน Linux

ตัวอย่าง

sudo apt update
sudo apt install ansible -y

ตรวจสอบเวอร์ชัน

ansible --version

⑦ ติดตั้ง WinRM Support

ติดตั้ง Python Module

pip install pywinrm

Ansible จะใช้ Module นี้เชื่อมต่อกับ Windows


⑧ สร้าง Inventory

ตัวอย่างไฟล์

[windows]
server01
server02
server03

หรือ

[windows]
192.168.1.10
192.168.1.11
192.168.1.12

Inventory คือรายการ Server ที่ต้องการจัดการ


⑨ กำหนดข้อมูลการเชื่อมต่อ

ตัวอย่าง

[windows:vars]
ansible_user=administrator
ansible_password=Password123!
ansible_connection=winrm
ansible_winrm_transport=ntlm
ansible_port=5985

ช่วยให้ Ansible เชื่อมต่อได้อัตโนมัติ


⑩ ทดสอบการเชื่อมต่อ

ตัวอย่าง

ansible windows -i inventory.ini -m win_ping

ผลลัพธ์

pong

แสดงว่าพร้อมใช้งาน


⑪ รันคำสั่ง PowerShell

ตัวอย่าง

ansible windows `
-i inventory.ini `
-m win_shell `
-a "Get-Service"

Ansible จะดึงข้อมูล Service จากทุกเครื่อง


⑫ ดูข้อมูลระบบ

ตัวอย่าง

ansible windows `
-i inventory.ini `
-m setup

ช่วยเก็บข้อมูล Inventory ของ Server


⑬ Restart Service

ตัวอย่าง

- name: Restart DNS
win_service:
name: DNS
state: restarted

ช่วยจัดการ Service หลายเครื่องพร้อมกัน


⑭ ติดตั้ง Windows Feature

ตัวอย่าง

- name: Install IIS
win_feature:
name: Web-Server
state: present

Ansible จะติดตั้ง IIS ให้ทุก Server


⑮ สร้าง User

ตัวอย่าง

- name: Create User
win_user:
name: admin01
password: Password123!
state: present

เหมาะกับการจัดการ User จำนวนมาก


⑯ Copy File ไปยัง Server

ตัวอย่าง

- name: Copy File
win_copy:
src: config.txt
dest: C:\Config\config.txt

ใช้ Deploy Configuration ได้สะดวก


⑰ รัน Script

ตัวอย่าง

- name: Run Script
win_shell: C:\Scripts\Maintenance.ps1

ช่วยทำ Automation ได้หลากหลาย


⑱ Playbook คืออะไร

Playbook คือชุดคำสั่ง YAML ที่ใช้ควบคุม Infrastructure

ตัวอย่าง

---
- hosts: windows

tasks:

- name: Install IIS
win_feature:
name: Web-Server
state: present

เปรียบเสมือน Script ขนาดใหญ่ของ Ansible


⑲ รัน Playbook

ตัวอย่าง

ansible-playbook `
-i inventory.ini `
iis-install.yml

ระบบจะติดตั้ง IIS ทุกเครื่องใน Inventory


⑳ Ansible กับ Active Directory

ตัวอย่างงาน

  • สร้าง User
  • Reset Password
  • เพิ่ม Group
  • จัดการ OU

ช่วยลดงาน Manual อย่างมาก


㉑ Ansible กับ IIS

ตัวอย่าง

  • ติดตั้ง IIS
  • Deploy Website
  • Copy Config
  • Restart App Pool

เหมาะกับ Web Farm


㉒ Ansible กับ Windows Update

สามารถ

  • ตรวจสอบ Patch
  • ติดตั้ง Patch
  • รีสตาร์ต Server

ได้จากส่วนกลาง


㉓ Ansible กับ Hyper-V

ตัวอย่าง

  • สร้าง VM
  • ลบ VM
  • ตรวจสอบ VM
  • Export VM

ช่วยบริหาร Virtual Infrastructure ได้ง่ายขึ้น


㉔ Ansible กับ File Server

ตัวอย่าง

  • สร้าง Folder
  • ตั้ง Permission
  • สร้าง Share
  • Backup Configuration

ช่วยรักษามาตรฐานระบบ


㉕ ข้อดีเมื่อเทียบกับ PowerShell ล้วน ๆ

หัวข้อPowerShellAnsible
Server เดียวดีมากดี
หลาย Serverดีดีมาก
Inventoryจำกัดดีมาก
Playbookไม่มีมี
IaCปานกลางสูง
Multi Platformจำกัดดีมาก

องค์กรจำนวนมากจึงใช้ทั้งสองเครื่องมือร่วมกัน


㉖ ปัญหาที่พบบ่อย

ปัญหายอดนิยม

  • WinRM ไม่เปิด
  • Firewall Block
  • Credential ผิด
  • Inventory ผิด
  • YAML Syntax Error
  • Network Connectivity

ควรทดสอบการเชื่อมต่อก่อนทุกครั้ง


㉗ Best Practice สำหรับ Ansible

ควรทำดังนี้

  • ใช้ Git เก็บ Playbook
  • แยก Dev/Test/Production
  • ใช้ Inventory เป็นระบบ
  • ทดสอบก่อน Deploy
  • เก็บ Log การทำงาน
  • ใช้ Role แยกตามระบบ

ช่วยให้บริหาร Infrastructure ได้ง่ายขึ้นมาก


㉘ Ansible กับ Windows Server 2025

Windows Server 2025 รองรับ

  • WinRM
  • PowerShell
  • DSC
  • Automation

ได้อย่างสมบูรณ์

จึงสามารถทำงานร่วมกับ Ansible ได้ดีมาก


㉙ สรุป

Ansible เป็นเครื่องมือ Automation ที่ทรงพลังสำหรับ Windows Server 2025 ช่วยให้ Administrator จัดการ Server จำนวนมากผ่าน Playbook และ Infrastructure as Code ได้อย่างมีประสิทธิภาพ ลดงาน Manual และเพิ่มความสม่ำเสมอของระบบ

ทีมงาน comsiam แนะนำให้ผู้ดูแลระบบที่ต้องดูแลหลาย Server เริ่มศึกษา Ansible ควบคู่กับ PowerShell เพราะทั้งสองเครื่องมือเสริมกันได้อย่างดี และ comsiam มองว่า Ansible เป็นหนึ่งในทักษะสำคัญของ Administrator ยุค Automation และ Hybrid Infrastructure

คำถามชวนคิด

หากคุณต้องติดตั้ง IIS บน Server 200 เครื่อง คุณจะเข้าไปติดตั้งทีละเครื่อง หรือจะใช้ Ansible Playbook เพียงไฟล์เดียวจัดการทั้งหมด?