Jenkins

本文详细介绍了如何配置Jenkins实现从git服务器更新自动触发构建,包括Jenkins的安装,配置连接到远程服务器,新建自动化构建project,以及前端、后端的自动化部署流程,重点在于使用gogs webhook、Publish Over SSH插件以及shell脚本进行自动化部署。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、安装:

1、

wget -O /etc/yum.repos.d/jenkins.repo http://pkg.jenkins-ci.org/redhat/jenkins.repo

rpm --import https://jenkins-ci.org/redhat/jenkins-ci.org.key

yum install -y jenkins

2、

 vi /etc/sysconfig/jenkins

# 修改端口号:
JENKINS_PORT="8088" 

3、

systemctl start jenkins.service 

4、打开浏览器,输入ip:port,等待初始化完成,输入密码:

#查看密码
 cat /var/lib/jenkins/secrets/initialAdminPassword

5、安装推荐的插件
插件安装
6、创建账号输入密码,完成


二、配置git服务器更新后自动触发Jenkins构建

1、安装gogs(git服务器)插件
管理-》插件管理
点击可用的标签页,输入gogs搜索,点击安装,安装后在页面点击restart

2、进入git服务器gogs某个git仓库的页面,点击右上角“设置”,点击“webhooks”,添加一个url:

http://192.168.1.100:8088/gogs-webhook/?job=test

如果改了密码,输入secret

点击右下角的 测试推送 ,Jenkins就会自动构建一个版本。


三、Jenkins配置连接到远程服务器(跑代码的服务器)

先安装插件:搜索安装: Publish Over SSH
在本地服务器执行:

ssh-keygen -f rsakey

输入密钥passphrase,回车

生成的rsakey是密钥,rsakey.pub是公钥

把rsakey.pub内容复制到远程服务器的vi ~/.ssh/authorized_keys里面,并放开远程服务器的远程登录权限。

点击系统管理 -> 系统设置 -> 找到 Publish Over SSH 配置项:

输入passphrase和rsakey密钥内容,添加远程服务器,点击测试,保存


四、新建自动化构建project

配置:

  1. Gogs Webhook(来自于Gogs 插件)
    Use Gogs secret选项勾上表示git服务器的Webhook调用Jenkins需要输入secret(默认是用户密码)。
    Disable this project选项勾上表示git仓库更新操作不会触发该project的构建。
    webhook

  2. 配置从git仓库拉取更新
    选择git,输入仓库地址,需要账号密码就加上,默认是master分支:
    git仓库

  3. 构建的触发规则Trigger
    在什么情况下触发构建,是按时间间隔还是其他project构建好,等等
    trigger

  4. 构建环境
    Send files or execute commands over SSH after the build runs:这个表示在构建之后,执行向指定远程服务器发送文件或者在远程服务器执行脚本命令
    add timestamps to the Console Output表示构建控制台的日志加上时间戳
    构建环境

  5. 选择构建方式(shell命令还是其他script脚本等等)
    在Jenkins服务器上执行的构建


静态文件构建

1、直接选择

Send files or execute commands over SSH after the build runs

选择上面Publish Over SSH 插件添加好的某个远程服务器,
Source files选项是相对于project workspace的,输入**/*表示所有目录下的所有文件
Remote directory选项是配置的远程服务器相对路径(或者服务器的绝对路径?)
Exec command选项是在文件传输完成后,在远程服务器执行的脚本命令。

前后端分离,前端文件构建

安装nodeJs插件


自动部署springboot

Jenkins 通过shell脚本调用mvn 命令的时候,是从/usr/bin 文件夹中找命令的,这个时候需要做个软链接

ln –s /opt/maven/bin/mvn /usr/bin/mvn  

新建自由风格的project

配置git源,自动从git拉取文件

Build

  • Execute shell
    Command
mvn clean package

Post-build Actions

  • Send build artifacts over SSH
    SSH Publishers
    SSH Server
    Name 远程服务器ip

    Source files target/*.jar

    Remove prefix target/

    Remote directory /opt/web/

    Exec command

cd /opt/web/
jar_name=$(ls |grep .jar)
ps -ef | grep $jar_name | grep -v grep | awk '{print $2}' | xargs kill -9
java -jar $jar_name  >/dev/null &

部署脚本:

打包:

clean package  -Dmaven.test.skip=true

去掉springboot中的jar包:

cd /var/lib/jenkins/workspace/www.a.com-java-home/target/
jar xf home-1.0.jar 
rm -rf BOOT-INF/lib
rm -rf home-1.0.jar
jar cfM home-1.0.jar BOOT-INF org META-INF
rm -rf BOOT-INF org META-INF

备份下服务器上的jar(为了快速恢复。使用软链接更好,不用复制。):

cd /opt/web/ 
[ -f home-1.0.jar ] && mv -f home-1.0.jar  home-1.0.bak

把不含依赖的jar上传到服务器,合并依赖jar包,杀死进程,启动应用,查看日志输出:

cd  /opt/web/
jar uf0 home-1.0.jar BOOT-INF
ps -ef | grep home-1.0.jar | grep -v grep | awk '{print $2}' | xargs kill -9
echo "search home-1.0.jar again..."
ps -ef | grep home-1.0.jar
sleep 0.5
nohup java -jar home-1.0.jar &
sleep 0.5
echo "+++++++++++++starting+++++++++++++++++++"
tail -f nohup.out &  sleep 15
echo " ===============successed====================="
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值