Ansible là phần mềm nguồn mở tự động hóa việc cung cấp phần mềm, quản lý cấu hình và triển khai ứng dụng. Công cụ này được thiết kế để tự động hóa việc cung cấp đám mây, triển khai hệ điều hành, v.v. cho nhiều hệ thống giống Linux hoặc UNIX. Sử dụng công cụ tự động hóa Ansible, người ta có thể tự động hóa các dịch vụ trong trung tâm dữ liệu cũng như các sản phẩm được phát triển bằng các công nghệ khác nhau.
Mục tiêu chính của Ansible bao gồm làm cho tự động hóa CNTT đủ đơn giản để quản lý các môi trường doanh nghiệp phức tạp mà không cần quá nhiều tập lệnh tùy chỉnh hoặc công việc thủ công. Bằng cách không yêu cầu bất kỳ sự phụ thuộc bổ sung nào ngoài Python, nó cho phép người dùng tự động hóa hệ thống của họ hơn nữa thông qua các kết nối SSH được bật theo mặc định trên hầu hết các bản phân phối chính thống của Linux hiện nay.
Ansible hoạt động bằng cách kết nối với các nút qua SSH và thu thập thông tin về hệ thống từ xa. Sau đó, nó thực hiện các tác vụ trong sổ tay hướng dẫn để triển khai các dịch vụ hoặc các mục tiêu quản lý cấu hình khác. Sổ tay hướng dẫn có thể tự động hóa bất kỳ số lượng quy trình cung cấp hệ thống nào như tạo phiên bản máy chủ đám mây, máy ảo, vùng chứa, v.v. Ansible hữu ích trong việc tự động hóa các tác vụ lặp đi lặp lại như triển khai ứng dụng trên các máy chủ có bản chất đa dạng và thường yêu cầu tùy chỉnh dựa trên cơ sở hạ tầng cục bộ và đầu vào của người dùng. Các cụm chạy Kubernetes cũng có thể được quản lý dễ dàng với hỗ trợ phối hợp vùng chứa của Ansible: thực hiện các hành động như kéo hình ảnh từ sổ đăng ký riêng và cập nhật cấu hình pod đồng thời trên các cụm.
Bạn đã bao giờ thử cài đặt một gói Linux mới và thất bại chưa?Bạn đã bao giờ muốn thử cài đặt gói Ansible vào hệ thống Linux của mình nhưng không biết cách chưa? Nếu câu trả lời của bạn là có, bài đăng trên blog này là dành cho bạn. Hướng dẫn này sẽ chỉ cho bạn cách tải xuống, biên dịch và cài đặt Ansible trên hệ thống Rocky Linux 8.
Ansible phụ thuộc vào python và chúng tôi không thể cài đặt nó nếu không có kho lưu trữ EPEL. Vì vậy, để cài đặt ansible qua dnf, trước tiên chúng ta phải cấu hình kho lưu trữ EPEL.
Sau khi cấu hình kho lưu trữ EPEL, cần phải cập nhật trình quản lý gói DNF để có thể cài đặt Ansible từ kho lưu trữ mới.
Để kiểm tra xem kho lưu trữ đã được cấu hình đúng chưa, hãy chạy lệnh sau.
Bạn sẽ nhận được đầu ra sau.
Lệnh DNF sẽ bắt đầu tải xuống tất cả các gói cần thiết và cài đặt phiên bản mới nhất của Ansible vào hệ thống của bạn. Trong quá trình cài đặt, bạn có thể được yêu cầu chấp nhận khóa GPG. Nhấn Y và Enter để tiếp tục.
Sau khi Ansible đã được cài đặt, bạn có thể xác minh phiên bản Ansible nào đã được cài đặt bằng cách chạy lệnh sau:
Ansible sẽ hiển thị số phiên bản và ngày phát hành của nó. Điều này xác minh rằng Ansible đã được cài đặt đúng cách.
Ansible sử dụng cổng 22, do đó cổng 22 phải được mở trên tường lửa để cho phép kết nối SSH.
Trong ví dụ này, chúng ta sẽ sử dụng một máy chủ Ubuntu 20.04 có địa chỉ IP là: 137.184.66.179.
Bạn có thể sử dụng địa chỉ IP của các máy chủ mà bạn muốn quản lý bằng Ansible. Chỉ cần thay thế địa chỉ IP ở trên bằng máy chủ mục tiêu của bạn. Bạn cũng có thể sử dụng tên DNS hoặc bí danh DNS của máy.
Chạy các lệnh sau để cài đặt máy chủ SSH và mở cổng 22 trên máy chủ đích.
Khóa SSH chỉ đơn giản là cặp khóa cho phép thiết lập kết nối SSH bằng SSH. Chạy lệnh sau để tạo khóa SSH trên máy cục bộ của bạn. Nhấn phím Enter nhiều lần để chấp nhận các giá trị mặc định. Bạn sẽ nhận được kết quả sau.
Sau khi khóa SSH được tạo, chúng ta cần đẩy khóa SSH mới tạo của mình đến máy đích. Chạy lệnh sau trên máy chủ của bạn để đẩy khóa.
Nhớ thay root bằng người dùng sudo trên máy đích của bạn. Thay 137.184.66.179bằng địa chỉ IP của máy đích của bạn.
Bây giờ, trên máy từ xa, hãy chạy lệnh bên dưới để chạy lệnh SSH với tiền tố sudo mà không cần phải nhập lại mật khẩu.
Bạn cũng có thể tạo một nhóm máy chủ dựa trên chức năng, vị trí hoặc bất kỳ tiêu chí nào khác. Ví dụ: bạn có thể tạo một nhóm máy chủ có tên là Máy chủ web và đặt tất cả các máy chủ chạy Apache hoặc Nginx vào nhóm này. Điều này cung cấp một cách để kiểm soát và quản lý các máy chủ theo cách linh hoạt hơn.
Đầu tiên, hãy mở tệp máy chủ bằng trình soạn thảo văn bản yêu thích của bạn.
Tệp kiểm kê phải có nội dung như sau.
Để thêm một máy chủ bổ sung vào kho này, chỉ cần thêm dòng mới bằng tên máy chủ hoặc địa chỉ IP của máy chủ.Trong ví dụ này, chúng tôi thêm một máy chủ nữa có địa chỉ IP 137.184.66.179 vào tệp máy chủtrong nhóm máy chủ web.
Nhấnctrl+o để lưu tệp và ctrl+x để thoát tệp.
Nếu không có lỗi, máy chủ từ xa đã được thêm vào tệp kiểm kê thành công và quá trình cài đặt Ansible của bạn đã thành công.
Bây giờ chúng ta đã tìm hiểu một số điều cơ bản về Ansible. Chúng tôi hy vọng rằng bạn sẽ thấy hướng dẫn này hữu ích. Bạn có thể quan tâm đếnCách cài đặt và định cấu hình Ansible trên Ubuntu 22.04 LTS.
Mục tiêu chính của Ansible bao gồm làm cho tự động hóa CNTT đủ đơn giản để quản lý các môi trường doanh nghiệp phức tạp mà không cần quá nhiều tập lệnh tùy chỉnh hoặc công việc thủ công. Bằng cách không yêu cầu bất kỳ sự phụ thuộc bổ sung nào ngoài Python, nó cho phép người dùng tự động hóa hệ thống của họ hơn nữa thông qua các kết nối SSH được bật theo mặc định trên hầu hết các bản phân phối chính thống của Linux hiện nay.
Ansible hoạt động bằng cách kết nối với các nút qua SSH và thu thập thông tin về hệ thống từ xa. Sau đó, nó thực hiện các tác vụ trong sổ tay hướng dẫn để triển khai các dịch vụ hoặc các mục tiêu quản lý cấu hình khác. Sổ tay hướng dẫn có thể tự động hóa bất kỳ số lượng quy trình cung cấp hệ thống nào như tạo phiên bản máy chủ đám mây, máy ảo, vùng chứa, v.v. Ansible hữu ích trong việc tự động hóa các tác vụ lặp đi lặp lại như triển khai ứng dụng trên các máy chủ có bản chất đa dạng và thường yêu cầu tùy chỉnh dựa trên cơ sở hạ tầng cục bộ và đầu vào của người dùng. Các cụm chạy Kubernetes cũng có thể được quản lý dễ dàng với hỗ trợ phối hợp vùng chứa của Ansible: thực hiện các hành động như kéo hình ảnh từ sổ đăng ký riêng và cập nhật cấu hình pod đồng thời trên các cụm.
Bạn đã bao giờ thử cài đặt một gói Linux mới và thất bại chưa?Bạn đã bao giờ muốn thử cài đặt gói Ansible vào hệ thống Linux của mình nhưng không biết cách chưa? Nếu câu trả lời của bạn là có, bài đăng trên blog này là dành cho bạn. Hướng dẫn này sẽ chỉ cho bạn cách tải xuống, biên dịch và cài đặt Ansible trên hệ thống Rocky Linux 8.
Điều kiện tiên quyết
- Máy chủ chạy hệ điều hành Rocky Linux 8
- Quyền root
Bước 1. Cập nhật hệ thống
Đầu tiên, chúng ta phải cập nhật hệ thống để đảm bảo rằng tất cả các gói mới nhất đã được cài đặt. Mở một terminal và nhập các lệnh sau.
Mã:
sudo dnf update -y
Bước 2. Cấu hình kho lưu trữ EPEL
Kho lưu trữ Extra Packages for Enterprise Linux (EPEL) là một Nhóm quan tâm đặc biệt của Fedora tạo, duy trì và quản lý một bộ các gói bổ sung chất lượng cao bổ sung cho các gói đã phát hành của Red Hat. Một số lĩnh vực trọng tâm của kho lưu trữ là trò chơi và ứng dụng giáo dục, ngôn ngữ và công cụ lập trình, ảo hóa và quản trị hệ thống.Ansible phụ thuộc vào python và chúng tôi không thể cài đặt nó nếu không có kho lưu trữ EPEL. Vì vậy, để cài đặt ansible qua dnf, trước tiên chúng ta phải cấu hình kho lưu trữ EPEL.
Mã:
sudo dnf install epel-release -y
Mã:
sudo dnf makecache
Bạn sẽ nhận được đầu ra sau.
Bước 3. Cài đặt Ansible
Bây giờ kho lưu trữ EPEL đã được cấu hình, chúng ta có thể sử dụng nó để cài đặt Ansible bằng trình quản lý gói DNF.
Mã:
sudo dnf -y install ansible
Sau khi Ansible đã được cài đặt, bạn có thể xác minh phiên bản Ansible nào đã được cài đặt bằng cách chạy lệnh sau:
Mã:
ansible --version
Bước 4. Xác minh cài đặt Ansible
Để đảm bảo rằng quá trình cài đặt thành công. Trong bước này, chúng ta sẽ quản lý hoặc quản trị một máy chủ từ xa bằng Ansible.Cấu hình máy chủ đích cho Ansible
Ansible sử dụng SSH để kết nối với máy chủ đích và cấu hình máy chủ đó. SSH là một giao thức mạng phổ biến được sử dụng để kết nối an toàn với máy Linux từ xa để thực thi lệnh trên máy từ xa thông qua SSH.Ansible sử dụng cổng 22, do đó cổng 22 phải được mở trên tường lửa để cho phép kết nối SSH.
Trong ví dụ này, chúng ta sẽ sử dụng một máy chủ Ubuntu 20.04 có địa chỉ IP là: 137.184.66.179.
Bạn có thể sử dụng địa chỉ IP của các máy chủ mà bạn muốn quản lý bằng Ansible. Chỉ cần thay thế địa chỉ IP ở trên bằng máy chủ mục tiêu của bạn. Bạn cũng có thể sử dụng tên DNS hoặc bí danh DNS của máy.
Chạy các lệnh sau để cài đặt máy chủ SSH và mở cổng 22 trên máy chủ đích.
Mã:
sudo apt install openssh-server
Mã:
sudo systemctl start ssh
Mã:
sudo systemctl enable ssh
Mã:
sudo ufw allow 22
Tạo khóa SSH
Trong bước này, chúng ta cần tạo khóa SSH trên máy cục bộ của mình rồi đẩy khóa SSH vào máy từ xa.Khóa SSH chỉ đơn giản là cặp khóa cho phép thiết lập kết nối SSH bằng SSH. Chạy lệnh sau để tạo khóa SSH trên máy cục bộ của bạn. Nhấn phím Enter nhiều lần để chấp nhận các giá trị mặc định. Bạn sẽ nhận được kết quả sau.
Mã:
ssh-keygen
Sau khi khóa SSH được tạo, chúng ta cần đẩy khóa SSH mới tạo của mình đến máy đích. Chạy lệnh sau trên máy chủ của bạn để đẩy khóa.
Mã:
ssh-copy-id [emailprotected]
Bây giờ, trên máy từ xa, hãy chạy lệnh bên dưới để chạy lệnh SSH với tiền tố sudo mà không cần phải nhập lại mật khẩu.
Mã:
echo "$(whoami) ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/$(whoami)
Tạo tệp hàng tồn kho
Ansible lưu trữ hàng tồn kho máy chủ của mình trong một tệp bên trong thư mục /etc/ansible và tên của tệp này là hosts. Tệp hosts có thể được sử dụng để tạo hàng tồn kho máy chủ để quản lý máy chủ từ xa của bạn.Bạn cũng có thể tạo một nhóm máy chủ dựa trên chức năng, vị trí hoặc bất kỳ tiêu chí nào khác. Ví dụ: bạn có thể tạo một nhóm máy chủ có tên là Máy chủ web và đặt tất cả các máy chủ chạy Apache hoặc Nginx vào nhóm này. Điều này cung cấp một cách để kiểm soát và quản lý các máy chủ theo cách linh hoạt hơn.
Đầu tiên, hãy mở tệp máy chủ bằng trình soạn thảo văn bản yêu thích của bạn.
Mã:
sudo nano /etc/ansible/hosts
Để thêm một máy chủ bổ sung vào kho này, chỉ cần thêm dòng mới bằng tên máy chủ hoặc địa chỉ IP của máy chủ.Trong ví dụ này, chúng tôi thêm một máy chủ nữa có địa chỉ IP 137.184.66.179 vào tệp máy chủtrong nhóm máy chủ web.
Nhấnctrl+o để lưu tệp và ctrl+x để thoát tệp.
Ping các máy chủ từ xa
Sau khi tệp kiểm kê được tạo, chúng tôi cần thông báo cho Ansible rằng có một máy chủ từ xa mới. Chúng ta có thể thực hiện việc này bằng cách sử dụng lệnh ansible với đối số -m ping.
Mã:
ansible -m ping all
Kết luận
Trong hướng dẫn này, bạn đã học cách cài đặt Ansible trên hệ thống Rocky Linux 8.4 và kết nối hệ thống này với máy chủ từ xa qua SSH. Sau đó, bạn đã học cách tạo tệp kiểm kê nhóm máy chủ ansible. Cuối cùng, bạn đã có thể ping máy chủ từ xa bằng lệnh ansible.Bây giờ chúng ta đã tìm hiểu một số điều cơ bản về Ansible. Chúng tôi hy vọng rằng bạn sẽ thấy hướng dẫn này hữu ích. Bạn có thể quan tâm đếnCách cài đặt và định cấu hình Ansible trên Ubuntu 22.04 LTS.