Ansible: Hướng dẫn sử dụng lệnh Ansible Ad-hoc cơ bản

698

Ansible: Hướng dẫn sử dụng lệnh Ansible Ad-Hoc | Trong nội dung bài viết này chúng ta sẽ tìm hiểu về khái niệm cơ bản và đơn giản mà bạn sẽ tiếp cận Ansible. Đó chính là thực thi lệnh Ansible Ad-hoc. Vậy Ansible Ad-hoc theo khái niệm do Ansible miêu tả là gì? Có gì đặc biệt hay không ? chúng ta hãy cùng tìm hiểu ở bài viết này.

lệnh ansible adhoc

Lệnh Ad-hoc là gì ?

Một lệnh Ad-hoc được miêu tả như một lệnh mà bạn có thể gõ nhanh để thực thi các nội dung task (tác vụ) việc cần thiết mà không cần lưu trữ lại thông tin lệnh sử dụng cho task việc đó.

Lệnh Ansible Ad-hoc là gì ?

Đôi khi bạn không muốn phải tạo 1 file playbook hoàn chỉnh bao gồm các tác vụ cần thực hiện. Thay vào đó bạn muốn thực hiện nhanh chóng 1 vài yêu cầu nho nhỏ ngay trên chương trình lệnh tại Ansible Server như: kiểm tra thông tin ip, kiểm tra thông tin disk usage,.. Thì lúc này ta đơn thuần sẽ chỉ sử dụng câu lệnh “ansible” và các option liên quan để thực thi trên các máy chủ remote. Vậy quá trình sử dụng lệnh ‘ansible’ trên terminal để thực thi nhanh 1 tác vụ mà ta muốn trên máy chủ remote, ta gọi đó là lệnh ‘Ansible Ad-hoc’. Đây cũng chính là kiến thức bạn thường tiếp cận Ansible đầu tiên.

Ở đây khi thực hành các ví dụ dưới, mình coi như bạn đã cài đặt ssh key cho máy chủ remote rồi nhé. Để khi Ansible ssh sẽ ssh bằng key , không hỏi mật khẩu.

Cú pháp lệnh Ansible Ad-hoc

Cú pháp

  • <pattern> : chỉ định thông tin host máy chủ remote.
  • <module> : chỉ định module sử dụng.
  • <arguments> : truyền tham số module.

Lưu ý:
– Module mặc định là ‘command’ (trong trường hợp nếu bạn không chỉ định rõ module khi sử dụng adhoc ansible command) và khi bạn truyền tham số là xem như câu lệnh sẽ được sử dụng để thực thi trên máy chủ remote. Ví dụ# ansible webservers -a “free -m”
– Khi sử dụng lệnh Ansible adhoc thì bạn cần dùng dấu quote “…“ để rào tham số truyền vào module lệnh.

Lưu ý về file host inventory mặc định

Nếu bạn khai báo thông tin host inventory trong file mặc định /etc/ansible/hosts thì khi thực thi lệnh ad-hoc ansible không cần phải chỉ định rõ file thông tin inventory.

Ví dụ:

thì khi thực thi lệnh adhoc ansible, ansible sẽ tự biết tìm thông tin nhóm host ‘webservers‘ tại file ‘/etc/ansible/hosts‘.

Lưu ý về file host inventory tuỳ chỉnh

Nếu bạn khai báo thông tin inventory host ở thư mục khác như : /opt/hosts_inventory , thì cần dùng option ‘-i’ để chỉ định file inventory.

Các ví dụ sử dụng lệnh Ansible Ad-hoc

1. Reboot lại máy chủ remote

– Bạn muốn restart các server nằm trong group “[webservers]” .

2. Tạo 1 thư mục trên máy chủ remote

– Ta sẽ sử dụng module ‘file‘ để thực hiện thao tác tạo thư mục với câu lệnh như dưới đây.

3. Check ping các máy chủ remote

– Ta dùng module ‘ping’ để check từ máy chủ ansible có ping được các máy chủ remote không.

4. Quản lý dịch vụ

– Ta dùng module ‘service’ để quản lý dịch vụ.

5. Chạy quyền user sudo trên remote server

– Thông thường sẽ có trường hợp, máy chủ remote sử dụng các user với quyền sudo để thực thi tác vụ. Lúc này, bạn sẽ sử dụng option ‘-u user‘ và ‘–become‘ để leo quyền sudo. Option ‘–ask-become-pass‘ phục vụ cho việc xuất thông báo nhập mật khẩu quyền sudo của máy chủ remote.

6. Module shell

– Nếu bạn muốn sử dụng pipe hoặc redirect output của lệnh trên ansible ad-hoc thì cần sử dụng module ‘shell’ để thực thi. Nếu bạn có sử dụng biến trong lúc truyền tham số cho Ansible adhoc lệnh thì thêm dấu ‘\$’ .

Như vậy bạn đã tìm hiểu cách thức sử dụng lệnh Ansible ad-hoc cơ bản rồi phải không nào . Có rất nhiều cách để ứng dụng hoạt động sử dụng lệnh ansible cơ bản này nhằm trích xuất các thông tin của máy chủ remote một cách nhanh chóng. Chúc các bạn thành công

Nguồn: https://cuongquach.com/

Đánh giá sao từ người đọc :
[ Tổng : 1 - Trung bình: 5 ]

LEAVE A REPLY