Hướng dẫn cài đặt Ansible trên VPS Linux

Tác giả: VPS chính hãng 19 tháng 05, 2023

Với sự tiến bộ của công nghệ ngày nay, các hệ thống quản lý cấu hình khác nhau đã được phát triển để tạo điều kiện thuận lợi cho việc kiểm soát và quản lý nhiều máy chủ lưu trữ cùng một lúc. Bằng cách sử dụng các hệ thống quản lý cấu hình, bạn có thể tự động kiểm soát các hệ thống khác nhau. Ansible là một công cụ tự động hóa nguồn mở để quản lý cấu hình trong tài nguyên đám mây. Là quản trị viên hoặc nhà phát triển hệ thống, bạn có thể cài đặt Ansible để tự động hóa các quy trình như triển khai ứng dụng, cài đặt và mở rộng phần mềm, cung cấp cơ sở hạ tầng, quản lý dịch vụ, cấu hình một hoặc nhiều nút từ đầu, vá lỗi và nhiều quy trình tương tự khác. 

Các tính năng của Ansible

Ansible đã trở nên phổ biến trong số các công cụ quản lý cấu hình nhờ các tính năng tuyệt vời của nó, bao gồm:

  • Ansible là Agentless và không dựa vào Agent và phần mềm đặc biệt để cài đặt trên nút hoặc hệ thống.
  • Nó được viết dựa trên ngôn ngữ lập trình Python.
  • Ansible mã hóa trong việc thiết lập chi tiết cung cấp dựa trên các tệp và ngôn ngữ YAML.
  • Nó sử dụng giao thức SSH để thực hiện thay đổi cấu hình trong việc kết nối với máy chủ từ xa và giao tiếp và quản lý hệ thống. Vì vậy, nó là một phương pháp rất an toàn.

Do đó, một trong những điều kiện tiên quyết để sử dụng Ansible là có VPS Linux. Ansible có thể được cài đặt và sử dụng trên các hệ điều hành Red Hat Enterprise Linux, CentOS, Fedora, Debian và Ubuntu. Trong bài viết này, chúng tôi sẽ hướng dẫn bạn cách cài đặt Ansible trên máy chủ Ubuntu và CentOS, đây là những bản phân phối Linux phổ biến nhất khi mua VPS.

Ansible là một công cụ tự động hóa nguồn mở để quản lý cấu hình

Ansible là một công cụ tự động hóa nguồn mở để quản lý cấu hình

Điều kiện tiên quyết để cài đặt Ansible trên Linux

Ansible yêu cầu cài đặt nút điều khiển, được tạo bằng cách kết nối từng máy với máy từ xa thông qua cổng 22 (SSH). Do đó, bạn có thể xem xét VPS Linux của mình hoặc máy cục bộ để lưu trữ và chạy Ansible. Trong hướng dẫn này, chúng tôi đã chỉ định Linux VPS với hệ điều hành Ubuntu hoặc CentOS làm nút điều khiển Ansible. Để cài đặt Ansible, các yếu tố khác phải được xem xét như sau:

  • Tài khoản người dùng có đặc quyền sudo.
  • Cấu hình tường lửa ufw.
  • Quyền truy cập bên ngoài vào bảng quản lý của người dùng không phải root.
  • Có cặp khóa SSH được kết nối với người dùng mong muốn.
  • Cài đặt Python cần thiết để quản lý Linux bằng Ansible.

=>> Đọc thêm: 7 Trình duyệt web tốt nhất cho VPS Linux Ubuntu

Cách cài đặt Ansible trên Ubuntu

Nếu bạn quan tâm đến việc sử dụng công cụ quản lý cấu hình Ansible, bạn phải cài đặt nó trên máy mà bạn định chỉ định làm nút điều khiển Ansible. Trước tiên, bạn phải kết nối với bộ điều khiển Ansible mà bạn định tạo (máy chủ Ubuntu 20.04) thông qua SSH và truy cập dòng lệnh của nó.

1. Vì Ansible yêu cầu Python quản lý và thực hiện các tác vụ kiểm soát cơ sở hạ tầng máy chủ, nên hệ thống Linux của bạn phải hỗ trợ ngôn ngữ lập trình Python. Python thường được cài đặt làm gói mặc định trong các bản phân phối Linux. Nhưng nếu bạn thấy rằng hệ điều hành Ubuntu không hỗ trợ Python, trước tiên hãy cài đặt gói Python trên hệ điều hành Linux của bạn bằng cách chạy lệnh sau:

sudo apt-get install python3

2. Sau đó, thêm PPA chính thức của dự án (kho lưu trữ gói Ansible) vào tài nguyên máy chủ Ubuntu mà bạn đã coi là nút điều khiển bằng cách nhập lệnh sau:

sudo apt-add-repository ppa:ansible/ansible

Sau khi thực hiện lệnh trước đó, hãy chấp nhận yêu cầu xác nhận cài đặt PPA bằng cách nhấn Enter.

3. Cập nhật kho lưu trữ gói hệ thống Ubuntu để áp dụng các thay đổi bạn đã thực hiện ở bước trước:

sudo apt update

4. Bây giờ hệ thống Ubuntu đã sẵn sàng để tải xuống và cài đặt công cụ Ansible, với mục đích này, bạn phải chạy lệnh sau:

sudo apt install ansible

5. Bạn có thể đảm bảo rằng quá trình cài đặt Ansible là chính xác bằng cách chạy lệnh sau:

ansible -v

Ở đầu ra, nếu Ansible được cài đặt đúng cách, phiên bản Ansible mà bạn đã cài đặt sẽ được hiển thị. Do đó, bạn đã trang bị cho máy chủ Ubuntu của mình Ansible để quản lý các máy chủ lưu trữ khác nhau.

Cách cài đặt Ansible trên CentOS

Thực hiện theo các bước bên dưới để cài đặt Ansible trên máy chủ CentOS7:

1. Đầu tiên, kết nối với máy chủ CentOS từ máy khách của bạn thông qua giao thức SSH.

2. Nếu gói ngôn ngữ Python không được cài đặt theo mặc định trên máy chủ CentOS, hãy cài đặt nó bằng cách chạy lệnh sau:
sudo yum install python3 -y

3. Sau đó, nếu hệ thống CentOS không hỗ trợ kho lưu trữ EPEL, bạn phải cài đặt kho lưu trữ gói bổ sung cho Enterprise Linux (EPEL), bao gồm gói Ansible:

sudo yum install epel-release

4. Cập nhật danh sách gói của hệ thống CentOS bằng lệnh sau để kho lưu trữ CentOS mặc định biết về việc bổ sung kho lưu trữ EPEL:

sudo yum update -y

5. Sau khi đảm bảo cài đặt kho lưu trữ EPEL và cập nhật kho lưu trữ CentOS mặc định, bây giờ bạn có thể cài đặt Ansible trên CentOS7:

sudo yum install ansible -y

6. Chạy lệnh sau để kiểm tra sự thành công của quá trình cài đặt Ansible trên CentOS7:

ansible --version

hoặc:

ansible -v

Việc hiển thị phiên bản Ansible trong đầu ra của các lệnh trước đó cho biết quá trình cài đặt Ansible trên CentOS đã thành công. Trong các bước tiếp theo, chúng tôi sẽ giải thích cách định cấu hình Ansible để thêm máy chủ của bạn vào tệp kiểm kê của nút điều khiển.

=>> Đọc thêm: 4 lệnh để xóa màn hình đầu cuối trong Linux

Cách định cấu hình máy chủ bộ điều khiển Ansible

Để Ansible thực hiện các tác vụ quản lý của mình một cách hiệu quả và giao tiếp với các nút khác, cần thiết lập Inventory File lưu trữ thông tin như địa chỉ IP và tên của máy chủ mà bạn muốn quản lý bằng Ansible. Nội dung của Inventory File có thể lưu trữ nhiều máy chủ và thông tin của chúng dưới dạng bộ hoặc tập hợp con để giúp sắp xếp thông tin liên quan đến nhiều máy chủ dễ dàng hơn.

Một ưu điểm khác của Inventory File là bạn có thể thiết lập các biến được phép sử dụng trong playbooks và template của một số máy chủ nhất định. Tất nhiên, việc tạo và chỉnh sửa Inventory File không phải là cách duy nhất để kết nối với các nút được quản lý. Nhưng đây là phương pháp hiệu quả nhất vì bạn sẽ cần IP hoặc tên máy chủ của máy chủ được quản lý để thực thi các lệnh.

Thiết lập Inventory File sau khi cài đặt Ansible để lưu trữ thông tin

Thiết lập Inventory File sau khi cài đặt Ansible để lưu trữ thông tin

Do đó, trong cấu hình máy chủ bộ điều khiển Ansible, trước tiên bạn phải truy cập nội dung kho lưu trữ Ansible mặc định của hệ thống và chỉnh sửa nội dung đó. Với mục đích này, hãy truy cập tệp /etc/ansible/hosts trên nút điều khiển Ansible thông qua trình chỉnh sửa nano (hoặc bất kỳ trình chỉnh sửa nào bạn chọn):

sudo nano /etc/ansible/hosts

Theo mặc định, Ansible tạo tệp kiểm kê trong thư mục etc/ansible/hosts nhưng bạn có thể thay đổi vị trí mặc định của tệp kiểm kê theo nhu cầu của mình. Với mục đích này, khi chạy các lệnh Ansible, hãy thêm tham số -i vào đường dẫn của tệp inventory tùy chỉnh của bạn.

Bạn có thể sử dụng ví dụ dưới đây làm hướng dẫn cho cài đặt inventory, trong hướng dẫn này, chúng tôi đã chỉ định máy chủ Ubuntu làm máy chủ bộ điều khiển Ansible. Vì vậy, hãy chú ý đến ví dụ sau:

/etc/ansible/hosts 

[servers] 

server1 ansible_host=192.0.168.111 

server2 ansible_host=192.0.168.112 

server3 ansible_host=192.0.168.113 

[all:vars] 

ansible_python_interpreter=/usr/bin/python3

Trong ví dụ bạn thấy, 3 máy chủ có tên server1, server2 và server3 đã tạo thành một nhóm. Tất nhiên, để sử dụng ví dụ trên, bạn phải đặt máy chủ IP Ansible của mình. Chúng tôi đã cung cấp ví dụ trước để hiểu rõ hơn. Bằng cách chạy ví dụ trước, đối với các máy chủ hiện có, tham số máy chủ ansible_python_interpreter sẽ hợp lệ và máy chủ Ubuntu từ xa sẽ được đặt để sử dụng /usr/bin/python3 Python 3.

Sau các cài đặt mong muốn, hãy lưu tệp /etc/ansible/hosts bằng cách nhấn CTRL+X, sau đó nhấn YEnter. Sau đó thoát khỏi tệp. Chạy lệnh sau để kiểm tra kho của bạn:

ansible-inventory --list -y

Output:

all: 

children: 

servers: 

hosts: 

server1: 

ansible_host: 192.0.168.111 

ansible_python_interpreter: /usr/bin/python3 

server2: 

ansible_host: 192.0.168.112 

ansible_python_interpreter: /usr/bin/python3 

server3: 

ansible_host: 192.0.168.113 

ansible_python_interpreter: /usr/bin/python3 

ungrouped: {}

Đầu ra bạn nhận được sẽ tương tự như đầu ra ví dụ của chúng tôi nhưng cơ sở hạ tầng máy chủ của bạn có thể khác với cơ sở hạ tầng trong ví dụ này.

Kiểm tra kết nối Ansible với các nút được quản lý

Để chạy các lệnh kiểm tra kết nối Ansible, tốt hơn là bạn nên có quyền của người dùng root vì tài khoản người dùng này có quyền cần thiết theo mặc định trong các máy chủ mới được tạo. Tất nhiên, cần lưu ý rằng nếu các máy chủ Ansible đã tạo một người dùng bình thường với các đặc quyền sudo, thì bạn nên sử dụng tài khoản người dùng đó.

Bạn có thể sử dụng -u để tìm ra người dùng máy chủ từ xa.

Do đó, để kiểm tra kết nối từ phía Máy khách hoặc nút điều khiển Ansible, hãy chạy lệnh sau:

ansible all -m ping -u root

Output:

server1 | SUCCESS => { 

"changed": false, 

"ping": "pong" 

} 

server2 | SUCCESS => { 

"changed": false, 

"ping": "pong" 

} 

server3 | SUCCESS => { 

"changed": false, 

"ping": "pong" 

}

Nếu bạn đang kết nối với máy chủ mặc định của mình thông qua SSH lần đầu tiên, hãy trả lời yêu cầu xác nhận về tính chính xác của máy chủ bạn đang truy cập thông qua Ansible bằng cách nhập Có rồi nhấn nút Enter. Nhận được thông báo Pong từ máy chủ cho biết các kết nối Ansible thành công và bây giờ bạn có thể chạy các lệnh Ansible.

Bằng cách thực hiện lệnh này, mô-đun ping của Ansible sẽ kiểm tra các kết nối trên tất cả các nút có sẵn. Mô-đun ping kiểm tra tính khả dụng của máy chủ, tính hợp lệ của thông tin xác thực SSH và việc thực thi các mô-đun Ansible dựa trên Python.

=>> Đọc thêm: Cách khắc phục sự cố khởi động Ubuntu

Cách sử dụng Ansible thông qua các lệnh Ad-Hoc

Sau khi khởi động Ansible trên máy chủ từ xa và đảm bảo rằng nút điều khiển Ansible được kết nối với các máy chủ mà bạn đã chỉ định trong tệp kiểm kê, bạn có thể thực hiện quy trình kiểm soát và quản lý các máy chủ mà bạn đã chỉ định hiệu quả hơn và dễ dàng hơn bằng cách thực hiện các lệnh Ad-Hoc. Do đó, học cách sử dụng các lệnh một dòng Ad-Hoc rất hữu ích trong việc cải thiện việc quản lý máy chủ của bạn.

Một trong những ưu điểm của Ansible là bằng cách thực thi lệnh trên máy chủ từ xa, có thể thực thi lệnh tương tự trên các máy chủ được chỉ định trong tệp kiểm kê, giúp kiểm soát các máy chủ khác của bạn dễ dàng hơn. Nếu bạn muốn kiểm tra dung lượng ổ đĩa bị chiếm dụng bởi máy chủ của mình, bạn có thể chạy lệnh sau trong nút điều khiển Ansible:

ansible all -a "df -h" -u root

Trong lệnh trước, bạn có thể thay thế tham số “df -h” bằng các tham số khác cho các mục đích khác nhau. Bạn cũng có thể gọi các mô-đun Ansible bằng các lệnh đặc biệt. Ví dụ: bằng cách chạy lệnh sau, bạn có thể cài đặt phiên bản mới nhất của vim trên các máy chủ được chỉ định trong tệp kiểm kê:

ansible all -m apt -a "name=vim state=latest" -u root

Bạn cũng có thể kiểm tra riêng từng máy chủ để quản lý máy chủ tốt hơn. Ví dụ: bằng cách chạy các lệnh Ansible, hãy kiểm soát máy chủ hoặc nhóm phụ mong muốn và theo dõi thời gian hoạt động của máy chủ:

ansible servers -a "uptime" -u root

Bạn có thể muốn kiểm tra 2 máy chủ trong số nhiều máy chủ. Với mục đích này, bạn có thể tách chúng ra khi chạy các lệnh như trong ví dụ chúng tôi cung cấp:

ansible server1:server2 -m ping -u root

Trong bài viết này, chúng tôi đã hướng dẫn cách cài đặt Ansible trên máy chủ Ubuntu và CentOS, hai hệ điều hành Linux phổ biến và cách thiết lập tệp kiểm kê để quản lý máy chủ của bạn. Bây giờ bạn có thể thấy việc cài đặt Ansible trên hệ điều hành Linux rất đơn giản, đây là một trong những công cụ hữu ích cho các quản trị viên VPS Linux để kiểm soát nhiều máy chủ của họ. Hy vọng rằng những chia sẻ trên sẽ giúp ích cho bạn. Truy cập VPS Chính hãng để trải nghiệm dịch vụ thuê VPS Việt Nam, VPS US, VPS Pháp, VPS Anh, VPS Châu Âu và nhiều hơn thế nữa. Cảm ơn đã theo dõi bài viết!