安装
1.安装 Jenkins
-
参考官方文档 www.jenkins.io/doc/book/in…
-
安装对应的 jdk,如果已经安装,则跳过。Jenkins 官网使用 apt 安装,如果没有可以使用 dnf 安装
sudo dnf update -y sudo dnf install java-17-openjdk-devel -y java -version -
根据自己的系统,对应安装,我的是 Rocky 系统,Linux 系统安装都差不多
sudo wget -O /etc/yum.repos.d/jenkins.repo \ https://pkg.jenkins.io/redhat-stable/jenkins.repo sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key sudo yum upgrade # Add required dependencies for the jenkins package sudo yum install fontconfig java-17-openjdk sudo yum install jenkins sudo systemctl daemon-reload
-
使用以下命令使 Jenkins 服务在启动时启动:sudo systemctl enable jenkins
-
使用以下命令启动 Jenkins 服务:sudo systemctl start jenkins
-
使用以下命令检查 Jenkins 服务的状态:sudo systemctl status jenkins
Jenkins 配置与插件
-
浏览器中输入 http://ip:8080/
-
使用 cat /var/lib/jenkins/secrets/initialAdminPassword 查询管理员面膜,然后页面中输入管理员密码
- 如果使用安装推荐的插件,时间挺长,耐心等待安装
-
安装完成根据指引创建管理员用户
-
汉化,来到插件这里,发现汉化插件已经安装,重启 Jenkins 即可:systemctl restart jenkins.service
- 安装后续需要用的插件,SSH、Publish Over SSH
注:这个 ssh 安装要报异常,官方还没解决,直接安装没事
-
配置系统工具
主要配置Publish Over SSH,Jenkins 把项目拉下来打包成 jar 包之后,会将这个 jar 包发送到你指定的目录
-
生成公钥私钥:
# 生成公钥私钥 全程回车就行 会生成在默认的位置 /root/.ssh/id_rsa ssh-keygen -m PEM -t rsa -b 4096 # 将发送到Jenkins服务器 ssh-copy-id -i ~/.ssh/id_rsa.pub root@172.16.253.128 # 查看是否目录 [root@localhost lib]# cd /root/.ssh [root@localhost .ssh]# ll total 20 -rw-------. 1 root root 752 Dec 17 11:47 authorized_keys -rw-------. 1 root root 3243 Dec 17 11:26 id_rsa -rw-r--r--. 1 root root 752 Dec 17 11:26 id_rsa.pub -rw-------. 1 root root 840 Dec 17 11:47 known_hosts -rw-r--r--. 1 root root 96 Dec 17 11:47 known_hosts.old # 查看私钥 复制后面用到 [root@localhost .ssh]# cat id_rsa -
添加全局凭证:右上角-->凭证-->用户-->全局凭证-->add credentials
- 添加Publish over SSH配置:系统管理-->系统配置-->ssh servers-->新增
- 测试成功测保存
全局配置
- 配置 maven,根据自己安装的 maven 选中对应的版本
创建任务
- 创建 Maven 项目
- 源码管理。
这里注意:确认服务器已经安装 git 工具
- 添加凭证,填上git 的用户名密码即可
- 构建环境
-
启动脚本,提供参考
#!/bin/bash # 设置JDK 11路径 export JAVA_HOME_11=/usr/lib/jvm/jre-11 export PATH=$JAVA_HOME_11/bin:$PATH # 应用程序名称和JAR文件路径 APP_NAME="ldj001" JAR_PATH="/usr/java/test/java-1.0-SNAPSHOT.jar" # 请替换为您的JAR文件实际路径 JAR_DIR="/usr/java/test" # Java启动参数 JAVA_OPTS="-Xms256m -Xmx256m" # 检查并杀死现有进程 PIDS=$(ps aux | grep "${JAR_PATH}" | grep -v grep | awk '{print $2}') if [ ! -z "$PIDS" ]; then for PID in $PIDS; do echo "Stopping the running instance of ${APP_NAME} with PID: $PID" kill $PID sleep 1 # 给程序一些时间来处理终止信号 if kill -0 $PID > /dev/null 2>&1; then echo "Process $PID did not terminate gracefully, forcing shutdown." kill -9 $PID fi done fi # 启动新实例 echo "Starting ${APP_NAME} with options: $JAVA_OPTS" nohup ${JAVA_HOME_11}/bin/java $JAVA_OPTS -jar $JAR_PATH --spring.config.location=$JAR_DIR/config/application.yml > $JAR_DIR/app.log 2>&1 & # 输出启动信息 echo "${APP_NAME} has been started." -
打包,然后保存
构建任务
- 点击构建、查看日志
- 第一次构建会下载依赖,会挺久。出现 success 就构建成功了。
提交代码自动部署
- 回到任务配置,构建触发器
- 去 github 设置 webHooks,这里以 gitee 为例
总结
踩了很多坑,包括 jdk、maven、配置问题等等,终于是成功运行了。如果有什么疑问,欢迎大家留言讨论。