Cách cài đặt và cấu hình Ansible trên Ubuntu 20.04
Hệ thống quản lý cấu hình được thiết kế để hợp lý hóa quá trình kiểm soát số lượng lớn server , dành cho administrator và group vận hành. Chúng cho phép bạn điều khiển nhiều hệ thống khác nhau theo cách tự động từ một vị trí trung tâm.Mặc dù có nhiều công cụ quản lý cấu hình phổ biến dành cho các hệ thống Linux, chẳng hạn như Chef và Puppet , nhưng những công cụ này thường phức tạp hơn nhiều người muốn hoặc cần. Ansible là một lựa chọn thay thế tuyệt vời cho các tùy chọn này vì nó cung cấp một kiến trúc không yêu cầu cài đặt phần mềm đặc biệt trên các node , sử dụng SSH để thực thi các việc tự động hóa và các file YAML để xác định chi tiết cấp phép.
Trong hướng dẫn này, ta sẽ thảo luận về cách cài đặt Ansible trên server Ubuntu 20.04 và đi qua một số khái niệm cơ bản về cách sử dụng phần mềm này. Để biết tổng quan cấp cao hơn về Ansible làm công cụ quản lý cấu hình, vui lòng tham khảo Giới thiệu về Quản lý cấu hình với Ansible .
Yêu cầu
Để làm theo hướng dẫn này, bạn cần :
Một nút điều khiển Ansible : Nút điều khiển Ansible là máy mà ta sẽ sử dụng để kết nối và điều khiển các server Ansible qua SSH. Nút điều khiển Ansible của bạn có thể là máy local của bạn hoặc một server dành riêng để chạy Ansible, mặc dù hướng dẫn này giả định nút điều khiển của bạn là hệ thống Ubuntu 20.04. Đảm bảo rằng nút điều khiển có:
- User không phải root có quyền sudo. Để cài đặt điều này, bạn có thể làm theo Bước 2 và 3 của Hướng dẫn cài đặt server ban đầu cho Ubuntu 20.04 của ta . Tuy nhiên, xin lưu ý nếu bạn đang sử dụng server từ xa làm nút Ansible Control của bạn , bạn nên làm theo từng bước của hướng dẫn này. Làm như vậy sẽ cấu hình firewall trên server với
ufw
và cho phép truy cập bên ngoài vào profile user không phải root của bạn, cả hai điều này sẽ giúp giữ an toàn cho server từ xa. - Cặp SSH key được liên kết với user này. Để cài đặt điều này, bạn có thể làm theo Bước 1 trong hướng dẫn của ta về Cách cài đặt SSH key trên Ubuntu 20.04 .
- User không phải root có quyền sudo. Để cài đặt điều này, bạn có thể làm theo Bước 2 và 3 của Hướng dẫn cài đặt server ban đầu cho Ubuntu 20.04 của ta . Tuy nhiên, xin lưu ý nếu bạn đang sử dụng server từ xa làm nút Ansible Control của bạn , bạn nên làm theo từng bước của hướng dẫn này. Làm như vậy sẽ cấu hình firewall trên server với
Một hoặc nhiều Server Ansible : Server Ansible là bất kỳ máy nào mà nút điều khiển Ansible của bạn được cấu hình để tự động hóa. Hướng dẫn này giả định các server Ansible của bạn là server Ubuntu 20.04 từ xa. Đảm bảo mỗi server Ansible có:
- Chìa SSH key công cộng điều khiển nút Ansible của bổ sung vào
authorized_keys
của một người sử dụng hệ thống. Thành viên này có thể là gốc hoặc một user bình thường với quyền sudo. Để cài đặt điều này, bạn có thể làm theo Bước 2 của Cách cài đặt SSH key trên Ubuntu 20.04 .
- Chìa SSH key công cộng điều khiển nút Ansible của bổ sung vào
Bước 1 - Cài đặt Ansible
Để bắt đầu sử dụng Ansible như một phương tiện quản lý cơ sở hạ tầng server của bạn, bạn cần cài đặt phần mềm Ansible trên máy sẽ đóng role là nút điều khiển Ansible. Ta sẽ sử dụng repository Ubuntu mặc định cho điều đó.
Đầu tiên, hãy cập nhật OS hệ thống của bạn bằng:
- sudo apt update
Sau bản cập nhật này, bạn có thể cài đặt phần mềm Ansible với:
- sudo apt install ansible
Nhấn Y
khi được yêu cầu xác nhận cài đặt.
Nút điều khiển Ansible của bạn hiện có tất cả phần mềm cần thiết để quản lý server của bạn. Tiếp theo, ta sẽ xem xét cách cài đặt file khoảng không quảng cáo để Ansible có thể giao tiếp với các node được quản lý của bạn.
Bước 2 - Cài đặt file kiểm kê
Tệp khoảng không quảng cáo chứa thông tin về các server mà bạn sẽ quản lý bằng Ansible. Bạn có thể đưa vào bất kỳ đâu từ một đến vài trăm server trong file kiểm kê của bạn và các server có thể được tổ chức thành các group và group con. Tệp khoảng không quảng cáo cũng thường được sử dụng để đặt các biến sẽ chỉ hợp lệ cho các server hoặc group cụ thể, để được sử dụng trong sách phát và mẫu. Một số biến cũng có thể ảnh hưởng đến cách chạy playbook, chẳng hạn như biến ansible_python_interpreter
mà ta sẽ thấy trong giây lát.
Để chỉnh sửa nội dung của khoảng không quảng cáo Ansible mặc định của bạn, hãy mở file /etc/ansible/hosts
bằng editor mà bạn chọn, trên nút điều khiển Ansible của bạn:
- sudo nano /etc/ansible/hosts
Lưu ý : Mặc dù Ansible thường tạo file kiểm kê mặc định tại etc/ansible/hosts
, bạn có thể tự do tạo file kiểm kê ở bất kỳ vị trí nào phù hợp hơn với nhu cầu của bạn . Trong trường hợp này, bạn cần cung cấp đường dẫn đến file khoảng không quảng cáo tùy chỉnh của bạn với tham số -i
khi chạy các lệnh Ansible và sách phát. Sử dụng file khoảng không quảng cáo cho mỗi dự án là một phương pháp hay để giảm thiểu rủi ro chạy một playbook trên sai group server .
Tệp khoảng không quảng cáo mặc định được cung cấp bởi cài đặt Ansible chứa một số ví dụ mà bạn có thể sử dụng làm tài liệu tham khảo để cài đặt khoảng không quảng cáo của bạn . Ví dụ sau xác định một group có tên [servers]
với ba server khác nhau trong đó, mỗi server được xác định bằng alias tùy chỉnh: server1 , server2 và server3 . Đảm bảo thay thế các IP được đánh dấu bằng địa chỉ IP của các server Ansible của bạn.
[servers] server1 ansible_host=203.0.113.111 server2 ansible_host=203.0.113.112 server3 ansible_host=203.0.113.113 [all:vars] ansible_python_interpreter=/usr/bin/python3
Group con all:vars
đặt thông số server ansible_python_interpreter
sẽ hợp lệ cho tất cả các server có trong repository ảng không quảng cáo này. Tham số này đảm bảo server từ xa sử dụng file thực thi /usr/bin/python3
Python 3 thay vì /usr/bin/python
(Python 2.7), không có trên các version Ubuntu gần đây.
Khi bạn hoàn tất, hãy lưu file bằng cách nhấn CTRL+X
rồi nhấn Y
và ENTER
để xác nhận các thay đổi .
Khi nào bạn muốn kiểm tra khoảng không quảng cáo của bạn , bạn có thể chạy:
- ansible-inventory --list -y
Bạn sẽ thấy kết quả tương tự như thế này, nhưng chứa cơ sở hạ tầng server của bạn như được xác định trong file khoảng không quảng cáo của bạn:
Outputall: children: servers: hosts: server1: ansible_host: 203.0.113.111 ansible_python_interpreter: /usr/bin/python3 server2: ansible_host: 203.0.113.112 ansible_python_interpreter: /usr/bin/python3 server3: ansible_host: 203.0.113.113 ansible_python_interpreter: /usr/bin/python3 ungrouped: {}
Đến đây bạn đã cấu hình file khoảng không quảng cáo của bạn , bạn có mọi thứ bạn cần để kiểm tra kết nối với các server Ansible của bạn .
Bước 3 - Kiểm tra kết nối
Sau khi cài đặt file khoảng không quảng cáo để bao gồm các server của bạn, đã đến lúc kiểm tra xem Ansible có thể kết nối với các server này và chạy lệnh qua SSH hay không.
Đối với hướng dẫn này, ta sẽ sử dụng account gốc Ubuntu vì đó thường là account duy nhất có sẵn theo mặc định trên các server mới được tạo. Nếu server Ansible của bạn đã có user sudo thông thường được tạo, bạn nên sử dụng account đó thay thế.
Bạn có thể sử dụng đối số -u
để chỉ định user hệ thống từ xa. Khi không được cung cấp, Ansible sẽ cố gắng kết nối với quyền là user hệ thống hiện tại của bạn trên nút điều khiển.
Từ máy local của bạn hoặc nút điều khiển Ansible, hãy chạy:
- ansible all -m ping -u root
Lệnh này sẽ sử dụng mô-đun ping
hợp của Ansible để chạy kiểm tra kết nối trên tất cả các node từ khoảng không quảng cáo mặc định của bạn, kết nối dưới dạng root . Mô-đun ping
sẽ kiểm tra:
- nếu server có thể truy cập được;
- nếu bạn có thông tin đăng nhập SSH hợp lệ;
- nếu server có thể chạy module Ansible bằng Python.
Bạn sẽ nhận được kết quả tương tự như sau:
Outputserver1 | SUCCESS => { "changed": false, "ping": "pong" } server2 | SUCCESS => { "changed": false, "ping": "pong" } server3 | SUCCESS => { "changed": false, "ping": "pong" }
Nếu đây là lần đầu tiên bạn kết nối với các server này qua SSH, bạn cần xác nhận tính xác thực của các server mà bạn đang kết nối qua Ansible. Khi được yêu cầu , hãy nhập yes
và sau đó nhấn ENTER
để xác nhận.
Khi bạn nhận được phản hồi "pong"
từ server , điều đó nghĩa là bạn đã sẵn sàng chạy các lệnh Ansible và sách phát trên server đó.
Lưu ý : Nếu bạn không thể nhận lại phản hồi thành công từ server của bạn , hãy xem Hướng dẫn Trang tính Cheat Ansible của ta để biết thêm thông tin về cách chạy các lệnh Ansible với các tùy chọn kết nối khác nhau.
Bước 4 - Chạy lệnh Ad-Hoc (Tùy chọn)
Sau khi xác nhận nút điều khiển Ansible của bạn có thể giao tiếp với server của bạn, bạn có thể bắt đầu chạy các lệnh đặc biệt và sách phát trên server của bạn .
Bất kỳ lệnh nào bạn thường thực thi trên server từ xa qua SSH đều có thể được chạy với Ansible trên các server được chỉ định trong file khoảng không quảng cáo của bạn. Ví dụ: bạn có thể kiểm tra việc sử dụng đĩa trên tất cả các server với:
- ansible all -a "df -h" -u root
Output server1 | CHANGED | rc=0 >> Filesystem Size Used Avail Use% Mounted on udev 3.9G 0 3.9G 0% /dev tmpfs 798M 624K 798M 1% /run /dev/vda1 155G 2.3G 153G 2% / tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/vda15 105M 3.6M 101M 4% /boot/efi tmpfs 798M 0 798M 0% /run/user/0 server2 | CHANGED | rc=0 >> Filesystem Size Used Avail Use% Mounted on udev 2.0G 0 2.0G 0% /dev tmpfs 395M 608K 394M 1% /run /dev/vda1 78G 2.2G 76G 3% / tmpfs 2.0G 0 2.0G 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 2.0G 0 2.0G 0% /sys/fs/cgroup /dev/vda15 105M 3.6M 101M 4% /boot/efi tmpfs 395M 0 395M 0% /run/user/0 ...
Lệnh df -h
được tô sáng có thể được thay thế bằng bất kỳ lệnh nào bạn muốn.
Bạn cũng có thể thực thi các module Ansible thông qua các lệnh đặc biệt, tương tự như những gì ta đã thực hiện trước đây với module ping
để kiểm tra kết nối. Ví dụ: đây là cách ta có thể sử dụng module apt
để cài đặt version vim
mới nhất trên tất cả các server trong repository của bạn:
- ansible all -m apt -a "name=vim state=latest" -u root
Bạn cũng có thể nhắm đến các server riêng lẻ, cũng như các group và group con, khi chạy các lệnh Ansible. Ví dụ: đây là cách bạn kiểm tra uptime
của mọi server trong group servers
:
- ansible servers -a "uptime" -u root
Ta có thể chỉ định nhiều server bằng cách tách chúng bằng dấu hai chấm:
- ansible server1:server2 -m ping -u root
Để biết thêm thông tin về cách sử dụng Ansible, bao gồm cách thực thi sách phát để tự động cài đặt server , bạn có thể xem Hướng dẫn Tham khảo Ansible của ta .
Kết luận
Trong hướng dẫn này, bạn đã cài đặt Ansible và cài đặt file khoảng không quảng cáo để thực hiện các lệnh đặc biệt từ Ansible Control Node.
Khi bạn đã xác nhận bạn có thể kết nối và kiểm soát cơ sở hạ tầng của bạn từ máy điều khiển Ansible trung tâm, bạn có thể thực thi bất kỳ lệnh hoặc playbook nào bạn muốn trên các server đó.
Để biết thêm thông tin về cách sử dụng Ansible, hãy xem Hướng dẫn Bảng Cheat Ansible của ta .
Các tin liên quan
Cách cài đặt R trên Ubuntu 18.04 [Khởi động nhanh]2020-05-14
Cách thiết lập NFS Mount trên Ubuntu 20.04
2020-05-14
Cách cài đặt R trên Ubuntu 18.04
2020-05-14
Cách cài đặt R trên Ubuntu 20.04
2020-05-14
Cách cài đặt MariaDB trên Ubuntu 20.04
2020-05-12
Cách cài đặt MariaDB trên Ubuntu 18.04
2020-05-12
Cách cài đặt MariaDB trên Ubuntu 20.04 [Quickstart]
2020-05-12
Cách nâng cấp lên Ubuntu 20.04 Focal Fossa
2020-05-12
Cách cài đặt và cấu hình VNC trên Ubuntu 20.04
2020-05-11
Cách cài đặt và cấu hình VNC trên Ubuntu 20.04 [Quickstart]
2020-05-11