Tutorial

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

congdonglinux_Ansible_Logo

Lệnh Ad-Hoc là lệnh ansible đơn giản thực hiện một tác vụ trên máy chủ đích. Nó cho phép bạn thực thi 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 khi 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 playbook 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ẽ nhận được tên máy chủ ‘ansible-node’ với địa chỉ IP 10.5.5.20 và máy chủ Cung cấp có tên máy chủ ‘cung cấp’ và địa chỉ IP 10.5.5.21.

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

  1. Lệnh đặc biệt cơ bản
  2. Chuyển tập tin
  3. Cập nhật và nâng cấp
  4. Quản lý gói
  5. Quản lý dịch vụ
  6. Hệ thống kiểm tra

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 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 máy chủ ‘tất cả’ trên tệp kho lưu trữ và sử dụng mô-đun ‘ping’.

ansible all -m ping
  • Tham số đầu tiên ‘tất cả’ cho tất cả các máy chủ trên tệp kho lưu trữ.
  • Tham số thứ hai bên trong tùy chọn ‘-m’ cho mô-đun, đang chạy mô-đun ping.

Bây giờ bạn sẽ nhận được kết quả như dưới đây.

congdonglinux-ansible

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 của mình hoặc sử dụng tệp kiểm kê mặc định ‘/etc/ansible/hosts’.

Dưới đây là ví dụ để chạy lệnh đặc biệt đối với nhóm máy chủ có tên là ‘hakase-testing’ đã được xác định trên tệp cấu hình kho lưu trữ mặc định.

ansible hakase-testing -m setup -a "filter=ansible_distribution*"
congdonglinux-ansible

Nếu bạn đang sử dụng tệp khoảng không quảng cáo tùy chỉnh, hãy thêm tùy chọn ‘-i’ theo sau tên tệp khoảng không quảng cáo.

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 với một máy chủ duy nhất trên cấu hình kho, bạn có thể sử dụng tên của máy chủ đó, chẳng hạn như bên dưới.

ansible provision -m setup -a "filter=ansible_distribution*"

Và lệnh ad-hoc sẽ chỉ chạy trên máy chủ “cung cấp”.

congdonglinux-ansible

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 ‘sshpass’ trên ‘ansible-node’.

Cài đặt gói sshpass bằng lệnh apt bên dưới.

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.Quảng cáo

ansible hakase-testing -m ping --ask-pass

Và bạn sẽ được hỏi ‘Mật khẩu SSH’ cho máy chủ.

congdonglinux-ansible

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

4. Nâng cao đặc quyền

Ansible cung cấp các tính năng để leo thang đặc quyền đối với máy chủ. Nếu muốn chạy lệnh đặc biệt 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’ để lấy đặc quyền root và tùy chọn ‘-K’ để nhắc mật khẩu.

Chạy lệnh đặc biệt ‘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 ‘Mật khẩu SUDO’.

ansible hakase-testing -m shell -a 'fdisk -l' -u hakase --become -K

Dưới đây là kết quả.

congdonglinux-ansible

Chuyển tập tin

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

1. Tải file 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 đặc biệt bên dưới.

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ư dưới đây.

congdonglinux-ansible

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

2. Tải tập tin từ máy chủ

Bây giờ chúng ta sẽ sử dụng lệnh đặc biệt với mô-đun ‘tìm nạp’ để 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’.

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 ‘hakase-sudoers’ trên thư mục ‘sao lưu’.

congdonglinux-ansible

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

Để 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.

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 ‘nâng cấp = dist’.

ansible hakase-testing -m apt -a 'upgrade=dist update_cache=yes' --become

Đợi tất cả các gói đang được nâng cấp.

Quản lý 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 cẩm nang của riêng mình. Bởi vì đôi khi bạn cần cài đặt thêm một gói trên hệ thống. Vì vậy, lệnh đặc biệt 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. Gói cài đặt

Cài đặt một gói duy nhất bằng lệnh đặc biệt với mô-đun apt như bên dưới.

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.

ansible hakase-testing -m apt -a 'name=nginx state=absent purge=yes' --become

3. Tự động xóa

Ví dụ bên dưới là xóa gói nginx và lọc tất 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.

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 đặc biệt để quản lý dịch vụ hệ thống trên máy chủ cung cấp.

1. Bắt đầu dịch vụ

Bắt đầu dịch vụ nginx và thêm nó vào thời gian khởi động.

ansible hakase-testing -m service -a 'name=nginx state=started enabled=yes' --become

Bạn sẽ nhận được kết quả ‘đã thay đổi’ và ‘đã bật’ là ‘đúng’.

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.

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ị ‘trạng thái’ thành ‘đã dừng’.

ansible hakase-testing -m service -a 'name=nginx state=stopped' --become

Dịch vụ nginx trên máy chủ ‘thử nghiệm hakase’ đã 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 đặc biệt. Và chúng tôi 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 đặc biệt bên dưới.

ansible hakase-testing -m apt -a 'name=sysstat state=latest' --become

Đợi 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 có sẵn

Kiểm tra đĩa có sẵn trên phân vùng gốc bằng lệnh fdisk.

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’.

ansible hakase-testing -m shell -a 'free -m' --become

Và bạn sẽ được hiển thị kết quả như dưới đây.

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.

ansible hakase-testing -m shell -a 'mpstat -P ALL' --become

Lệnh mpstat là một phần của gói ‘sysstat’.

4. Mở cổng

Kiểm tra các cổng mở trên tất cả hệ thống bằng netstat thông qua lệnh ad-hoc.

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ủ.

ansible hakase-testing -m shell -a 'uptime' --become

Tham khảo:

Đăng ký liền tay Nhận Ngay Bài Mới

Subscribe ngay

Cám ơn bạn đã đăng ký !

Lỗi đăng ký !

Add Comment

Click here to post a comment

Đăng ký liền tay
Nhận Ngay Bài Mới

Subscribe ngay

Cám ơn bạn đã đăng ký !

Lỗi đăng ký !