指令執行子產品有四個:command、raw、shell、script
command、raw
1、command為系統預設子產品,使用時可以直接省略:
ansible all -a "pwd"
![](https://img.laitimes.com/img/_0nNw4CM6IyYiwiM6ICdiwiIn5GcuIWM1IDN1Y2Y4gjMlJmNjJGMyYWNlFmMxMDN3IWZjFWOfdWbp9CXt92Yu4GZjlGbh5SZslmZxl3Lc9CX6MHc0RHaiojIsJye.png)
image.png
2、轉換到别的目錄中,執行程式,chdir為command子產品自帶的參數:
ansible all -a "pwd chdir=/tmp"
3、command不支援管道指令:
4、raw和command類似,兩個子產品都是調用遠端主機的指令,但是raw支援管道指令:
ansible all -m raw -a "cd /tmp;pwd"
shell、script
5、shell子產品調用遠端主機的指令,支援shell特性,包括執行腳本、管道指令等:
ansible all -m shell -a "cd /tmp;pwd"
6、shell直接執行腳本,執行的腳本放在遠端主機上:
ansible all -m shell -a "/root/test.sh"
iamge.png
7、script隻能執行腳本,不能調用其他指令,但是script執行的是存放在ansbile管理機上的腳本,并且script不支援管道指令:
ansible all -m script -a "/root/test.sh"
8、幾個子產品中,command是預設子產品,建議使用shell,功能較友善,script和shell的差別是一個執行控制端的腳本,一個執行遠端端的腳本。