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
2.查看密码,初始化进入
cat /var/lib/jenkins/secrets/initialAdminPassword
3.安装插件 选择第一个默认插件即可
4.设置管理员
5.安装git
yum install git
三.构建job
1.任务名称自取,选择第一个
2.General: 勾选github 填写自己git项目地址
3.源码管理 添加用户凭证 填写git 用户名和密码
4.构建 (springoot jar包形式部署)
选择执行shell,这里我分为2大步骤,
1)git下源码 并切换到工作空间项目根目录执行mvn install打包
2)重新发布项目 先停止项目,再拷贝打好的jar包 ,最后启动项目
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 &
最后保存配置后点击立即构建,产看控制台构建情况慢慢调试即可