集成安装6 jenkins构建发布 soa服务 和 web项目
OK 前面已经把直接需要构建完成的项目构建完成并发布到私有库中去了,那接下来就是需要构建bhz-sys-service (SOA服务) 和bhz-sys(web服务)项目了(这俩个工程和之前的区别是需要部署到其他节点上去 才能使其能够运行起来)
1、首先建立一个bhz-sys-service项目(SOA服务 部署到 156 环境),修改4处 结果看 :
可以先保存一看看看,保存后 可以看到上级项目,等待 service自动构建项目:
然后开始构建bhz-sys web包 ,修改处跟 service差不多,就是少了触发依赖构建,保存,然后等待自动构建。
2、到目前为止,我们现在己经对所有的项目进行构建成功,但足我们希望bhz-sys-service bhz-sys 能发布到远程指定的服务器上,那么就需要进行设置一下 ssh远程发布 。点击系统管理、系统设置:
3、首先配置下SSh site 设置 hostname、port、username、password。 前面已经安装好 ssh 等插件。
192.168.74.156(SOA服务器 需要发布到几台SOA服务器上就需要配置几个 这里演示一台 )、
192.168.74.155(web服务器 需要发布到几台web服务器上就需要配置几个 这里演示一台 )都要进行配置。
点击右下方 测试连接,提示连接成功即可
那么现在 soa 和 web 服务器的 ssh remote 配置完毕。
下面我们进行设置Publish over ssh,直接点击增加server
设置内容如下:我们的SOA服务部署到 192.168.74.156 上,weib服务器部署到 192.168.74.155 上,
需要输入部署服务器的名称、Pi地址、一个部署的基础目录、密码 测试连接是否成功
暂时先不管代理设置,直接测试连接
|
|
接着测试连接是否成功。不成功就检查下配置吧。 最后点击保存。
那么我们现在己经有1个部署SOA服务的节点和1个部署web应用的节点了!(正常的环境肯定不是一个节点 记得不要漏掉)
4、OK 我们现在需要进行部署一下bhz-sys-service,之前己经进行过 手工部署,现在要使用Jenkins帮我们进行部署这个服务,首先第一步记启动dubbo服务,启动dubbo前 首先要把zookeeper启动起来 那么启动zookeeper集群, 之前手工部署的时候,是把服务部署到了/usr/Iocal/workspace下面。 现在先把 workspace 文件夹删除,重新来部署
5、在 156 节点上创建项目文件夹。
命令:mkdir -p /usr/local/workspace
但是我们需要自动化部署,所以这个文件夹我们需要使用shell脚本进行建立。如下操作:那么现在要我们使用Jenkins完成。进入bhz-sys-service的job的修改配置内容:
点击进入,加入 ssh 脚本如下:
#!/bin/sh
## exec shell name
EXEC_SHELL_NAME=sys-service\.sh
## service name
SERVICE_NAME=bhz-sys-service
## service dir
SERVICE_DIR=/usr/local/workspace/sys-service
mkdir $SERVICE_DIR
cd $SERVICE_DIR
##rm -rf logs 测试的时候可以删除 正常是不应该删除的
mkdir logs
下一步 选择Send build artifacts over SSH,如图所示:
=====================需要上传过去的 sys-service.sh 脚本=========================
#!/bin/sh
## java envexport JAVA_HOME=/usr/local/java/jdk1.7.0_40
export JRE_HOME=$JAVA_HOME/jre
## exec shell name
EXEC_SHELL_NAME=sys-service\.sh
## service name
SERVICE_NAME=bhz-sys-service
SERVICE_DIR=/usr/local/workspace/sys-service
JAR_NAME=$SERVICE_NAME\.jar
PID=$SERVICE_NAME\.pid
cd $SERVICE_DIR
case "$1" in
start)
nohup $JRE_HOME/bin/java -Xms256m -Xmx512m -jar $JAR_NAME >/dev/null 2>&1 &
echo $! > $SERVICE_DIR/$PID
echo "#### start $SERVICE_NAME"
;;
stop)
kill `cat $SERVICE_DIR/$PID`
rm -rf $SERVICE_DIR/$PID
echo "#### stop $SERVICE_NAME"
TEMP_PID=`ps -ef | grep -w "$SERVICE_NAME" | grep -v "grep" | awk '{print $2}'`
if [ "$TEMP_PID" == "" ]; then
echo "#### $SERVICE_NAME process not exists or stop success"
else
echo "#### $SERVICE_NAME process pid is:$TEMP_PID"
kill -9 $TEMP_PID
fi
;;
restart)
$0 stop
sleep 2
$0 start
echo "#### restart $SERVICE_NAME"
;;
*)
## restart
$0 stop
sleep 2
$0 start
;;
esac
exit 0
===========================需要执行的 shell脚本===============================================
#!/bin/sh
## exec shell name
EXEC_SHELL_NAME=sys-service\.sh
## service name
SERVICE_NAME=bhz-sys-service
## service dir
SERVICE_DIR=/usr/local/workspace/sys-service
cd $SERVICE_DIR
##赋予权限
chmod 777 $EXEC_SHELL_NAME
执行 脚本需要有相应的jar包, 所以还需要添加jar包
jenkins构建完项目后的路径:/usr/local/JenkinsHome/workspace/bhz-sys-service/target
#!/bin/sh
## exec shell name
sh /usr/local/workspace/sys-service/sys-service.sh
保存 SOA服务 设置自动化部署完成。 等待构建项目
构建成功后,查看 dubbo管控台 可以看到我们发布的soa服务 有对内提供的 20880 服务和对外的rest 8888 服务
同时,通过请求,查看 能否正常提供服务
下面部署 web 服务,也就是 sys-web工程
1、 修改 sys-web 的job配置
## java env
export JAVA_HOME=/usr/local/java/jdk1.7.0_40
export JRE_HOME=$JAVA_HOME/jre
## restart tomcat
/usr/local/tomcat/bin/shutdown.sh
sleep 5
rm -rf /usr/local/tomcat/webapps/bhz-sys
/usr/local/tomcat/bin/startup.sh
然后要实现 使用 shell脚本重启tomcat服务,无非就是先停止tomcat 然后删除 webapps下面的 bhz-sys 项目,最后启动 tomcat服务。保存job配置
设置 tomcat 的jvm 参数 避免 内存不够
命令:vim /usr/local/tomcat/bin/catalina.sh
添加内容:JAVA_OPTS='-Xms256m -Xmx512m'
OK 重新构建一下bhz-sys项日:构建成功如下图所示:
OK,最后可以发现 bhz-sys应用已经启动完毕, 进行访问地址,如下:
http://192.168.74.155:8080/bhz-sys/sysindex.html
到此为止,我们现在已经实现了持续集成的工作,我们现在的环境才算彻底的搭建成功!
如果有新的 模块加入,基本按照前面的步骤去 建立 job ,让jenkins自动构建和发布项目 就好了。
项日启动步骤:
首先开启157服务器:Apache+svn+jenkins+Maven+Nexus服务
然后开启zookeeper服务:用于SOA Dubbo 155 156 14=57 三个节点!
然后我开启集群的SOA服务(此处是单节点 156)和WEB服务(此处是单节点 155)即可!