做公开网站的步骤,网络广告策划的概念,申请个人网站有什么用,seo优化推广招聘文章目录 前言一、配置SSH-KEY1.1 操作jenkins所在服务器1.2 操作github1.3 验证 二、服务器安装git三、jenkins页面安装maven四、页面配置自动化任务4.1 新建任务4.2 选择4.3 配置参数4.4 配置脚本 五、执行任务5.1 点击执行按钮5.2 填写参数5.3 查看日志 六、查看服务器文件七… 文章目录 前言一、配置SSH-KEY1.1 操作jenkins所在服务器1.2 操作github1.3 验证 二、服务器安装git三、jenkins页面安装maven四、页面配置自动化任务4.1 新建任务4.2 选择4.3 配置参数4.4 配置脚本 五、执行任务5.1 点击执行按钮5.2 填写参数5.3 查看日志 六、查看服务器文件七、部署到远程服务器附加7.1 配置免密7.2 远程部署脚本 总结 前言
jenkins从github等代码平台拉取代码到本地然后在本地进行maven编译打包最后启动微服务jar包。 一、配置SSH-KEY
1.1 操作jenkins所在服务器
在jenkins所在环境里执行
#我使用root用户登录的机器但是Jenkins 以 jenkins 用户运行的
#所以要切换到 Jenkins 用户环境
sudo -u jenkins -s
#生成SSH公钥
ssh-keygen -t ed25519 -C xxxxxxxxxx.com
#查看公钥
cat /var/lib/jenkins/.ssh/id_ed25519.pub1.2 操作github
在设置里新增保存。
1.3 验证
sudo -u jenkins -s
ssh -T gitgithub.com
#成功会打印Youve successfully authenticated二、服务器安装git
dnf install git三、jenkins页面安装maven 因为我安装好了所以Available plugins中搜素看不到。 maven的默认settings文件路径 /var/lib/jenkins/tools/hudson.tasks.Maven_MavenInstallation/maven/conf 默认仓库路径 /var/lib/jenkins/.m2/repository 可以修改settings文件将仓库下载地址改为阿里云等。
四、页面配置自动化任务
4.1 新建任务 4.2 选择 4.3 配置参数 4.4 配置脚本 pipeline {agent anyenvironment {//配置自己的仓库地址REPOSITORY gitgithub.com:xxxx/mySpringCloudStudy.git}tools {maven maven // 引用在 Jenkins 中配置的 Maven 工具名称}stages {stage(拉取代码) {steps {echo 开始拉取代码仓库:${REPOSITORY}分支${branch}echo 删除工作空间目录开始deleteDir()echo 删除工作空间目录结束git branch: ${branch}, url: ${REPOSITORY}echo 结束拉取代码}}stage(编译依赖项目) {steps {echo 编译父工程mySpringCloudStudy开始 ................................//-P prod 选择编译环境没有则删掉sh mvn -P prod -U clean install -DskipTestsecho 编译父工程mySpringCloudStudy结束 ................................}}}
}五、执行任务
5.1 点击执行按钮 5.2 填写参数
选择分支默认master 点击build
5.3 查看日志 success表示成功
六、查看服务器文件
cd /var/lib/jenkins/workspace/test可以看到拉取的代码 可以看到编译好的jar包
七、部署到远程服务器附加
7.1 配置免密
在jenkins服务器执行
sudo -u jenkins ssh-keygen -t rsa -b 2048 -f /var/lib/jenkins/.ssh/id_rsa
cat /var/lib/jenkins/.ssh/id_rsa.pub在远程部署微服务的服务器执行
vim ~/.ssh/authorized_keys
#将jenkins中/var/lib/jenkins/.ssh/id_rsa.pub的内容复制进去保存回到jenkins服务器执行
sudo -u jenkins ssh root10.211.55.110
#如果能够免密登录到远程微服务服务器则表示成功。7.2 远程部署脚本
start.sh
pkill -f bztc-study01-8001-1.0.1-SNAPSHOT.jar || true
nohup /root/jdk-17.0.107/bin/java -jar /opt/bztc-study/bztc-study01-8001-1.0.1-SNAPSHOT.jar /opt/bztc-study/bztc-study01.log 21 jenkins脚本
pipeline {agent anyenvironment {REPOSITORY gitgithub.com:smdai/mySpringCloudStudy.git}tools {maven maven // 引用在 Jenkins 中配置的 Maven 工具名称}stages {stage(拉取代码) {steps {echo 开始拉取代码仓库:${REPOSITORY}分支${branch}echo 删除工作空间目录开始deleteDir()echo 删除工作空间目录结束git branch: ${branch}, url: ${REPOSITORY}echo 结束拉取代码}}stage(编译依赖项目) {steps {echo 编译父工程mySpringCloudStudy开始 ................................sh mvn -P prod -U clean install -DskipTestsecho 编译父工程mySpringCloudStudy结束 ................................}}stage(部署到远程服务器) {steps {echo 开始将 bztc-study01 JAR 包传输到远程服务器并重启服务// 使用 scp 将 JAR 包传输到远程服务器sh # 检查并终止已存在的 bztc-study01-8001-1.0.1-SNAPSHOT.jar 进程#ssh -vvv root10.211.55.110 pkill -f bztc-study01-8001-1.0.1-SNAPSHOT.jar || true# 备份旧的 JAR 包带时间戳ssh root10.211.55.110 mv /opt/bztc-study/bztc-study01-8001-1.0.1-SNAPSHOT.jar /opt/bztc-study/back/bztc-study01-8001-1.0.1-SNAPSHOT.jar.$(date %Y%m%d%H%M%S)# 传输新的 JAR 包到远程服务器scp bztc-study01/target/bztc-study01-8001-1.0.1-SNAPSHOT.jar root10.211.55.110:/opt/bztc-study/# 启动新的 JAR 包并放入后台#ssh root10.211.55.110 nohup /root/jdk-17.0.107/bin/java -jar /opt/bztc-study/bztc-study01-8001-1.0.1-SNAPSHOT.jar /opt/bztc-study/bztc-study01.log 21 ssh root10.211.55.110 sh /opt/bztc-study/start.sh// 检查日志文件是否包含“成功”字样script {def maxWaitTime 30 // 最大等待时间秒def pollInterval 5 // 检查间隔秒def elapsed 0while (elapsed maxWaitTime) {def result sh(script: ssh root10.211.55.110 grep -q \成功\ /opt/bztc-study/bztc-study01.log || echo not_found,returnStdout: true).trim()if (result ! not_found) {echo 远程部署完成服务已成功启动break}if (elapsed maxWaitTime - pollInterval) {error 服务重启失败未检测到“成功”字样}sleep pollIntervalelapsed pollInterval}}}}}
}总结
如果日志中出现异常则需具体问题具体分析。