Ansible là gì?

Những điểm chính

 

• Quan điểm của mình: Nếu bạn đang quản lý từ vài máy chủ trở lên, việc sử dụng Ansible gần như là điều cần thiết để đảm bảo tính đồng bộ, khả năng mở rộng và tối ưu hóa quy trình vận hành hạ tầng.

 

• Khái niệm Ansible: Hiểu rõ Ansible là công cụ tự động hóa mã nguồn mở giúp quản lý cấu hình, triển khai ứng dụng và điều phối hệ thống một cách đơn giản, trực quan.

 

• Lý do nên sử dụng: Nắm được các ưu điểm như dễ học, không cần agent và khả năng mở rộng mạnh mẽ, giúp tối ưu quy trình quản trị hệ thống.

 

• Thành phần chính: Hiểu các thành phần quan trọng như Control Node, Managed Nodes, Inventory và Playbooks để nắm được kiến trúc hoạt động của Ansible.

 

• Cách thức hoạt động: Biết cơ chế Push của Ansible để hiểu cách công cụ kết nối và thực thi lệnh trên các máy chủ đích an toàn, hiệu quả.

 

Ansible là gì?

 

Ansible là một công cụ tự động hóa mã nguồn mở được phát triển bởi Red Hat, chuyên dùng để quản lý cấu hình hệ thống, triển khai ứng dụng và điều phối hạ tầng CNTT. Công cụ này được thiết kế theo hướng đơn giản, sử dụng ngôn ngữ YAML để viết các kịch bản tự động hóa gọi là “Playbook”. Nhờ cú pháp dễ đọc, dễ viết, kể cả người không chuyên lập trình cũng có thể nhanh chóng tiếp cận và triển khai các tác vụ tự động hóa.

 

Điểm nổi bật của Ansible là kiến trúc “agentless”, tức không yêu cầu cài thêm phần mềm trung gian trên các máy chủ được quản lý. Thay vào đó, Ansible giao tiếp thông qua SSH đối với Linux hoặc WinRM với Windows, giúp giảm tải tài nguyên và đơn giản hóa quá trình triển khai.

 

công cụ tự động hóa mã nguồn mở, Ansible

 

Tại sao nên sử dụng Ansible?

 

Việc áp dụng Ansible trong quản trị hệ thống mang lại nhiều lợi ích đáng kể, giúp tối ưu hiệu suất vận hành và đảm bảo tính nhất quán cho hạ tầng.

 

• Dễ học và dễ sử dụng: YAML có cú pháp trực quan, giúp người mới dễ tiếp cận và triển khai nhanh các tác vụ tự động hóa.

 

• Kiến trúc Agentless: Không cần cài đặt hay bảo trì agent trên hàng loạt máy chủ, từ đó giảm công sức quản trị và tiết kiệm tài nguyên hệ thống.

 

• Mạnh mẽ và linh hoạt: Ansible hỗ trợ hàng nghìn module phục vụ nhiều nhu cầu khác nhau như quản lý cấu hình, triển khai ứng dụng, điều phối workflow hay quản trị cloud.

 

• Khả năng mở rộng cao: Có thể quản lý tập trung hàng trăm hoặc hàng nghìn máy chủ từ một Control Node duy nhất.

 

• Cộng đồng lớn mạnh: Là dự án mã nguồn mở được hậu thuẫn bởi Red Hat nên Ansible có hệ sinh thái module và tài liệu rất phong phú.

 

• Tích hợp DevOps tốt: Có thể kết hợp dễ dàng với các công cụ như Jenkins, GitLab CI/CD hoặc các nền tảng cloud như Amazon Web Services, Microsoft AzureGoogle Cloud.

 

Các thành phần chính trong Ansible

 

Kiến trúc của Ansible được xây dựng theo hướng tối giản nhưng vẫn đảm bảo hiệu quả vận hành, bao gồm các thành phần quan trọng sau:

 

Control Node

 

Đây là máy chủ hoặc máy tính cài đặt Ansible, nơi người quản trị viết và thực thi Playbook. Tất cả lệnh tự động hóa sẽ được gửi đi từ đây.

 

Managed Nodes

 

Là các máy chủ hoặc thiết bị được Ansible quản lý. Những máy này không cần cài agent mà chỉ cần hỗ trợ SSH hoặc WinRM và có Python để thực thi module.

 

Inventory

 

Inventory là tệp khai báo danh sách Managed Nodes, thường nằm tại /etc/ansible/hosts. Người dùng có thể nhóm máy chủ theo vai trò như web server, database server hoặc cache server để quản lý thuận tiện hơn.

 

Playbooks

 

Playbook là thành phần cốt lõi của Ansible, được viết bằng YAML và chứa tập hợp các “play”. Mỗi play định nghĩa các tác vụ sẽ thực hiện trên một nhóm máy chủ cụ thể.

 

Tasks

 

Task là các tác vụ đơn lẻ mà Ansible sẽ thực thi, ví dụ như cài đặt package, khởi động dịch vụ hoặc sao chép file cấu hình.

 

Modules

 

Ansible cung cấp hàng nghìn module phục vụ từng nhu cầu riêng biệt. Ví dụ:

 

apt: quản lý package trên Ubuntu/Debian.

 

yum: quản lý package trên CentOS/RHEL.

 

service: quản lý trạng thái dịch vụ hệ thống.

 

Role

 

Role giúp tổ chức Playbook và các thành phần liên quan thành cấu trúc thư mục có thể tái sử dụng. Đây là cách phổ biến để quản lý các hệ thống lớn hoặc workflow phức tạp.

 

công cụ tự động hóa mã nguồn mở, Ansible

 

Cách thức hoạt động của Ansible

 

Ansible hoạt động theo mô hình agentless, nghĩa là không cần chạy daemon hay cài phần mềm nền trên máy đích. Quy trình hoạt động theo cơ chế Push diễn ra như sau:

 

Bước 1: Đọc Inventory

 

Ansible sẽ đọc danh sách máy chủ từ tệp Inventory để xác định các máy cần quản lý.

 

Bước 2: Kết nối máy đích

 

Công cụ sử dụng SSH với Linux hoặc WinRM với Windows để kết nối đến các máy chủ mục tiêu.

 

Bước 3: Đẩy Modules

 

Ansible gửi các module cần thiết đến máy đích để thực hiện nhiệm vụ tương ứng.

 

Bước 4: Thực thi tác vụ

 

Các module được chạy trực tiếp trên máy chủ đích để xử lý các thao tác như cài đặt phần mềm, chỉnh sửa cấu hình hoặc restart dịch vụ.

 

Bước 5: Tự động dọn dẹp

 

Sau khi hoàn tất tác vụ, module sẽ tự động bị xóa khỏi máy đích để tránh để lại dữ liệu dư thừa hoặc tiến trình nền không cần thiết.

 

Những nền tảng Ansible hỗ trợ

 

Ansible có khả năng làm việc với rất nhiều nền tảng và thiết bị khác nhau:

 

• Hệ điều hành: Ubuntu, Debian, CentOS, Rocky Linux, Windows,…

 

• Nền tảng ảo hóa: VMware, VirtualBox, Proxmox,…

 

• Cloud platform: Amazon Web Services, Microsoft Azure, Google Cloud, OpenStack,…

 

• Thiết bị mạng: Cisco, Juniper, MikroTik, Meraki,…

 

Nhờ không sử dụng agent hay daemon chạy nền, Ansible chỉ tiêu tốn tài nguyên khi thực thi tác vụ, giúp hệ thống vận hành nhẹ hơn và dễ bảo trì hơn.

 HỖ TRỢ TRỰC TUYẾN