go构建脚本ansible分发时出现的问题总结“non-zero return code”
背景介绍:
在Jenkins服务器配置go项目发布脚本,编译完成后,使用ansible分发到部署服务器上,然后将启动项目脚本start_coachcore.sh发布到目标服务器上,执行启动,目标服务器上另有监控项目运行的脚本。
脚本的名字如下;
deploy_coachcore.sh
.......省去100行....
#分发启动脚本到远程服务器
/usr/local/bin/ansible ${ansible_host} -m shell -a "mkdir -p /data/shell"
/usr/local/bin/ansible ${ansible_host} -m copy -a "src=/data/shell/go/dev/${binpath} mode=755 dest=/data/shell"
/usr/local/bin/ansible ${ansible_host} -m shell -a "/bin/bash /data/shell/${binpath}/${start_script}"
.........
start_coachcore.sh /*
#!/bin/bash
proj=coach_core
mv /data/${proj}/news/${proj} /data/${proj}/
mv /data/${proj}/news/conf/* /data/${proj}/conf/
chmod a+x /data/${proj}/${proj}
pid=`ps -ef|egrep -v 'grep'|egrep "${proj}"| awk -F '[ ]+' '{ print $2 }'`
#查询进程
ps aux | egrep -v "grep | /bin/sh" | grep /data/${proj}/${proj}
if [ $? -eq 0 ]; then
kill -USR2 $pid
else
nohup /data/${proj}/${proj} &
fi
*/
上面脚本拿出来到目标服务器上执行,每一步都没有任何问题,但是通过ansible执行就会报下面的错误。
by setting deprecation_warnings=False in ansible.cfg.
172.168.109.89 | FAILED | rc=-12 >>
root 14602 0.2 0.4 1093812 35572 ? Sl 00:55 2:09 /data/user-zeus/user-zeusnon-zero return code
Build step 'Execute shell' marked build as failure
Finished: FAILURE
尝试:在脚本的每一步加上echo 或者执行结果,pid=`ps -ef|egrep -v 'grep'|egrep "${proj}"| awk -F '[ ]+' '{ print $2 }'` 查看到4个进程号。
解决思路:
由于发布脚本和执行脚本也是一个进程,所以在脚本查询进程的那一步会查询出不止一个进程号,于是脚本进行了下面改进
pid=`ps -ef|grep "$proj"|egrep -v "grep|monitor|deploy|start"|awk -F '[ ]+' '{ print $2 }'`
go构建脚本ansible分发时出现的问题总结“non-zero return code”的更多相关文章
- 约定Jenkins构建脚本
对于Jenkins的使用,我感觉只用到其中一小部分功能,但也就是这一小部分功能,也推动了整个CI/CD的过程,Jenkins的使用方式有很多中,可能我用到的只是其中一种,但是已经满足我的需求,便不再贪 ...
- Gradle 1.12 翻译——第十三章 编写构建脚本
有关其它已翻译的章节请关注Github上的项目:https://github.com/msdx/gradledoc/tree/1.12,或訪问:http://gradledoc.qiniudn.com ...
- 构建现代Web应用时究竟是选择传统web应用还是SPA
在大前端盛行的今天,似乎前后端分离的开发模式才是大势所趋,而SPA的概念更是应运而生.现在随便构建一个web应用程序如果你不是使用SPA的话,就会感觉有点low,但是真的是这样吗?今天这篇文章我们就来 ...
- [原]Jenkins(八)---jenkins构建项目报错时发送错误报告邮件
/** * lihaibo * 文章内容都是根据自己工作情况实践得出. * 版权声明:本博客欢迎转发,但请保留原作者信息! http://www.cnblogs.com/horizonli/p/533 ...
- ansible分发密钥
http://www.361way.com/ansible-cfg/4401.html 修改host_key_checking(默认是check的):改为false, host_key_ch ...
- ssh密钥分发之二:使用sshpass配合ssh-kopy-id编写脚本批量分发密钥:
使用sshpass配合ssh-kopy-id编写脚本批量分发密钥: 首先sshpass是一个ssh连接时的免交互工具,首先要安装一下: yum install sshpass -y 接下来我们就可以使 ...
- Gradle:构建脚本概要
一.构建块 1.每一个构建块都包括三个基本构建块:project.task和property: 2.每一个构建块包括至少一个project,进而又包括一个或多个task: 3.project和task ...
- SqlServer 使用脚本创建分发服务及事务复制的可更新订阅
原文:SqlServer 使用脚本创建分发服务及事务复制的可更新订阅 [创建使用本地分发服务器] /************************[使用本地分发服务器配置发布]*********** ...
- 【转载】Gradle学习 第六章:构建脚本基础
转载地址:http://ask.android-studio.org/?/article/11 6.1. Projects and tasks 项目和任务Everything in Gradle si ...
随机推荐
- for循环使用element的折叠面板遇到的问题-1
首先,效果是点击添加折叠面板,折叠面板的title右侧是关闭的小按钮,每次添加的面板都自动展开,其他的面板自动关闭,但其中发现一个问题是,每次点击关闭的时候,虽然上一个面板被关闭了,但他的下一个会自动 ...
- 转战物联网·基础篇09-选择MQTT协议还是CoAP协议
前面章节介绍过,MQTT协议和CoAP协议都是物联网中比较流行的协议,都对传输量做了很大的精简,传输开销小,以适应物理网的网络环境. XMPP协议也有人说是适合物联网通信的,但它是基于XML, ...
- fastadmin安装定时插件报错 ZipArchive::extractTo(): Permission denied
环境linux上直接安装 如果你是在win开发号直接部署的应该是没问题 我是直接在linux安装的 这几天研了下fastadmin 想用他的定时可是在使用的时候报错 ZipArchive::e ...
- 工作日志,go get -v -x github.com/pebbe/zmq4 失败问题
工作日志,go get -v -x github.com/pebbe/zmq4 失败问题 笔者因为工作需要使用ZeroMQ,但是在执行go get -v -x github.com/pebbe/zmq ...
- 初级模拟电路:3-9 BJT三极管实现逻辑门
回到目录 BJT晶体管可以实现逻辑门,事实上,在场效应管被发明用于集成电路以前,各种逻辑门芯片中的电路就是用BJT晶体管来实现的.最早人们使用二极管与BJT组合来实现逻辑门,这个称为二极管-晶体管逻辑 ...
- Centos7更新阿里云的yum源
1.进入yum文件夹 cd /etc/yum.repos.d/ 2.下载阿里云源 wget "http://mirrors.aliyun.com/repo/Centos-7.repo&quo ...
- Day5- Python基础5 模块导入、time、datetime、random、os、sys、hashlib、json&pickle
本节目录: 1.模块的分类 2.模块的导入 3.time模块 4.datetime模块 5.random 6.os模块 7.sys模块 8.hashlib 9.json&pickle 一.模块 ...
- js SetTimeout传参问题
今天写代码遇到这样一个问题,先上代码 <!--JS方法--> function textout(obj){ if(opac==60){opac=0;return;}; opac+=10; ...
- celery生产者-消费者
Celery是一个简单,灵活,可靠的分布式系统,用于处理大量消息,同时为操作提供维护此类系统所需的工具. 它是一个任务队列,专注于实时处理,同时还支持任务调度. celery解决了什么问题: 示例一: ...
- SqlServer,Oracle,db2,MySql查询表索引
SqlServer1. 查询表索引 SELECT 索引名称=a.name ,表名=c.name ,索引字段名=d.name ,索引字段位置=d.colid ,c.status FROM sysinde ...