linux搭建Jenkins实现自动化部署

一 .安装Jenkins

1.下载 Jenkins官方地址 https://jenkins.io/download/

sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat/jenkins.repo
sudo rpm --import https://pkg.jenkins.io/redhat/jenkins.io.key

2.安装 Jenkins (yum安装Jenkins默认路径为 /var/lib/jenkins
sudo yum install jenkins

3.jenkins的默认设置
 Jenkins会随系统启动而启动。详情参照/etc/init.d/jenkins
 Jenkins会创建一个用户叫做jenkins, 如果你修改了user,则要修修改所属者:/var/log/jenkins,/var/lib/jenkins,/var/cache/jenkins
 如果遇到问题,查看日志/var/log/jenkins/jenkins.log
 配置文件/etc/sysconfig/jenkins
 默认启用8080
4.配置端口

vi /etc/sysconfig/jenkins

默认8080,改成自己想要的端口

JENKINS_PORT="8080"

5.启动和关闭Jenkins

sudo service jenkins start
sudo service jenkins stop

6.配置java maven环境 略 (自行百度配置)

二.进入Jenkins后台

1.打开后台地址(我端口修改成了8888,ip自行替换成自己外网的ip)

http://127.0.0.1:8888

linux搭建Jenkins实现自动化部署

2.查看密码,初始化进入

cat /var/lib/jenkins/secrets/initialAdminPassword

3.安装插件 选择第一个默认插件即可
linux搭建Jenkins实现自动化部署

4.设置管理员
linux搭建Jenkins实现自动化部署

5.安装git

yum install git

三.构建job

1.任务名称自取,选择第一个
linux搭建Jenkins实现自动化部署

2.General: 勾选github 填写自己git项目地址 linux搭建Jenkins实现自动化部署

3.源码管理 添加用户凭证 填写git 用户名和密码
linux搭建Jenkins实现自动化部署

4.构建 (springoot jar包形式部署)
选择执行shell,这里我分为2大步骤,
1)git下源码 并切换到工作空间项目根目录执行mvn install打包
2)重新发布项目 先停止项目,再拷贝打好的jar包 ,最后启动项目
linux搭建Jenkins实现自动化部署
stop.sh 找到jar包的进程并杀死

#!/bin/sh
echo "查找进程id"
pid=`ps -ef | grep webStencil-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

replace.sh 替换新jar包

#!/bin/sh
echo "先删除/home/m2/script的jar"
cd /home/m2/script/app
if [ -f /home/m2/script/app/appStencil-0.0.1-SNAPSHOT.jar ]; then
  echo "文件存在删除"
  rm -rf appStencil-0.0.1-SNAPSHOT.jar
fi
echo "删除成功"

echo "开始复制jar到/home/m2/script"

cp /var/lib/jenkins/workspace/app/target/appStencil-0.0.1-SNAPSHOT.jar /home/m2/script/app

echo "复制成功"

start.sh 启动jar

#!/bin/sh
echo "jar方式启动"
chmod 777 /home/m2/script/web/webStencil-0.0.1-SNAPSHOT.jar
cd /home/m2/script/web
java -jar webStencil-0.0.1-SNAPSHOT.jar
echo "启动成功"

注意点:
1 默认jenkins服务以jenkins用户运行,这时在jenkins执行ant脚本时可能会发生没有权限删除目录,覆盖文件等情况。可以让jenkins以root用户运行来解决这个问题。

1).将jenkins账号分别加入到root组中

gpasswd -a root jenkins

2).修改/etc/sysconfig/jenkins文件中,

JENKINS_USER=root
JENKINS_GROUP=root

修改为root权限运行 重启服务,搞定

2 .启动jar包的时候 如果直接 sh start.sh启动后进程就会被杀死

BUILD_ID=dontKillMe nohup /home/m2/script/web/start.sh &	

最后保存配置后点击立即构建,产看控制台构建情况慢慢调试即可