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~
能够看到文件已经建立