Ansible là gì?
Ansible là công cụ hỗ trợ đa nền tảng giúp tự động hóa việc cung cấp, quản lý cấu hình, cập nhật trên máy trạm và máy chủ đám mây, triển khai ứng dụng,… Công cụ này dùng để phân phối mã phần mềm liên tục bằng cách tiếp cận cơ sở hạ tầng dưới dạng mã.
Ansible không phụ thuộc vào phần mềm tác nhân và không có cơ sở hạ tầng bảo mật bổ sung nên dễ triển khai, thực hiện. Cho phép bạn cấu hình toàn bộ mạng máy tính cùng lúc và không yêu cầu kỹ năng lập trình để sử dụng. Bạn có thể dễ dàng đọc hướng dẫn của Ansible cho dù bạn chỉ là người mới hay là chuyên gia.
Cách thức hoạt động của Ansible
Để truyền tải, Ansible sử dụng OpenSSH – mã nguồn mở của giao thức SSH và cung cấp mã hóa an toàn để đăng nhập và truyền tệp từ xa. Ansible còn hỗ trợ các phương thức vận chuyển, chế độ kéo và cơ chế xác thực khác.
Ansible sử dụng mẫu YAML playbook giúp con người đọc được, các hướng dẫn cung cấp chi tiết về các tác vụ tự động hóa. Playbook cho phép lập trình các tác vụ lặp đi lặp lại tự động mà không cần phải học ngôn ngữ lập trình nâng cao. Các playbook được thực hiện trên một tập hợp hoặc nhóm máy chủ tạo nên kho lưu trữ Ansible.
Ansible đẩy mã ứng dụng qua các mô-đun đến các nút được quản lý, như client Server, Server vật lý, máy ảo hoặc Cloud. Nó kết nối với các nút được quản lý trên mạng và gửi mô-đun Ansible đến nút đó. Sau đó, thực thi mô-đun đó qua SSH và xóa mô-đun đó khi hoàn tất. Đơn giản cách hoạt động của Ansible là kết nối với những gì người dùng muốn tự động hóa và đẩy các chương trình thực thi hướng dẫn.
Các mô-đun được viết dựa trên các yêu cầu kết nối, giao diện và lệnh ở điểm cuối. Không cần thêm máy chủ, trình nền hoặc cơ sở dữ liệu. Người dùng có thể làm việc với các chương trình đầu cuối, trình soạn thảo văn bản và hệ thống kiểm soát phiên bản ưa thích của họ để thực hiện và theo dõi các thay đổi.
Tính năng nổi bật của Ansible
Ansible phục vụ nhiều mục đích và được ứng dụng rộng rãi nhờ vào các tính năng nổi bật như:
Hoạt động không cần tác nhân
Ansible không có tác nhân, không cần cài đặt phần mềm trên máy tính mà nó điều khiển. Giúp loại bỏ các mối đe dọa xâm nhập và không làm ảnh hưởng đến tài nguyên máy chủ. Ansible quản lý tất cả các tương tác giữa tác nhân thông qua sử dụng Mô đun SSH hoặc mô-đun Paramiko.
Ansible không cần tác nhân được thực hiện thông qua SSH và Windows Remote Management. Điều này sẽ gửi các mô-đun vi mô – cung cấp dữ liệu JSON và chỉ định các trạng thái mong muốn.
Hỗ trợ Python
Bạn có thể kiểm soát các nút bằng API Ansible Python, mở rộng Ansible để phản hồi các sự kiện Python, phát triển plugin, nhập thông tin từ các nguồn dữ liệu bên ngoài. Ansible được xây dựng bằng Python và có thời gian học tập thấp.
Ansible được phát triển bởi Python nên việc thiết lập và vận hành dễ dàng hơn vì thư viện Python được cài đặt sẵn trên PC Linux. Người dùng có thể viết mô-đun Ansible mở rộng khả năng bằng bất kỳ ngôn ngữ nào với dữ liệu ở định dạng JSON.
Bảo mật với SSH
Ansible hoạt động bằng kết nối với Client qua SSH, không cần tác nhân máy khách chuyên dụng và đẩy các mô-đun đến máy khách sau đó thực hiện cục bộ ở phía máy khách. Kết quả được gửi trả lại máy chủ Ansible. Ansible sử dụng SSH để kết nối với các máy tính ở xa. Liên kết an toàn tới các máy tính từ xa bằng OpenSSH gốc và tên người dùng hiện tại.
SSH giúp đơn giản hóa quá trình thiết lập. Ansible có thể sử dụng tệp kiểm kê sau khi nó được xây dựng. Bạn có thể xác nhận cách bạn tương tác với các nút qua SSH với cùng một user. Hoặc bạn có thể thêm khóa SSH công khai vào tệp ủy quyền trên các hệ thống đó. Để chạy các tác vụ trên Linux cục bộ, Ansible sử dụng SSH. Để sử dụng Ansible, bạn phải kết nối SSH của phần mềm để có thể tự động bỏ qua yêu cầu mật khẩu.
Sử dụng kiến trúc đẩy
Ansible cho phép người dùng ghi lại các cài đặt và đẩy chúng vào các nút cùng một lúc. Máy chủ chính sẽ gửi cấu hình đến các nút. Kết quả là, giao tiếp được bắt đầu bởi máy chủ chính chứ không phải các nút.
Vì máy chủ trung tâm đẩy thiết kế đến các nút nên bạn có quyền kiểm soát tốt với các nút cần thiết lập, đồng bộ các hoạt động và quản lý lỗi dễ hơn khi bạn có thể phát hiện và sửa lỗi ngay lập tức.
Dễ cài đặt
Ansible giúp việc hoàn thành nhiệm vụ đơn giản bằng cách tự động hóa chúng và loại bỏ nhu cầu triển khai thủ công. Nó có thể định cấu hình hệ thống, cài đặt phần mềm và tổ chức hoạt động như phân phối liên tục và không có thời gian ngừng hoạt động trong khi triển khai các tính năng mới,… Chỉ cần cài đặt Ansible trên một hệ thống sử dụng nó từ dòng lệnh, không cần thiết lập cơ sở dữ liệu hoặc khởi đầu trình nền nào khác mà chỉ cần 2 máy.
Lời kết
Trên đây, LANIT đã chia sẻ chi tiết về khái niệm, tính năng và cách hoạt động của Ansible cũng như ứng dụng Ansible vào tổ chức với các hoạt động thực tế. Đây được xem là công cụ đa nền tảng, mã nguồn mở hữu ích cho các DevOps hiện nay.
Cảm ơn bạn đọc đã theo dõi bài viết của chúng tôi!