script
script模塊能夠幫助咱們在遠程主機上執行ansible主機上的腳本,也就是說,腳本一直存在於ansible主機本地,不須要手動拷貝到遠程主機後再執行。shell
學習此模塊以前,請先參考本文中的command模塊。bash
此處咱們介紹一些script模塊的經常使用參數,你能夠先對這些參數有一個大概瞭解,而後再看小示例。ide
free_form參數 :必須參數,指定須要執行的腳本,腳本位於ansible主機本地,並無具體的一個參數名叫free_form,具體解釋參考command模塊。學習
chdir參數 : 此參數的做用就是指定一個遠程主機中的目錄,在執行對應的腳本以前,會先進入到chdir參數指定的目錄中。spa
creates參數 :使用此參數指定一個遠程主機中的文件,當指定的文件存在時,就不執行對應腳本,可參考command模塊中的解釋。orm
removes參數 :使用此參數指定一個遠程主機中的文件,當指定的文件不存在時,就不執行對應腳本,可參考command模塊中的解釋。ip
示例以下:
ansible本機建立腳本
#!/bin/bash
touch test
rem
在本機執行腳本在客戶端指定目錄下執行:get
[root@jack7-1 ~]# ansible jack6-2 -m shell -a 'chdir=/tmp/ ls -a | grep test'
jack6-2 | CHANGED | rc=0 >>br/>.test
test2
.test.7046.2020-08-30@17:25:00~
.test.7161.2020-08-30@17:27:21~
it
[root@jack7-1 ~]# ansible jack6-2 -m script -a 'chdir=/tmp/ creates=/tmp/test /root/test.sh'
jack6-2 | CHANGED => {
"changed": true,
"rc": 0,
"stderr": "Shared connection to 192.168.179.137 closed.\r\n",
"stderr_lines": [
"Shared connection to 192.168.179.137 closed."
],
"stdout": "",
"stdout_lines": []
}
[root@jack7-1 ~]# ansible jack6-2 -m shell -a 'chdir=/tmp/ ls -a | grep test'
jack6-2 | CHANGED | rc=0 >>br/>test
.test
test2
.test.7046.2020-08-30@17:25:00~
.test.7161.2020-08-30@17:27:21~
能夠看到文件已經建立