一, ansible 的 script 模块的用途
script 模块用来在远程主机上执行 ansible 管理主机上的脚本,
即: 脚本一直存在于 ansible 管理主机本地,
不需要手动拷贝到远程主机后再执行
说明: 刘宏缔的架构森林是一个专注架构的博客, 地址: https://www.cnblogs.com/architectforest
对应的源码可以访问这里获取: https://github.com/liuhongdi/
说明: 作者: 刘宏缔 邮箱: [email protected]
二, script 模块的应用例子:
1, 用脚本在受控机上切换目录并查看当前目录:
[[email protected] ~]$ vi /home/liuhongdi/ansible/chandpwd.sh
内容:
- cd /data/web/think_www;
- pwd;
执行:
[[email protected] ~]# ansible yujian -m script -a '/home/liuhongdi/ansible/chandpwd.sh'
2, 一个常用的例子: 在受控机上发布 Git 代码:
编写脚本
[[email protected] ~]$ vi /home/liuhongdi/ansible/gitpubwww.sh
内容:
- cd /data/site/think_www;
- echo "---------------------------------------git status:\n";
- Git status;
- echo "---------------------------------------git pull:\n";
- Git pull origin master;
- echo "---------------------------------------git status:\n";
- Git status;
执行:
[[email protected] ~]# ansible yujian -m script -a '/home/liuhongdi/ansible/gitpubwww.sh' --become --become-method=sudo --become-user=root
3, 根据文件判断是否需要执行脚本?
creates 参数 : 使用此参数指定一个远程主机中的文件, 当指定的文件存在时, 就不执行对应脚本
removes 参数 : 使用此参数指定一个远程主机中的文件, 当指定的文件不存在时, 就不执行对应脚本
- [[email protected] ~]# ansible yujian -m script -a 'removes=/root/isgit.txt /home/liuhongdi/ansible/gitpubwww.sh' --become --become-method=sudo --become-user=root
- 121.122.123.47 | SKIPPED
因为删除文件不成功, 所以不执行
- [[email protected] ~]# ansible yujian -m script -a 'creates=/root/isgit.txt /home/liuhongdi/ansible/gitpubwww.sh' --become --become-method=sudo --become-user=root
- 121.122.123.47 | CHANGED => {
- "changed": true,
- ...
因为文件可以创建, 所以成功执行
三, 查看 ansible 的版本
- [[email protected] liuhongdi]# ansible --version
- ansible 2.9.5
来源: http://www.bubuko.com/infodetail-3519837.html