简介
ansiable script模板可以用来执行shell脚本,shell脚本不用拷贝到远程在主机上,只要在ansible本地即可。
![d365852e57d2c797891ff6d0e24aeb37.png](https://img-blog.csdnimg.cn/img_convert/d365852e57d2c797891ff6d0e24aeb37.png)
例子
- 直接执行shell脚本
ansible 192.168.1.100 -m script -a "/opt/shell/check_log.sh"
解析
192.168.1.100 指定要操作的对象,可以是多个主机或者组-m 指定调用script模块-a 指定脚本路径
- 指定工作目录
![620011ca20777b37d68392b9ff417b7c.png](https://img-blog.csdnimg.cn/img_convert/620011ca20777b37d68392b9ff417b7c.png)
执行脚本的时候,先切换到指定目录去执行
ansible 192.168.1.100 -m script -a "chdir=/opt /opt/shell/check_log.sh"
chdir=/opt 指定工作目录是/opt
- 判断文件存在,就不执行
ansible 192.168.1.100 -m script -a "chdir=/opt creates=/opt/do.lock /opt/shell/check_log.sh"
/opt/do.lock存在就不执行,可以用于判断是否重复执行任务
- 判断文件不存在,就不执行
ansible 192.168.1.100 -m script -a "chdir=/opt removes=/data/log/access.log /opt/shell/check_log.sh"
/data/log/access.log 不存在,脚本就不执行,可以防止脚本运行异常。
![0ae25f9fece91cfcae9562186da125a2.png](https://img-blog.csdnimg.cn/img_convert/0ae25f9fece91cfcae9562186da125a2.png)