Ansible là gì?
Ansible là là một công cụ phần mềm cung cấp khả năng tự động hóa đơn giản nhưng mạnh mẽ để hỗ trợ đa nền tảng. Nó chủ yếu dành cho các những người sử dụng nó để triển khai ứng dụng, hoặc DevOps , cập nhật đồng loạt trên các server cùng lúc, quản lý cấu hình (configuration management), điều phối nội bộ dịch vụ (intra-service orchestration) và gần như mọi thứ mà bạn thực hiện trên server hàng tuần hoặc hàng ngày. Ansible rất dễ triển khai.
Một số công cụ tương tự như Saltstack, Puppet,…

Mục đích
Ví dụ một mô hình vật lý gồm 1 Loadbalancer cứng trỏ vào 3 server vật lý, khi bạn deploy một version mới trên 3 server này thì sẽ lặp lại thao tác deploy trên 3 server như ssh vào server, stop application version cũ, download version mới, backup version cũ và start version mới lên. Thay vào đó, chỉ cần dùng ansible thì sẽ tự động deploy lên cả 3 server thông qua các thao tác trên
Thành phần chính của ansible
Chia ra các phần
– Automation Engine (Phần core): Opensource
– Ansible Tower: Enterprise framework như có thêm UI, Restful API
Tại sao lại sử dụng ansible
Khác nhau là phần core ta phải dùng command-line, tạo các kịch bản, còn phần Enterpise thì có thêm UI thao tác tiện lợi hơn,..
Lợi thế
- Đơn giản
Việc sử dụng yml rất dễ hiểu, chỉ cần viết các file yml và sẽ tự thực hiện theo các file này
- Mạnh mẽ
Có thể làm được nhiều việc như deploy application, configuration management,…
- Agentless
Không càn sử dụng agent, (agentless architecture). Nghĩa là không cần cài agent trên các thiết bị để connect đến server quản lý tập chung, giảm việc tốn tài nguyên để cài đặt agent, tốn thời gian update agent, nói chung là security hơn, dễ dùng hơn….
Cách hoạt động của ansible.
Cơ bản thì người dùng sẽ viết cách kịch bản như cài đặt, cấu hình nginx, khi kích hoạt kịch bản thì Automation Engine sẽ đọc kịch bản và sinh ra các câu lệnh, các câu lệnh sẽ được đẩy qua các server, network và thực thi các câu lệnh của kịch bản lên các server.
Inventory: Là file chứa thông tin những 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 ghi dưới định dạng YAML. Máy controller sẽ đọc các task này trong Playbook sau đó đẩy các lệnh thực thi tương ứng bằng Python xuống các server

Hy vọng bài này các bạn nắm sơ qua về Ansible, những bài sau chúng ta chú trọng hơn về việc thực hành nó!!
Cảm ơn các bạn đã đọc!!