Hướng dẫn Ansible: Lệnh Ad-Hoc

theanh

Administrator
Nhân viên
Lệnh Ad-Hoc là lệnh ansible một dòng thực hiện một tác vụ trên máy chủ đích. Nó cho phép bạn thực hiện tác vụ một dòng đơn giản đối với một hoặc nhóm máy chủ được xác định trên cấu hình tệp kiểm kê. Lệnh Ad-Hoc sẽ chỉ có hai tham số, nhóm máy chủ mà bạn muốn thực hiện tác vụ và mô-đun Ansible để chạy.

Lệnh Ad-Hoc mang lại cho bạn nhiều lợi thế hơn để khám phá chính ansible. Bạn có thể thực hiện các tác vụ mà không cần tạo sổ tay hướng dẫn trước, chẳng hạn như khởi động lại máy chủ, quản lý dịch vụ, chỉnh sửa cấu hình dòng, sao chép tệp vào chỉ một máy chủ, chỉ cài đặt một gói.

Trong hướng dẫn này, tôi sẽ trình bày cách sử dụng cơ bản của lệnh Ansible Ad-Hoc. Tôi sẽ sử dụng lệnh Ad-Hoc để thực hiện các tác vụ đơn giản có thể cần thiết cho công việc hàng ngày của bạn với tư cách là quản trị viên hệ thống.

Điều kiện tiên quyết​

Đối với hướng dẫn này, chúng tôi sẽ sử dụng hai máy chủ Ubuntu 18.04 LTS, Bionic Beaver. Máy chủ ansible sẽ lấy tên máy chủ 'ansible-node' với địa chỉ IP là 10.5.5.20 và máy chủ Provision với tên máy chủ 'provision' và địa chỉ IP là 10.5.5.21.

Chúng ta sẽ làm gì?​

  1. Lệnh Ad-Hoc cơ bản
  2. Truyền tệp
  3. Cập nhật và nâng cấp
  4. Quản lý gói
  5. Quản lý dịch vụ
  6. Kiểm tra hệ thống

Cách sử dụng lệnh Ad-Hoc cơ bản​

Đầu tiên, chúng ta sẽ tìm hiểu cách sử dụng cơ bản của Ansible Ad-Hoc để quản lý máy chủ. Chúng ta sẽ tìm hiểu lệnh cơ bản Ansible Ad-Hoc, sử dụng lệnh Ad-Hoc với xác thực mật khẩu ssh, leo thang đặc quyền và sử dụng lệnh Ad-Hoc đối với một nhóm máy chủ.

1. Lệnh cơ bản​

Lệnh cơ bản của ansible ad-hoc đối với 'tất cả' máy chủ trên tệp kiểm kê và sử dụng mô-đun 'ping'.
Mã:
ansible all -m ping
  • Tham số đầu tiên 'all' cho tất cả máy chủ trên tệp kiểm kê.
  • Tham số thứ hai bên trong tùy chọn '-m' cho mô-đun, chạy mô-đun ping.
Bây giờ bạn sẽ nhận được kết quả như bên dưới.



Một lệnh Ad-Hoc đối với máy chủ cung cấp đã 'THÀNH CÔNG' mà không có bất kỳ thay đổi nào được thực hiện trên máy chủ và chúng tôi nhận được kết quả của mô-đun 'ping' từ máy chủ cung cấp 'pong'.

2. Lọc nhóm máy chủ và máy chủ đơn​

Bây giờ bạn có thể sử dụng lệnh Ad-Hoc đối với một nhóm máy chủ đã được xác định trên tệp kiểm kê. Bạn có thể sử dụng tệp kiểm kê tùy chỉnh hoặc sử dụng tệp kiểm kê mặc định '/etc/ansible/hosts'.

Dưới đây là một ví dụ để chạy lệnh ad-hoc trên nhóm máy chủ có tên 'hakase-testing' đã được xác định trên tệp cấu hình kiểm kê mặc định.
Mã:
ansible hakase-testing -m setup -a "filter=ansible_distribution*"


Nếu bạn đang sử dụng tệp kiểm kê tùy chỉnh, hãy thêm tùy chọn '-i' theo sau tên tệp kiểm kê.
Mã:
ansible hakase-testing -i hosts -m setup -a "filter=ansible_distribution*"
Bạn sẽ nhận được kết quả tương tự.

Bây giờ nếu bạn muốn chạy trên một máy chủ duy nhất trên cấu hình kiểm kê, bạn có thể sử dụng tên máy chủ như bên dưới.
Mã:
ansible provision -m setup -a "filter=ansible_distribution*"
Và lệnh ad-hoc sẽ chỉ chạy trên máy chủ 'provision'.


3. Sử dụng mật khẩu SSH​

Bây giờ chúng ta sẽ thực hiện lệnh Ad-Hoc bằng cách sử dụng xác thực mật khẩu ssh được nhắc. Và để thực hiện điều này, bạn cần cài đặt gói bổ sung có tên là 'sshpass' trên 'ansible-node'.

Cài đặt gói sshpass bằng lệnh apt bên dưới.
Mã:
sudo apt install sshpass -y
Bây giờ hãy chạy lệnh ad-hoc và thêm tùy chọn '--ask-pass' vào cuối.
Mã:
ansible hakase-testing -m ping --ask-pass
Và bạn sẽ được yêu cầu nhập 'Mật khẩu SSH' cho máy chủ.



Nhập mật khẩu ssh của bạn và lệnh ad-hoc sẽ được chạy trên máy chủ.

4. Tăng đặc quyền​

Ansible cung cấp các tính năng để tăng đặc quyền trên các máy chủ. Nếu bạn muốn chạy lệnh ad-hoc với tư cách là người dùng không phải root, bạn có thể sử dụng tùy chọn '--become' để có được quyền root và tùy chọn '-K' để nhắc nhập mật khẩu.

Chạy lệnh ad-hoc 'fdisk -l' với tư cách là người dùng 'hakase' với tùy chọn đặc quyền '--become' và '-K' để nhắc nhập 'Mật khẩu SUDO'.
Mã:
ansible hakase-testing -m shell -a 'fdisk -l' -u hakase --become -K
Dưới đây là kết quả.


Truyền tệp​

Bây giờ chúng ta sẽ sử dụng lệnh Ad-Hoc để Chuyển tệp đến và đi từ máy chủ. Chúng ta có thể chuyển tệp đến máy chủ cung cấp bằng mô-đun 'sao chép' và tải tệp xuống từ máy chủ bằng mô-đun 'fetch'.

1. Tải tệp lên máy chủ​

Trong ví dụ này, chúng ta sẽ chạy lệnh ad-hoc và sử dụng mô-đun 'copy' để tải cấu hình sudoers cho người dùng hakase lên thư mục '/etc/sudoers.d' trên nhóm 'hakase-testing'.

Chạy lệnh ad-hoc bên dưới.
Mã:
ansible hakase-testing -m copy -a 'src=/home/hakase/hakase-sudo.conf dest=/etc/sudoers.d/hakase owner=root mode=0644' -u hakase --become -K
Bây giờ bạn sẽ được hỏi 'Mật khẩu SUDO' cho người dùng hakase. Nhập mật khẩu và bạn sẽ nhận được kết quả như bên dưới.



Tệp đã được tải lên thư mục đích 'dest' và bạn nhận được kết quả 'đã thay đổi' là 'true'.

2. Tải tệp từ máy chủ​

Bây giờ chúng ta sẽ sử dụng lệnh ad-hoc với mô-đun 'fetch' để tải tệp từ máy chủ cung cấp xuống máy chủ 'ansible-node' cục bộ.

Tải tệp cấu hình '/etc/sudoers.d/hakase' từ máy chủ 'provision' xuống thư mục cục bộ có tên là 'backup'.
Mã:
ansible provision -m fetch -a 'src=/etc/sudoers.d/hakase dest=/home/hakase/backup/hakase-sudoers flat=yes'
Và bạn sẽ nhận được tệp có tên là 'hakase-sudoers' trên thư mục 'backup'.


Bước 3 - Cập nhật kho lưu trữ và nâng cấp các gói​

Để cập nhật và nâng cấp kho lưu trữ của máy chủ Ubuntu, chúng ta có thể sử dụng lệnh ad-hoc với mô-đun apt.

Cập nhật kho lưu trữ trên nhóm hakase-testing.
Mã:
ansible hakase-testing -m apt -a 'update_cache=yes' --become
Bây giờ hãy cập nhật kho lưu trữ và nâng cấp tất cả các gói lên phiên bản mới nhất bằng tùy chọn 'upgrade=dist'.
Mã:
ansible hakase-testing -m apt -a 'upgrade=dist update_cache=yes' --become
Đợi tất cả các gói được nâng cấp.

Quản lý các gói​

Điều này rất hữu ích khi bạn đang cố gắng xây dựng và gỡ lỗi sổ tay hướng dẫn của riêng mình. Bởi vì đôi khi bạn cần cài đặt một gói bổ sung trên hệ thống. Vì vậy, lệnh ad-hoc này sẽ cung cấp cho bạn một cách dễ dàng để cài đặt gói đó mà không cần đăng nhập vào từng máy chủ.

1. Cài đặt gói​

Cài đặt một gói duy nhất bằng lệnh ad-hoc với mô-đun apt như bên dưới.
Mã:
ansible hakase-testing -m apt -a 'name=nginx state=latest' --become

2. Xóa gói​

Xóa gói và xóa tất cả cấu hình liên quan đến gói.
Mã:
ansible hakase-testing -m apt -a 'name=nginx state=absent purge=yes' --become

3. Tự động xóa​

Ví dụ bên dưới đang xóa gói nginx và xóa tất cả các cấu hình liên quan, sau đó xóa tất cả các gói không sử dụng trên hệ thống.
Mã:
ansible hakase-testing -m apt -a 'name=nginx state=absent purge=yes autoremove=yes' --become

Quản lý dịch vụ​

Trong bước này, chúng ta sẽ sử dụng mô-đun dịch vụ trên lệnh ad-hoc để quản lý dịch vụ hệ thống trên máy chủ cung cấp.

1. Khởi động dịch vụ​

Khởi động dịch vụ nginx và thêm nó vào thời gian khởi động.
Mã:
ansible hakase-testing -m service -a 'name=nginx state=started enabled=yes' --become
Bạn sẽ nhận được kết quả 'changed' và 'enabled' là 'true'.

2. Khởi động lại dịch vụ​

Nếu bạn muốn khởi động lại dịch vụ, bạn có thể sử dụng lệnh sau.
Mã:
ansible hakase-testing -m service -a 'name=nginx state=restarted' --become
Dịch vụ nginx đã được khởi động lại.

3. Dừng dịch vụ​

Để dừng dịch vụ, hãy thay đổi giá trị 'state' thành 'stopped'.
Mã:
ansible hakase-testing -m service -a 'name=nginx state=stopped' --become
Dịch vụ nginx trên máy chủ 'hakase-testing' đã bị dừng.

Kiểm tra hệ thống​

Bây giờ chúng ta sẽ sử dụng mô-đun 'shell' bên trong lệnh ad-hoc. Và chúng ta sẽ thực hiện giám sát hệ thống đơn giản bằng lệnh Linux đơn giản thông qua Ansible ad-hoc.

Đầu tiên, cài đặt gói 'sysstat' cho tất cả các máy chủ bằng lệnh ad-hoc bên dưới.
Mã:
ansible hakase-testing -m apt -a 'name=sysstat state=latest' --become
Chờ cài đặt gói 'sysstat'.

Sau khi hoàn tất, bạn đã sẵn sàng kiểm tra tất cả các máy chủ.

1. Đĩa khả dụng​

Kiểm tra đĩa khả dụng trên phân vùng gốc bằng lệnh fdisk.
Mã:
ansible hakase-testing -m shell -a 'df -h /dev/sda2' --become
Thay đổi '/dev/sda2' bằng đường dẫn của riêng bạn.

2. Sử dụng bộ nhớ RAM​

Bây giờ hãy kiểm tra mức sử dụng bộ nhớ RAM trên tất cả các máy chủ bằng lệnh 'free -m'.
Mã:
ansible hakase-testing -m shell -a 'free -m' --become
Và bạn sẽ thấy kết quả như bên dưới.

3. Sử dụng CPU​

Kiểm tra mức sử dụng CPU của tất cả các máy chủ bằng lệnh mpstat.
Mã:
ansible hakase-testing -m shell -a 'mpstat -P ALL' --become
Lệnh mpstat là một phần của gói 'sysstat'.

4. Cổng mở​

Kiểm tra các cổng mở trên tất cả các hệ thống bằng lệnh netstat thông qua lệnh ad-hoc.
Mã:
ansible hakase-testing -m shell -a 'netstat -plntu' --become

5. Thời gian hoạt động​

Bây giờ hãy kiểm tra thời gian hoạt động của từng máy chủ.
Mã:
ansible hakase-testing -m shell -a 'uptime' --become
 
Back
Bên trên