准备环境
我的是maven 工程,代码在gerrit 上,需要git,微服务框架springboot
所有在主机上需要先装好:jdk1.8,maven,git,tomcat


1. 在官网(https://jenkins.io/index.html)直接下载一个war包,然后直接放到tomcat的webapps目录下,启动tomcat就可以了


2. 配置jenkins环境:jdk、maven、git

系统配置->Global Tool Coniguration



3. 安装插件

系统管理->管理插件
有在线方式  和 离线方式
在线方式:
点击 可选插件 选择你需要安装的插件

离线安装(连不了网的情况):
在http://updates.jenkins-ci.org/download/plugins/ 下载插件
举例git插件,搜索git,选择版本,下载git.hpi文件
在高级那里上传进行安装

4. git 配置


在linux 上生成id-rsa.pub,具体可以参考linux安装git中配置(里面的邮箱,换成jenkins里面crtical的用户名哦。否则会有问题)


5.部署到tomcat中

1. 安装插件: Deploy to container plugin
2. tomcat 配置修改
在tomcat目录conf文件夹下tomcat-users.xml


  <role rolename="manager-gui"/>
  <role rolename="admin"/>
  <role rolename="manager"/>
  <role rolename="manager-script"/>
  <user username="jacky" password="admin" roles="manager-gui,admin,manager,manager-script"/>



3. 新建任务中配置
构建后操作中,选择Deploy wae/ear to a container

6. 部署springboot 
Post steps 选择Run only if bulid success 
选择execute shell
以下是脚本参考以下
大致意思:
1> 停止服务
2> jenkin 打包的jar 移动到部署目录。
3> 到部署目录 ,启动
springboot 启动注意  BUILD_ID=dontKillMe nohup /deploy_cmp_script/startup.sh &

重点是脚本
#!/bin/bash 
cd /deploy_cmp_script
echo "Execute shell Start"
sh stop.sh
sh replace.sh
echo "Execute shell Finish"
chmod 777 /deploy_cmp_script/startup.sh
BUILD_ID=dontKillMe nohup /deploy_cmp_script/startup.sh &
三个文件内容
==================stop.sh===start=======================
#!将应用停止
#!stop.sh
#!/bin/bash
cd /deploy_cmp_script
echo "Stopping SpringBoot Application for CMP"
ls
pid=`ps -ef | grep cmp-0.0.1-SNAPSHOT.jar | grep -v grep | awk '{print $2}'`
if [ -n "$pid" ]
then
#!kill -9 强制终止
   echo "kill -9 的pid:" $pid
   kill -9 $pid
fi
==================stop.sh===end =======================


==================replace.sh===start=======================
jar_name=cmp-0.0.1-SNAPSHOT.jar
#!编译好的jar包存放地址
file_path=~/.jenkins/workspace/cmp/target
#!将现有的jar备份后,将新的jar包替换
file="/deploy_cmp/cmp-0.0.1-SNAPSHOT.jar"
if [ -f "$file" ]
then
mv /deploy_cmp/cmp-0.0.1-SNAPSHOT.jar /deploy_cmp_backup/cmp-0.0.1-SNAPSHOT.jar.`date +%Y%m%d%H%M%S`
fi
cp ~/.jenkins/workspace/cmp/target/cmp-0.0.1-SNAPSHOT.jar /deploy_cmp
==================replace.sh===end =======================


==================startup.sh===start=======================
ehco "授予当前用户权限"
chmod 777 /deploy_cmp/cmp-0.0.1-SNAPSHOT.jar
echo "执行....."
cd /deploy_cmp
java -jar cmp-0.0.1-SNAPSHOT.jar
echo "**********************cmp on  jenkins started*************************"
==================startup.sh===end =======================


6、publish over ssh 插件介绍(我没有用到,记录一下)


安装时候遇到问题
1. java.net.UnknownHostException: host01: host01: Name or service not known
jenkins 启动的时候,控制台报错
java.net.UnknownHostException: host01:host01: Name or service not known
       at java.net.InetAddress.getLocalHost(InetAddress.java:1473)
        atcom.nse.cmccdm.hwtools.snmptrap.TrapThread.init(TrapThread.java:59)


解决方法:
修改/etc/hosts文件
操作:1、cd etc ——2、vi hosts ——3、在最后一行添加如下所示;
127.0.0.1 主机名 localhost.localdomain localhost
或是
127.0.0.1 主机名 
主机名是新加的,原来没有,保存,问题解决。


注意: jdk 使用哪个? 

jenkins里面有配置jdk路径,主机上又用一套jdk,就会有问题。确保使用一套java的路径




主机名的获取uname -an


Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐