• jenkins- 自动部署java包至远程服务器


    一、安装jenkins

    参考教程:https://www.cnblogs.com/yanjieli/p/10606674.html

    假设jenkins安装路径:/usr/local/jenkins 

    后续新建item都会在这个路径的workspace目录下:/usr/local/jenkins/workspace/项目名称

    二、安装插件并配置SSH

    系统管理 -> 插件管理 -> 可选插件,搜索Publish Over SSH 进行下载

     安装完成后,进入系统管理 ->系统配置(上图第一个),鼠标滑到下面,找到如下页面,配置ssh服务器:输入服务器名称、IP、用户名、密码、发布项目得默认路径

     点击【高级】,勾选 ‘User password’,并且输入远程服务器密码,点击 ‘Test Configuration’,成功。

    三、全局工具配置

    1.maven路径:jenkins上maven的settings.xml文件所在路径

     2.JDK路径:jenkins上jdk安装路径

     3.maven安装路径:

     4.git如下配置即可

     三、新建任务

    点击左侧菜单栏:新建item。项目名称:test

    如下图所示,如果没有 ‘构建一个maven项目’,需要下载插件(系统管理 -> 插件管理 -> 可选插件,搜索Maven Integration 进行下载)。如果你想copy一个已经存在的任务,在复制那个输入框输入你要复制的任务就ok了。

    安装依赖包:javadoc,自动安装若失败,手动下载

    http://updates.jenkins-ci.org/download/plugins/javadoc/1.4/javadoc.hpi

    http://updates.jenkins-ci.org/download/plugins/maven-plugin/2.14/maven-plugin.hpi

    然后在高级安装中上传(可以更改升级站点URL源:http://mirror.esuni.jp/jenkins/updates/update-center.json或者https://mirrors.tuna.tsinghua.edu.cn/jenkins/updates/update-center.json)。

    参考:https://www.cnblogs.com/robert-zhang/p/8571332.html、https://blog.csdn.net/u013019701/article/details/103649773

    点击【确定】按钮,进入任务配置页面。

    基本配置:

    勾选This project is parameterized,选择git parameter(需要安装插件Git Parameter),输入变量名:branch ,参数类型:分支或标签, 默认值:master

     源码管理:

    勾选Git,输入项目URL,添加Git账号/密码(有权限拉取代码的账号),在Branches to build中填入刚才的变量名,注意要加$

     BUILD

    如果是多个项目的话,最好指定相应项目的POM文件路径:/usr/local/jenkins/workspace/test/java/estate-service/pom.xml

    这里根据项目路径,输入相对路径即可。

    打包命令:clean package -Dhttps.protocols=TLSv1.2 -Dmaven.test.skip=true

    包文件传送到远端

    方法一:在post-steps中over ssh,如下图

     方法二:添加构建后操作,如下图

     选择SSH Server:Name下拉菜单选择上面添加得SSH服务器

    Transfer设置:

    Source files:java/estate-service/target/*.jar  

    目标文件:即需要从jenkins传输得jar包,打包成功后,会在该路径(/usr/local/jenkins/workspace/test/java/estate-service)下生成target文件夹,里面的jar包就是我们需要的。
    Remove prefix:java/estate-service/target/ 需要去掉的前缀,也就是过滤掉不要的文件夹,我只要jar,所以把它的上级全部都去掉了。
    Remote directory:远程服务器的发布路径,即jar包要发到哪个路径去,注意:实际路径是在系统配置中 SSH Server中配置的 remote dictionary + 这里配置的,我就发到当前路径,所以这里我就输入./
    Exec command:文件发到指定服务器后,要执行的 shell 脚本,可以直接写在下面,也可以 sh /aa.sh 这样调用。注意,所有的路径都要是绝对路径,不然会找不到执行文件

    #!/bin/sh
    ps -ef|grep -v 'grep' |egrep "estate-service.jar"|awk '{system("kill -9 "$2)}'
    
    echo -------------------------------------------
    echo start server
    echo -------------------------------------------
    
    # jar的部署地址
    export CODE_HOME="/acow/springboot"
    
    #所有项目日志统一在此根目录, 子目录会根据logback.xml生成
    export LOG_PATH="/acow/logs"
    
    # 【需要按环境调整】apollo配置环境,开发、测试、生产是不同的。
    export ENV=DEV
    export APP_ID=estate-service
    
    #【按实际调整】authfunc-service服务的端口
    export Server_Port=9900
    
    # JVM启动参数
    export JAVA_OPTS="-server -Xms64m -Xmx128m"
    # -Dserver.port=$Server_Port  -Dapollo.cacheDir=$apollo_cache -Dapollo.meta=$apollo_meta -Dspring.cloud.nacos.discovery.namespace=$nacos_discovery_namespace -Dspring.cloud.nacos.discovery.group=$nacos_discovery_group -Dspring.cloud.nacos.discovery.server-addr=$nacos_discovery_server
    export JVM_OPTS="-Dlog.path=$LOG_PATH -Denv=$ENV -Dapp.id=$APP_ID"
    
    nohup java $JAVA_OPTS $JVM_OPTS -jar $CODE_HOME/$APP_ID.jar >$LOG_PATH/$APP_ID/project.log  2>&1 &
    
    echo ----- started ---

    保存、构建
    至此,配置就完成了,我们点击保存,然后返回项目所在页面,单击build with parameter,选择分支,点击【开始构建】。

     点击构建之后,我们可以在左下角 ‘构建队列’ 中看到本次构建进度,通过控制台输出,可以看到构建的详情。

    看到如下日志输出,表示发布成功。可以到远程服务器发布路径下检查一下。

     另外补充一点:如果配置文件有改动,怎么办?可以在构建前将配置文件手动修改好,再通过pro_steps将修改后的配置文件更新到jenkins的源码目录下:

  • 相关阅读:
    毕设随笔 ssm框架搭建
    ubuntu18.04安装mysql与workbench
    Ubuntu18.04安装破解Intellij IDEA
    快慢指针--快乐数判断
    二维数组,深度优先算法 -- 岛屿数量
    动态规划--打家劫舍
    大数据课程笔记 1
    递归--上下翻转二叉树
    python课程设计笔记(五) ----Resuests+BeautifulSoup (爬虫入门)
    Git Learning Part III
  • 原文地址:https://www.cnblogs.com/july-1016/p/14115700.html
Copyright © 2020-2023  润新知