ATS Global VN

Giải pháp dùng Ansible để quản lý và triển khai hệ thống máy chủ Linux tự động

Giải pháp dùng Ansible để quản lý và triển khai hệ thống máy chủ Linux tự động

⚙️ Giải pháp dùng Ansible để quản lý và triển khai hệ thống máy chủ Linux

Ansible là công cụ tự động hóa mã nguồn mở mạnh mẽ do Red Hat phát triển, giúp quản trị viên hệ thống dễ dàng quản lý, cấu hình và triển khai ứng dụng trên hàng trăm máy chủ Linux chỉ bằng một lệnh duy nhất.
Bài viết này giới thiệu giải pháp triển khai Ansible thực tế với mô hình, kiến trúc, cấu trúc thành phần và hướng dẫn sử dụng nhanh.

🎯 1. Mục tiêu giải pháp

  • 🧩 Quản lý tập trung toàn bộ máy chủ Linux từ một điểm duy nhất.
  • ⚙️ Tự động hóa việc cấu hình, cài đặt gói, triển khai ứng dụng.
  • 🔐 Đảm bảo tính nhất quán và bảo mật khi triển khai.
  • 📦 Giảm thời gian triển khai, tránh lỗi thao tác thủ công.

🏗️ 2. Kiến trúc tổng thể hệ thống Ansible

                      ┌──────────────────────────────┐
                      │   Quản trị viên (Admin)      │
                      │   SSH/Ansible CLI/Playbook   │
                      └─────────────┬────────────────┘
                                    │ SSH (Key hoặc Password)
                      ┌─────────────┴──────────────────┐
                      │        Ansible Control Node     │
                      │ (ansible-core, playbook, roles) │
                      └─────────────┬──────────────────┘
                                    │ YAML/Inventory
 ┌──────────────────────────────────────────────────────────────────────────┐
 │                          Managed Hosts (Linux)                          │
 │──────────────────────────────────────────────────────────────────────────│
 │  Web Server │ DB Server │ Proxy │ Load Balancer │ Monitoring │ Backup   │
 │  (Nginx)    │ (MySQL)   │ (HAProxy) │ (Keepalived) │ (Prometheus) │ (Rsync) │
 │      ↑              ↑             ↑              ↑               ↑          │
 │   Ansible Modules tự động cấu hình và kiểm tra trạng thái hệ thống          │
 └──────────────────────────────────────────────────────────────────────────┘

Mô hình kiến trúc hệ thống Ansible

🧱 3. Cấu trúc thành phần của hệ thống

Thành phần Chức năng
Control Node Máy chủ trung tâm cài Ansible, chạy playbook và quản lý inventory.
Managed Nodes Các máy chủ Linux được điều khiển qua SSH, không cần cài agent.
Inventory File liệt kê danh sách máy chủ cần quản lý, phân nhóm theo môi trường.
Playbook (YAML) Tập hợp các tác vụ (tasks) mô tả quá trình triển khai tự động.
Roles Cấu trúc thư mục chuẩn hóa, chia nhỏ tác vụ dễ quản lý và tái sử dụng.

⚙️ 4. Hướng dẫn cài đặt nhanh trên RHEL/AlmaLinux

# Cài đặt EPEL Repository
dnf install epel-release -y

# Cài đặt Ansible
dnf install ansible -y

# Kiểm tra phiên bản
ansible --version

📁 Tạo cấu trúc thư mục dự án

/etc/ansible/
├── ansible.cfg
├── inventory/
│   ├── dev
│   ├── prod
│   └── test
├── roles/
│   ├── webserver/
│   │   ├── tasks/main.yml
│   │   ├── handlers/main.yml
│   │   ├── templates/nginx.conf.j2
│   │   └── vars/main.yml
└── playbooks/
    └── deploy_web.yml

📜 File inventory mẫu

[web]
web01 ansible_host=192.168.1.11 ansible_user=root
web02 ansible_host=192.168.1.12 ansible_user=root

[db]
db01 ansible_host=192.168.1.21 ansible_user=root

🧩 File playbook mẫu (deploy_web.yml)

---
- name: Triển khai web server Nginx
  hosts: web
  become: yes
  tasks:
    - name: Cài đặt Nginx
      dnf:
        name: nginx
        state: present

    - name: Sao chép file cấu hình
      template:
        src: templates/nginx.conf.j2
        dest: /etc/nginx/nginx.conf

    - name: Khởi động và bật dịch vụ
      service:
        name: nginx
        state: started
        enabled: yes

▶️ Chạy playbook

ansible-playbook -i inventory/dev playbooks/deploy_web.yml

🔒 5. Chính sách bảo mật & quản lý khóa

  • Dùng SSH key thay cho password để tăng bảo mật.
  • Phân quyền sudo không cần nhập mật khẩu (NOPASSWD) cho các tác vụ tự động.
  • Bật `vault` để mã hóa mật khẩu hoặc biến nhạy cảm:
# Tạo file vault
ansible-vault create secrets.yml

# Mã hóa file hiện có
ansible-vault encrypt vars/main.yml

# Chạy playbook có vault
ansible-playbook site.yml --ask-vault-pass

📊 6. Mở rộng & Giám sát

  • Kết hợp Ansible AWX / Tower để có giao diện web quản lý, lịch chạy, phân quyền user.
  • Tích hợp GitLab CI/CD để tự động deploy ứng dụng khi commit code.
  • Giám sát kết quả bằng Prometheus + Grafana hoặc Graylog.

🚀 7. Ưu điểm nổi bật

  • Không cần cài agent trên máy đích.
  • Hoạt động qua SSH, dễ tích hợp môi trường hiện có.
  • Cấu hình YAML dễ đọc, dễ bảo trì.
  • Triển khai nhanh chóng, rollback dễ dàng.

📦 8. Kết luận

Ansible là giải pháp tối ưu cho các doanh nghiệp, tổ chức và nhóm DevOps muốn tự động hóa hệ thống Linux một cách nhanh, gọn, an toàn.
Với khả năng mở rộng linh hoạt, bạn có thể triển khai từ vài máy chủ đến hàng nghìn node mà vẫn đảm bảo tính thống nhất và kiểm soát chặt chẽ.

👉 “Tự động hóa hôm nay – Bền vững hạ tầng ngày mai.”


Bài viết liên quan

Chia sẻ:FacebookLinkedIn
Giải pháp dùng Ansible để quản lý và triển khai hệ thống máy chủ Linux tự động