简介
ansiable script模板可以用来执行shell脚本,shell脚本不用拷贝到远程在主机上,只要在ansible本地即可。
例子
- 直接执行shell脚本
ansible 192.168.1.100 -m script -a "/opt/shell/check_log.sh"
解析
192.168.1.100 指定要操作的对象,可以是多个主机或者组-m 指定调用script模块-a 指定脚本路径
- 指定工作目录
执行脚本的时候,先切换到指定目录去执行
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 不存在,脚本就不执行,可以防止脚本运行异常。