Ansible คืออะไร และวิธีใช้ตั้งค่าเซิร์ฟเวอร์อัตโนมัติ
Ansible คือเครื่องมือที่ทำให้การตั้งค่าเซิร์ฟเวอร์กลายเป็นไฟล์ที่อ่านง่ายและรันซ้ำได้ แทนที่จะไล่พิมพ์คำสั่งทีละเครื่อง คุณเขียน Playbook หนึ่งครั้งแล้วสั่งใช้กับเซิร์ฟเวอร์ทุกเครื่องพร้อมกัน
- หมวดหมู่
- DevOps และ CI/CD
- ติดตั้งบนเซิร์ฟเวอร์เองได้
- ได้
- สเปกเริ่มต้นที่แนะนำ
- 1 vCPU · RAM 2 GB
- ไลเซนส์
- GPLv3 (โอเพนซอร์ส)
- เว็บทางการ
- เปิดเว็บไซต์
- ISO/IEC 27001
- ISO 22301
- ISO 20000-1
- CSA-STAR
Data Center ในไทย มาตรฐาน TIA-942 Tier 3+ ข้อมูลอยู่ในประเทศไทย
Ansible คืออะไร
เมื่อองค์กรมีเซิร์ฟเวอร์หลายเครื่อง การตั้งค่าด้วยมือทำให้แต่ละเครื่องค่อย ๆ ต่างกันจนแก้ปัญหายาก Ansible แก้เรื่องนี้ด้วยการเก็บสถานะที่ต้องการไว้เป็นไฟล์ YAML แล้วบังคับให้ทุกเครื่องเป็นไปตามนั้น
จุดเด่นที่ทำให้ Ansible ได้รับความนิยมคือไม่ต้องติดตั้งตัวแทนบนเครื่องปลายทาง มันทำงานผ่าน SSH ที่มีอยู่แล้ว จึงเริ่มใช้กับเซิร์ฟเวอร์เดิมได้ทันทีโดยไม่ต้องเตรียมอะไรมาก
งานที่ Ansible ทำได้ดีคือการติดตั้งซอฟต์แวร์ ตั้งค่าไฟล์ จัดการผู้ใช้ และรันขั้นตอน Deploy ส่วนงานสร้างโครงสร้างพื้นฐานตั้งแต่ต้น เช่น สร้างเครื่องใหม่ มักใช้คู่กับ Terraform
ความสามารถเด่นของ Ansible
ไม่ต้องลง Agent
ทำงานผ่าน SSH จึงใช้กับเซิร์ฟเวอร์ที่มีอยู่แล้วได้ทันที
เขียนด้วย YAML ที่อ่านง่าย
คนที่ไม่ใช่นักพัฒนาก็อ่าน Playbook เข้าใจได้ว่าระบบถูกตั้งค่าอย่างไร
รันซ้ำได้โดยไม่พัง
ออกแบบให้ตรวจสถานะก่อนทำ ถ้าเครื่องอยู่ในสถานะที่ต้องการแล้วจะข้ามไป
โมดูลสำเร็จรูปจำนวนมาก
ครอบคลุมทั้งการติดตั้งแพ็กเกจ ตั้งค่าบริการ จัดการไฟล์ ผู้ใช้ และ Firewall
ใช้ Ansible ทำอะไรได้บ้าง
- ตั้งค่า Cloud Server ใหม่ให้เหมือนกันทุกเครื่องภายในไม่กี่นาที
- อัปเดตแพตช์ความปลอดภัยพร้อมกันทั้งฟาร์มเซิร์ฟเวอร์
- Deploy แอปขึ้นหลายเครื่องตามลำดับที่กำหนด
- บันทึกวิธีตั้งค่าระบบเป็นเอกสารที่รันได้จริง แทนคู่มือที่ล้าสมัย
สเปก Cloud Server ที่แนะนำ
| ระดับการใช้งาน | vCPU | RAM | Disk |
|---|---|---|---|
| เครื่องควบคุมAnsible รันจากเครื่องเดียวไปสั่งงานเครื่องอื่น | 1 vCPU | 2 GB | NVMe 20 GB |
| แนะนำดูแลเซิร์ฟเวอร์หลายสิบเครื่องพร้อมเก็บ Playbook ใน Git | 2 vCPU | 4 GB | NVMe 40 GB |
| ระบบใหญ่รัน Playbook พร้อมกันหลายชุดหรือใช้ร่วมกับระบบ CI | 4 vCPU | 8 GB | NVMe 80 GB |
ดูราคาตามสเปกได้ที่ ราคา Cloud Compute หรือให้ทีมงานช่วยประเมินสเปกจากปริมาณผู้ใช้จริงของคุณ
วิธีติดตั้ง Ansible บน Cloud Server ของ THAI DATA CLOUD
ขั้นตอนด้านล่างใช้กับ Cloud Server ที่เพิ่งสร้างใหม่จากหน้าจัดการของ THAI DATA CLOUD ได้ทันที ถ้าไม่สะดวกทำเอง ทีมวิศวกรของเราติดตั้งและตั้งค่าให้ฟรีสำหรับลูกค้า Cloud Server
สิ่งที่ต้องเตรียม
- เครื่องควบคุมที่ติดตั้ง Python 3 และ Ansible
- สิทธิ์ SSH ไปยังเซิร์ฟเวอร์ปลายทางด้วยคีย์ (ไม่แนะนำให้ใช้รหัสผ่าน)
- ผู้ใช้ปลายทางที่มีสิทธิ์ sudo
ทดสอบบน Ubuntu Server 24.04 LTS
- 1
ติดตั้ง Ansible
sudo apt update sudo apt -y install ansible ansible --version - 2
สร้างไฟล์ Inventory ระบุเครื่องปลายทาง
สร้างไฟล์ inventory.ini ที่จัดกลุ่มเซิร์ฟเวอร์ตามหน้าที่
[web] 10.10.0.11 10.10.0.12 [db] 10.10.0.20 [all:vars] ansible_user=deploy ansible_ssh_private_key_file=~/.ssh/id_ed25519 - 3
ทดสอบการเชื่อมต่อ
ansible -i inventory.ini all -m ping - 4
เขียน Playbook แรก
ตัวอย่างนี้ติดตั้ง Nginx เปิดบริการ และตั้งค่า Firewall ให้เครื่องกลุ่ม web ทุกเครื่อง
- name: Setup web servers hosts: web become: true tasks: - name: Install nginx apt: name: nginx state: present update_cache: true - name: Ensure nginx is running service: name: nginx state: started enabled: true - name: Allow HTTP and HTTPS ufw: rule: allow name: "Nginx Full" - 5
รัน Playbook
ใช้ตัวเลือก check ก่อนเพื่อดูว่าจะมีอะไรเปลี่ยนบ้างโดยยังไม่ลงมือจริง
ansible-playbook -i inventory.ini site.yml --check ansible-playbook -i inventory.ini site.yml - 6
เก็บความลับด้วย Ansible Vault
ansible-vault create secrets.yml ansible-playbook -i inventory.ini site.yml --ask-vault-pass
เก็บ Playbook ไว้ใน Git เสมอ เพราะนั่นคือเอกสารที่บอกว่าระบบถูกตั้งค่าอย่างไร และย้อนดูได้ว่าใครเปลี่ยนอะไรเมื่อไหร่
พอร์ตที่ต้องเปิดบน Firewall
| พอร์ต | โปรโตคอล | ใช้ทำอะไร |
|---|---|---|
| 22 | TCP | SSH จากเครื่องควบคุมไปยังเซิร์ฟเวอร์ปลายทาง |
สิ่งที่ควรทำต่อหลังติดตั้งเสร็จ
- ใช้คีย์ SSH แทนรหัสผ่าน และจำกัดว่าเครื่องควบคุมเข้าถึงได้จากไอพีใดบ้าง
- เก็บรหัสผ่านและคีย์ในไฟล์ที่เข้ารหัสด้วย Ansible Vault ไม่วางเป็นข้อความธรรมดา
- ใช้ตัวเลือก check ก่อนรันจริงกับระบบ Production เสมอ
- จำกัดสิทธิ์ของผู้ใช้ที่ Ansible ใช้เชื่อมต่อ ไม่ใช้ root โดยตรงถ้าเลี่ยงได้
- ทบทวนสิทธิ์การเข้าถึงที่เก็บ Playbook เพราะไฟล์เหล่านี้อธิบายโครงสร้างระบบทั้งหมด
ทำไมควรรัน Ansible บน Cloud Server ของ THAI DATA CLOUD
Data Center ในประเทศไทย มาตรฐาน ISO/IEC 27001 และ ISO 22301 พร้อมทีมวิศวกรคนไทยดูแลตลอด 24 ชั่วโมง
เมื่อสร้าง Cloud Server ใหม่ Ansible ตั้งค่าให้เหมือนเครื่องเดิมได้ในไม่กี่นาที ทำให้ขยายระบบเร็วขึ้นมาก
ใช้ตั้งค่าความปลอดภัยพื้นฐานเหมือนกันทุกเครื่อง ทั้ง Firewall, Fail2ban และการอัปเดตอัตโนมัติ
ทีมวิศวกรของ THAI DATA CLOUD ใช้แนวทางเดียวกันในการดูแลเครื่องของลูกค้าที่ใช้บริการ Managed Services
คำถามที่พบบ่อยเกี่ยวกับ Ansible
Ansible ต่างจาก Terraform อย่างไร
Terraform ใช้สร้างโครงสร้างพื้นฐาน เช่น สร้างเครื่อง เครือข่าย และดิสก์ ส่วน Ansible ใช้ตั้งค่าสิ่งที่อยู่ภายในเครื่องหลังจากสร้างเสร็จ หลายทีมใช้ทั้งคู่ควบคู่กัน
ต้องติดตั้งอะไรบนเครื่องปลายทางไหม
ไม่ต้อง ขอแค่เข้า SSH ได้และมี Python บนเครื่องปลายทางซึ่งลินุกซ์ส่วนใหญ่มีอยู่แล้ว นี่คือเหตุผลหลักที่ Ansible เริ่มใช้ได้เร็วกว่าเครื่องมือที่ต้องลง Agent
เหมาะกับองค์กรที่มีเซิร์ฟเวอร์ไม่กี่เครื่องไหม
เหมาะตั้งแต่สามเครื่องขึ้นไป เพราะได้ประโยชน์ทั้งความสม่ำเสมอและการมีเอกสารที่รันได้จริง แม้แต่เครื่องเดียวก็ยังคุ้มถ้าต้องสร้างใหม่บ่อยหรือต้องส่งมอบระบบให้ทีมอื่นดูแลต่อ
ทางเลือกอื่นที่คล้ายกับ Ansible
แอปอื่นในหมวด DevOps และ CI/CD
บริการของ THAI DATA CLOUD ที่เกี่ยวข้อง
ให้เราติดตั้ง Ansible ให้ฟรี บน Cloud Server ในไทย
แจ้งความต้องการสั้น ๆ ทีมวิศวกรจะช่วยประเมินสเปก ติดตั้ง และตั้งค่าความปลอดภัยให้พร้อมใช้งาน ปรึกษาฟรี ไม่มีข้อผูกมัด