天天看點

ansible的指令操作子產品<6>command子產品:shell子產品:script子產品:

ansible的前面的子產品都是對受管主機中的檔案進行修改或者插入操作,今天繼續跟随學習ansible的指令子產品,比如說我要通過ansible在受管主機上執行我們常用的某些指令,該怎麼操作

command子產品:

ansible的指令操作子產品<6>command子產品:shell子產品:script子產品:
ansible的指令操作子產品<6>command子產品:shell子產品:script子產品:

ansible test177 -m command -a "ls"

在177中以root的身份檢視177目前環境下的檔案或目錄

ansible的指令操作子產品<6>command子產品:shell子產品:script子產品:

ansible test177 -m command -a 'chdir=/root/test ls'

在177上的test目錄下執行ls指令:

ansible的指令操作子產品<6>command子產品:shell子產品:script子產品:

ansible test177 -m command -a "creates=/root/test/file2 echo love"

在遠端主機上找是否有file2檔案,如果有就不輸出,沒有就輸出love:

ansible的指令操作子產品<6>command子產品:shell子產品:script子產品:

shell子產品:

shell子產品可以在遠端主機上執行指令,與command不同的是,shell執行指令時會經過遠端主機的bin/sh進行處理

ansible的指令操作子產品<6>command子產品:shell子產品:script子產品:

以上是shell的參數

當然shell最大的好處就是它識别管道符和導入符号

ansible test177 -m shell -a "chdir=/root/test/ echo test > file3"

以上指令表示在177的test目錄下面,将test這個字元串導入到test目錄下的file3檔案中

ansible的指令操作子產品<6>command子產品:shell子產品:script子產品:
ansible的指令操作子產品<6>command子產品:shell子產品:script子產品:

script子產品:

可以幫助我們在受管機上執行我們ansible主機的腳本檔案

ansible的指令操作子產品<6>command子產品:shell子產品:script子產品:

ansible test177 -m script -a "chdir=/root/test /root/sa.sh"

表示在177的test目錄下面執行ansible主機root/sa.sh腳本

ansible的指令操作子產品<6>command子產品:shell子產品:script子產品:

ansible test177 -m script -a "creates=/root/test/file1 /root/sa.sh"

表示如果file1這個檔案在受管主機上存在,我就不執行此腳本,如果存在就行這個及腳本

我遠端主機上有file1但沒有file5

ansible的指令操作子產品<6>command子產品:shell子產品:script子產品:

我的腳本隻是一個簡單的echo‘so young’

我們還可以将上述指令中的creates換成removes,意思是相反的,如果沒有就不執行,如果有就執行