script模块
看到script就知道这个模块和脚本有关系。没错,script模块功能就是本地的脚本,可以在远程机器上执行。也就是说,脚本一直在本地,不用拷贝到远程机器上。我们做个小实验来介绍script模块的用法。
首先在管理机器上我们写个很简单的脚本test.sh,在/root目录下。脚本内容如下:
#!/bin/bash
touch /tmp/testfile
echo "123" > /tmp/testfile
脚本的内容很简单,就是在tmp目录下创建一个testfile文件,然后把”123“写入test file文件中。
接下来我们就使用script模块,把本地的脚本在远程机器上执行
[root@localhost ~]# ansible 192.168.146.129 -m script -a "/root/test.sh"
我们可以看到已经正常执行完成了。我们在使用shell或者command模块来查看远程机器是否有testfile文件,里面的内容是不是”123“.
[root@localhost ~]# ansible 192.168.146.129 -m command -a "cat /tmp/testfile"
可以看见远程机器上有对应的文件,文件中的内容也是对的,
上面的小实验就介绍了script用法。非常简单。
小贴士:在本地执行脚本的时候要给脚本执行的权限才能执行。使用script模块时,脚本即使没有执行权限也可以在远程机器上执行的。
细心的同学可能发现了,并且产生疑问。
我们在本地执行命令的时候还会加个参数啥的,比如:ls -l ,rm -rf 等等。
为什么我们上面的使用各个模块的时候没有添加其他的参数呢?是没有参数吗?
这里要说明 一下。上面三个模块都有参数,但是基本上不会使用到。反正到现在,使用上面的三个模块我也没加过任何参数。所以我就直接省略掉。避免一些同学看到这么简单模块都要加参数。而丧失学习兴趣。
后面的模块讲解,我们也只会讲解常用的模块,不常用的模块简单提一下,或者直接就不讲。同样,模块的参数也是只讲常用的,不常用的就不讲,或一笔带过。所以你在看这本书的时候不要有这样的担心。我看了一堆的东西,结果没什么用。这是你不用担心的。我的目的就是写出有用的东西。不会写一些没用的东西来凑字数。也不会用一些高大上的词汇来显示自己很牛的样子。
我的目的是让你一点都不懂到入门。如果你入门了,我的目的就达到了。接下来的深入学习你就知道该如何去学习,去搜索资料。
模块预告下一篇讲解user模块