
Ansible là một công cụ dùng để tự động hóa việc cấu hình trên nhiều server. So với các công cụ khác với tính năng tương đương thì Ansible dễ học và dễ tiếp cận hơn rất nhiều. Cộng đồng người dùng cũng nhiều hơn so với các công cụ khác.
So sánh một vài thông số về Ansible, SaltStack, Chef, Puppet trên GitHub (11/2018)
|
Ansible |
SaltStack |
Chef |
Puppet |
Số sao trên GitHub |
33,500 |
9,341 |
5,543 |
5,125 |
Số lượt fork |
13,338 |
4,366 |
2,268 |
2,049 |
Ngôn ngữ lâp trình |
Python |
Python |
Ruby |
Ruby |
Ngôn ngữ cấu hình |
YAML |
YAML |
Ruby DSL |
Puppet DSL |
Có thể thấy Ansible là công cụ tự động hóa phổ biến nhất trên GitHub với số sao được người dùng bình chọn cho project này là 33,500 sao. Ansible cũng là tool dễ tiếp cận và làm quen do được build bằng Python và sử dụng file cấu hình theo dạng YAML (YAML Ain’t Markup Language) dễ đọc và dễ hiểu.
Kiến trúc
Ansible sử dụng kiến trúc agentless để giao tiếp với các máy khác mà không cần agent. Cơ bản nhất là giao tiếp thông qua giao thức SSH trên Linux, WinRM trên Windows hoặc giao tiếp qua chính API của thiết bị đó cung cấp.

Hiện tại Ansible có thể giao tiếp với rất nhiều nền tảng, hệ điều hành và các thiết bị khác nhau bao gồm:
- Hệ điều hành: Ubuntu, Centos, Windows,…
- Ảo hóa: VMware, VirtualBox,…
- Cloud: AWS, GCP, Azure, Openstack,…
- Thiết bị mạng: Cisco, Juniper, Meraki,…
Kiến trúc cơ bản của Ansible sẽ bao gồm Control Machine và Node. Trong đó:
- Control Machine: đóng vai trò quản lý, lưu trữ thông tin các Node, playbook, module, script cần thiết để deploy trên các Node.
- Node: Các thiết bị sẽ thực thi các các tác vụ do Control Machine yêu cầu.
Ansible chỉ sử dụng tài nguyên của hệ thống khi thực thi các công việc được yêu cầu. Trong trường hợp không có công việc nào cần được thực hiện, Ansible sẽ không chiếm dụng tài nguyên của hệ thống vì không có daemon hoặc tiến trình nào được chạy ẩn.
Chính cách thiết kế này làm tăng tính tiện dụng của Ansible do không cần phải setup bảo trì agent trên nhiều host
Ứng dụng
Ansible có rất nhiều ứng dụng trong triển khai phần mềm và quản trị hệ thống.
- Provisioning: Khởi tạo VM, container hàng loạt trong môi trường cloud dựa trên API (OpenStack, AWS, Google Cloud, Azure…)
- Configuration Management: Quản lý cấu hình tập trung các dịch vụ tập trung, không cần phải tốn công chỉnh sửa cấu hình trên từng server.
- Application Deployment: Deploy ứng dụng hàng loạt, quản lý hiệu quả vòng đời của ứng dụng từ giai đoạn dev cho tới production.
- Security & Compliance: Quản lý các chính sách về an toàn thông tinmột cách đồng bộ trên nhiều môi trường và sản phẩm khác nhau (deploy policy, cấu hình firewall hàng loạt trên nhiều server…).
Một số thuật ngữ cơ bản
- Controller Machine: Là máy cài Ansible, chịu trách nhiệm quản lý, điều khiển và gởi task tới các máy con cần quản lý.
- Inventory: Là file chứa thông tin các server cần quản lý. File này thường nằm tại đường dẫn /etc/ansible/hosts.
- Playbook: Là file chứa các task của Ansible được ghi dưới định dạng YAML. Máy controller sẽ đọc các task trong Playbook và đẩy các lệnh thực thi tương ứng bằng Python xuống các máy con.
- Task: Một block ghi tác vụ cần thực hiện trong playbook và các thông số liên quan. Ví dụ 1 playbook có thể chứa 2 task là: yum update và yum install vim.
- Module: Ansible có rất nhiều module, ví dụ như moduel yum là module dùng để cài đặt các gói phần mềm qua yum. Ansible hiện có hơn ….2000 module để thực hiện nhiều tác vụ khác nhau, bạn cũng có thể tự viết thêm các module của mình nếu muốn.
- Role: Là một tập playbook được định nghĩa sẵn để thực thi 1 tác vụ nhất định (ví dụ cài đặt LAMP stack).
- Play: là quá trình thực thi của 1 playbook
- Facts: Thông tin của những máy được Ansible điều khiển, cụ thể là thông tin về OS, network, system…
- Handlers: Dùng để kích hoạt các thay đổi của dịch vụ như start, stop service.
Ưu và nhược điểm
Ưu điểm
- Mã nguồn mở và miễn phí
- Dễ tiếp cận đối với người mới
- Đơn giản với kiến trúc “Agentless”: Đây là đặc điểm cũng như là ưu điểm của Ansible khi người dùng không cần phải cài đặt agent trên thiết bị cần cấu hình và quản lý
- Playbook được viết bằng file YAML
Nhược điểm
- Chưa hỗ trợ tốt đối với Windows
= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =
Một số bài viết tham khảo khác tại đây.
P.A Việt Nam cung cấp đa dạng các cấu hình Máy Chủ Ảo và Máy Chủ Riêng
Cloud Server
Cloud Server Pro
Máy Chủ Riêng
Tham khảo các ưu đãi: https://www.pavietnam.vn/vn/tin-khuyen-mai/