Sự khác biệt giữa Ansible Module Command và Module Shell

Sự khác biệt giữa Ansible Module Command và Module Shell | Heyo, nếu bạn đang quản trị chương trình Ansible để tự động hoá các tác vụ trên máy chủ remote. Sẽ có những lúc bạn cần thực hiện các câu lệnh đơn giản thay vì xài module khác phải không nào ? Việc thực hiện các câu lệnh có thể được hỗ trợ bởi module Shell hoặc module Command . Vậy đâu là sự khác biệt giữa hai module này mà ta cần biết để lựa chọn sử dụng.

so sánh ansible module command vs shell

Có thể bạn quan tâm chủ đề khác
Tìm hiểu cấu hình Handler trong Ansible
Cấu hình Retry task trong playbook Ansible
Hướng dẫn copy file trên cùng một host với Ansible
Ansible: Các mẹo giúp tăng tốc độ thực thi của Ansible
Tầm quan trọng của Tự động hoá trong Công Nghệ Thông Tin

Ansible Shell Module vs Ansible Command Module

+ Module Command
Với module Command, thì các câu lệnh được truyền vào sẽ được thực thi không thông qua shell linux. Vì vậy một số thứ như biến môi trường $HOME sẽ không tồn tại, các tính năng chuyển hướng input/output ( < , > ) hay pipes ( | ) sẽ không hoạt động. Module Command an toàn hơn vì sẽ không ảnh hưởng đến môi trường của user thực thi.

Link tham khảo: http://docs.ansible.com/ansible/latest/modules/command_module.html

Cú pháp cơ bản

- name: return motd to registered var
  command: cat /etc/motd
  register: mymotd

+ Module Shell
Với module Shell, thì Ansible sẽ mở một shell linux trên máy chủ remote (mặc định là /bin/sh) . Sau đó câu lệnh tham số sẽ được thực thi trên shell remote. Vì vậy các tính năng như chuyển hướng input/output, pipe sẽ hoạt động được.

Link tham khảo: http://docs.ansible.com/ansible/latest/modules/shell_module.html

Cú pháp cơ bản

- name: Execute the command in remote shell
  shell: somescript.sh >> somelog.txt

Kết luận

Nếu bạn sử dụng các hoạt động trên OS Remote mà có thể sử dụng các module Ansible thay thế thì nên làm như vậy trước. Hạn chế việc sử dụng các lệnh thô truyền biến vào các module thực thi lệnh như ‘Command‘ hay ‘Shell. Trong trường hợp bạn cần phải xài 2 module trên, thì nếu bạn cần kết hợp xử lý câu lệnh với pipe hay ghi log thì hãy xài module ‘Shell‘ nhé.

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

Previous article[AWS] Hướng dẫn đăng ký thi chứng chỉ AWS tại Việt Nam
Next article[vSphere] Link tải các phiên bản VMware vSphere Client
Bạn đang theo dõi website "https://cuongquach.com/" nơi lưu trữ những kiến thức tổng hợp và chia sẻ cá nhân về Quản Trị Hệ Thống Dịch Vụ & Mạng, được xây dựng lại dưới nền tảng kinh nghiệm của bản thân mình, Quách Chí Cường. Hy vọng bạn sẽ thích nơi này !