ansible的前面的子產品都是對受管主機中的檔案進行修改或者插入操作,今天繼續跟随學習ansible的指令子產品,比如說我要通過ansible在受管主機上執行我們常用的某些指令,該怎麼操作
command子產品:
ansible test177 -m command -a "ls"
在177中以root的身份檢視177目前環境下的檔案或目錄
ansible test177 -m command -a 'chdir=/root/test ls'
在177上的test目錄下執行ls指令:
ansible test177 -m command -a "creates=/root/test/file2 echo love"
在遠端主機上找是否有file2檔案,如果有就不輸出,沒有就輸出love:
shell子產品:
shell子產品可以在遠端主機上執行指令,與command不同的是,shell執行指令時會經過遠端主機的bin/sh進行處理
以上是shell的參數
當然shell最大的好處就是它識别管道符和導入符号
ansible test177 -m shell -a "chdir=/root/test/ echo test > file3"
以上指令表示在177的test目錄下面,将test這個字元串導入到test目錄下的file3檔案中
script子產品:
可以幫助我們在受管機上執行我們ansible主機的腳本檔案
ansible test177 -m script -a "chdir=/root/test /root/sa.sh"
表示在177的test目錄下面執行ansible主機root/sa.sh腳本
ansible test177 -m script -a "creates=/root/test/file1 /root/sa.sh"
表示如果file1這個檔案在受管主機上存在,我就不執行此腳本,如果存在就行這個及腳本
我遠端主機上有file1但沒有file5
我的腳本隻是一個簡單的echo‘so young’
我們還可以将上述指令中的creates換成removes,意思是相反的,如果沒有就不執行,如果有就執行