文章目录
Jenkins是一款开源 CI&CD 软件,用于自动化各种任务,包括构建、测试和部署软件。
Jenkins 支持各种运行方式,可通过系统包、Docker 或者通过一个独立的 Java 程序。
- Jenkins官方中文文档:https://www.jenkins.io/zh/doc/
- Jenkins官网:https://www.jenkins.io/doc
jenkins需要java环境,注意不同的jenkins版本对应的java版本要匹配,否则无法运行。
运行Jenkins需要以下Java版本:
不要下载低版本的了,很多插件不支持,最低建议JDK11
支持的Java版本长期支持(LTS)版本Weekly releaseJava 11, Java 17, or Java 212.426.1 (November 2023)2.419 (August 2023)Java 11 or Java 172.361.1 (September 2022)2.357 (June 2022)Java 8, Java 11, or Java 172.346.1 (June 2022)2.340 (March 2022)Java 8 or Java 112.164.1 (March 2019)2.164 (February 2019)
安装
安装JDK
# 更新apt
$ sudoapt-get update
# 安装# sudo apt-get install openjdk-8-jdk
$ sudoapt-getinstall openjdk-11-jdk
# 查看JAVA版本
$ java-versionwhichjava# 一般路径在 /usr/lib/jvm/java-11-openjdk-amd64
如果存在多个jdk版本可以按照下面方式切换。
sudo update-alternatives --configjavasudo update-alternatives --config javac
安装Maven
sudoaptinstall maven
mvn -vwhereis maven
maven目录一般在/usr/share/maven
配置中央仓库
修改maven的setting指向阿里云
vim /usr/share/maven/conf/settings.xml
mirrors下添加mirror
<mirror><id>alimaven</id><name>aliyun maven</name><url>https://maven.aliyun.com/repository/public</url><mirrorOf>*</mirrorOf></mirror>
安装Git
sudoapt-getinstallgitwhichgitwhereisgit
NodeJS安装(可选)
不安装vue等前端项目则不需要安装这个。
sudoapt-getinstall-y nodejs
npm config set registry https://registry.npm.taobao.org
whereisnodenode-vnpm-v
安装Jenkins
安装Jenkins有多种方法,命令和下载war包方式等。
**1.**下载 Jenkins,注意跟JDK对应的版本才行。
JDK11,我下载的这个2.440.1版本
清华大学镜像下载更快:https://mirrors.tuna.tsinghua.edu.cn/jenkins/war-stable/
# 用这个也很快,只需要改路径中的版本即可wget https://mirrors.jenkins.io/war-stable/2.440.1/jenkins.war wget https://mirrors.tuna.tsinghua.edu.cn/jenkins/war-stable/2.440.1/jenkins.war
2.打开终端进入到下载目录.
3.运行命令
java -jar jenkins.war --httpPort=8999
.
4.打开浏览器进入链接
http://localhost:8999
.
注意:如果有nginx反向代理jenkins需要按照下面处理。
希望请求https://www.example.com/jenkins到jenkins,则
--prefix=/jenkins
参数必须包含在 jenkins命令行参数中。
即nginx配置为
location /jenkins { proxy_pass http://127.0.0.1:8999; }
启动命令为
java-jar jenkins.war --httpPort=8999--prefix=/jenkins
浏览器访问地址为:
https://www.example.com/jenkins
5.复制初始密钥进行解锁Jenkins
cat /root/.jenkins/secrets/initialAdminPassword
# 获取到密钥直接填写到上面然后继续
6.选择安装推荐的插件,然后等待一会儿,插件安装错误不要管它。
一般都是网络或墙的问题导致插件下载安装失败,我们等会儿换个国内的插件源即可。
jenkins版本过低问题的话那就只能升级jenkins版本了。
- 可以在线升级Jenkins的版本(即下载war包)
- 如果是版本过低,打开系统管理即可看到,有提示让自动升级,选择即可
7.点击继续,创建管理员账户,然后一路点点点即可。
配置Jenkins
为Jenkins更换插件源
- 点击Jenkins主页面左侧列表中【系统管理】(Manage Jenkins)
- 点击纠正或者下拉找到【管理插件】(Manage Plugins)
- 选择【高级】(Advanced)选项卡
- 替换最下方【升级站点】中的URL
将
https://updates.jenkins.io/update-center.json
替换为
https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json
这个也行
https://mirror.esuni.jp/jenkins/updates/update-center.json
设置jenkins时区
到用户-设置-用户自定义时区-
Asia/Shanghai
,路径为
/user/laker/configure
安装插件
安装步骤:
- 打开Jenkins的首页,点击“Manage Jenkins”进入管理页面。
- 在左侧导航栏中选择“Manage Plugins”,然后点击“Available”选项卡。
- 在搜索框中输入“Maven Integration”,可以找到Maven插件,点击安装。
- 弹出一个确认框,点击“Install without restart”。
- 安装完成后,点击“Reload Configuration”重新加载Jenkins配置。
系统管理-插件管理-Available plugins
Maven Integration #新建任务发现没有maven的项目,需要去安装这个插件
Publish Over SSH #用于在构建过程中执行一系列远程操作,例如:从远程服务器获取代码、部署应用程序等。
Gitee #可以轻松地与Gitee代码托管平台集成,实现自动化的代码获取、构建和部署。
NodeJS #前端部署才需要
全局工具配置
系统管理-全局工具配置
- jdk:
/usr/lib/jvm/java-11-openjdk-amd64
- git:
/usr/bin/git
- maven:
/usr/share/maven
- nodejs:
/usr/include/node
添加Gitee凭证
要先安装Gitee插件
1. Gitee API 令牌
在系统管理-管理凭证中添加Gitee凭证,根据提示一步步操作即可,非常简单。
- 类型:Gitee API 令牌
用于拉取私有库代码。
2. 用户名密码凭证
- 类型:用户名和密码凭证
- 邮箱和密码
Gitee项目配置
在系统管理-系统配置-新增Gitee 配置
输入:
- 链接名:mall
- Gitee域名URL:https://gitee.com
- 证书令牌:选择上面添加的全局凭证
点击测试链接,会提示成功失败。
点击保存按钮。
如果出现保存出错,请去插件中心,升级所有插件。
部署后端
1.新建任务
2.配置源码管理
- Repo URL:https://xxxx.git。
- 凭证:可以用之前添加的用户名密码凭证,也可以直接点击添加按钮,添加一个凭证。
- 分支:制定能拉取哪些分支。
3.构建触发器
- 选择:Webhook触发构建 - 当仓库有推送代码等事件时触发自动构建。
4.到Gitee中添加WebHook
添加后,会出现测试按钮用于测试发送事件。
5.构建环境
勾选上对应的内容,将去做一些额外的处理,保持默认、
6.Pre Steps
在构建之前可以做的那些操作,在这个选项里面可以去添加一系列的脚本,保持默认。
7.配置编译
Root POM:这个pom,是相对于git的整体的目录的
pom.xml
Goals and options:
clean package -Dmaven.test.skip=true
8.Post Steps
在项目构建完成之后,接下来需要做的内容
- 选择:Run only if build succeeds
脚本内容为:
# 停止当前Spring Boot应用,然后再次部署PID=$(ps-ef|grep laker.jar |grep-vgrep|awk'{ print $2 }')if[!-z"$PID"]thenkill$PIDfi# 一定要带上BUILD_ID=xxx否则下面的nohup没启动成功就被杀掉了BUILD_ID=dontKillMe
nohupjava-jar /root/.jenkins/workspace/laker-springboot/laker-api/target/laker.jar >start.log 2>&1&
点击保存按钮。
9.测试
在Gitee的上点击测试。
我发现这个测试并不能触发jenkins的构建,但是我提交了代码是可以触发的。
然后去jenkins上观察是否触发最新的构建以及构建日志。
版权归原作者 lakernote 所有, 如有侵权,请联系我们删除。