Jenkins打包推到远程服务器部署以及遇到的问题

  • 官网下载WAR包
  • 配置java环境,启动 : java -jar jenkins.war
  • 登录首页 按照提示查找密码登录,设置用户名。
  • 下一步提示下载插件,这时候先别点下载。更换jenkins 镜像地址
1
2
3
4
5
6
#关闭jenkins进程,jenkins目录 war 启动 目录:/root/.jenkins/updates/default.json

sed -i 's/http:\/\/updates.jenkins-ci.org\/download/https:\/\/mirrors.cloud.tencent.com\/jenkins/g' $JENKINS_HOME/updates/default.json

# 如果上边的命令updates.jenkins-ci.org 找不到, 换成 updates.jenkins.io
然后启动重新进入页面,下载插件,速度起飞

  • 配置各种环境,首页 Manage Jenkins => Global Tool Configuration 需要运行什么配置什么,这个网上搜一大堆

  • 我这里使用的目的是实现本地打包,推送到远程服务器发布运行。安装远程发布插件
    在这里插入图片描述

  • 配置远程服务器连接信息 Manage Jenkins =》System Configuration,两种方式(密码或者密钥)

    账户密码连接

在这里插入图片描述

密钥连接

在这里插入图片描述

密钥生成方式,在远程目标服务器上生成
输入命令: ssh-keygen ,按照提示一直Enter键到底,按到如图所示为止

在这里插入图片描述

1:在 .ssh 目录下会生成私钥和公钥
2:复制公钥改名authorized_keys 命令:cp id_rsa.pub authorized_keys
3:把私钥内容复制填写到上图 Key 的文本框里,测试 success搞定!
  • 新建任务或者先创建试图(右箭头+号)再创建item,相当于分组,默认创建就在ALL里面。

在这里插入图片描述

创建任务,构建一个Maven项目

在这里插入图片描述

配置GIT连接地址,用户名信息。

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

下图是远程推送关键步骤 注意详细看

name:就是前几步配置的ssh 那个自定义的名字,下拉框,可以看得到
Source files: 源文件,这个路径,举个例子吧:比如我这个jar 在jenkins的工作空间位置是:.jenkins/workspace/test-dt-service-member/dt-member/dt-member-service/target/dt-member-service-1.0.jar,这里这个地址填写:dt-member/dt-member-service/target/*.jar
Remove prefix:上传到目标服务器时,需要移除jar包之前的路径,上边source file写的是dt-member/dt-member-service/target/*.jar,这里移除前缀就是dt-member/dt-member-service/target
Remote directory:上传到目标服务器的那个目录下,之前ssh配置信息的是/data, 这里如果写个test,那么文件就会上传到目标服务器的 /data/test 下
Exec command: 填写执行的脚步命令

在这里插入图片描述

以上信息配置好,直接build 测试一下

可能会出现的问题:

1:Transfers 0 file ,检查上边提到的几个关于文件路径的问题
2:在执行脚本的过程中 jenkins 进程不会中断,一直打log 日志,把上图的高级设置打开,把下边选项勾上

在这里插入图片描述

3:Jenkins 在构建过程中,如果脚本里繁衍出来其他进程,Jenkins在脚本执行完会杀掉所有进程.比如 我运行一个 sh start.sh ,这个脚本里有一行 java - jar ***.jar 的命令用来启动项目 .这个时候你会发现Jenkins 已经执行完但是项目没启动成功. 只需要在启动脚本上加 nohup 就可以了 nohup sh start.sh

jenkins执行脚本不退出,参考这个大佬