Kiểm tra nhanh toàn hệ thống với Ansible Ad-hoc

Kiểm tra nhanh toàn hệ thống với Ansible Ad-hoc

Ansible cho phép lên kịch bản các tập lệnh thực hiện tuần tự và cần tác động trên nhiều server đồng thời! Ansible cho phép quản trị chính xác server nào cần chạy lệnh nào!

Tuy nhiên, không phải lúc nào chúng ta cũng cần thực thi một tập lệnh và chúng ta cũng không nhất thiết/không muốn phải viết playbook.yml khi mà chỉ có 1 lệnh cần thực thi chẳng hạn. Ví dụ bạn cần chạy nhanh một lệnh kiểm tra kernel version (uname -a) hay hiển thị số core các server ra màn hình (cat /proc/cpuinfo | grep processor | wc -l)

Ansible Ad-Hoc là thứ chúng ta cần trong các trường hợp trên

  • Thực hiện nhanh chóng
  • Không cần tạo và lưu trữ file playbook

Thay vì tạo file playbook như bên dưới và chạy lệnh: ansible-playbook -i inventory ls-la.yml 

cat << EOF > ls-la.yml
---
- hosts: group1
  gather_facts: false
  tasks:
    - shell: ls -la
      register: output
    - debug:
        msg: "{{ output.stdout_lines }}"
EOF

    Chúng ta chỉ đơn giản là

    $ ansible <tên group> -i <file inventory> -m shell -a "ls -la"
    $ ansible group1 -i inventory -m shell -a "ls -la"

    Sau đây là một số ví dụ:

    $ ansible group1 -i inventory -m shell -a "cat /proc/cpuinfo | grep processor | wc -l"
    10.240.202.205 | SUCCESS | rc=0 >>
    2
    $ ansible group1 -i inventory -m shell -a "uname -a"
    10.240.202.205 | SUCCESS | rc=0 >>
    Linux trangttht-test 4.4.0-116-generic #140-Ubuntu SMP Mon Feb 12 21:23:04 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
    Posted on