Jenkins-安装Publish over SSH插件并配置(用于自动部署Spring Boot应用)

本文介绍如何使用PublishOverSSH插件进行自动化部署,包括配置Jenkins、上传war包或Springboot项目到远程Linux服务器上的指定目录,以及远程执行脚本重启tomcat等关键步骤。

应用场景
Publish Over SSH 不是将war包发布到tomcat容器下,而是先利用该插件将build好的文件上传到远程linux 的指定目录下,然后利用该插件远程执行脚本将指定目录下的文件复制到tomcat的执行文件夹下,再利用脚本远程重启tomcat即可 。此插件用于部署web项目到tomcat和Spring boot项目都可以。
发布环境要求
远程 tomcat部署在linux上,不支持 windows上远程发布
windows使用powershell工具发布Springboot项目。

  1. 安装插件
    在这里插入图片描述
    在这里插入图片描述

  2. 配置插件
    在这里插入图片描述
    在这里插入图片描述
    配置主机名 密码IP
    在这里插入图片描述
    在这里插入图片描述
    测试连接
    在这里插入图片描述

  3. 构建项目时候的配置如下:
    在这里插入图片描述
    Exec command中是要通过SSH去服务器上执行的脚步以及脚本文件;
    Source files配置:target/xxx-0.0.1-SNAPSHOT.jar 项目jar包名
    Remove prefix:target/
    Remote directory: 代码应用服务器的目录地址,
    Exec command:应用服务器对应的脚本。

特此鸣谢:
Jenkins入门教程之安装Publish over SSH插件并配置(六)用于自动部署Spring Boot应用

### Jenkins 和 GitLab 自动部署教程 Jenkins 和 GitLab 的自动部署流程可以通过配置插件和编写脚本来实现。以下是详细的说明,涵盖从环境准备到具体步骤的完整过程。 #### 1. 环境准备 在开始之前,确保安装了以下工具完成基础配置- **Java**:Jenkins 需要 Java 环境支持。例如,可以将 Java 安装在 `/opt/module/jdk1.8.0_271`[^2]。 - **Maven**:用于构建 Spring Boot 项目。Maven 可以安装在 `/opt/module/apache-maven-3.6.3`。 - **Git**:版本控制工具,路径为 `/usr/bin/git`。 - **Docker**:如果使用 Docker 部署 Jenkins 或 GitLab,需要安装 Docker 启动服务[^3]。 #### 2. 启动 Jenkins 和 GitLab ##### 2.1 使用 Docker 启动 GitLab 通过 Docker 部署 GitLab 是一种常见的方法。运行以下命令启动 GitLab: ```bash sudo docker run --detach --hostname <your-hostname> \ --publish 9443:443 --publish 9980:80 --publish 9922:22 \ --name gitlab --restart always \ --volume /home/srv/gitlab/config:/etc/gitlab \ --volume /home/srv/gitlab/logs:/var/log/gitlab \ --volume /home/srv/gitlab/data:/var/opt/gitlab \ gitlab/gitlab-ce ``` 此命令会将 GitLab 的数据存储在主机的指定目录中,绑定端口[^3]。 ##### 2.2 使用 Docker 启动 Jenkins 同样可以通过 Docker 部署 Jenkins。运行以下命令: ```bash docker run -p 8090:8080 -p 50000:5000 --name jenkins \ -u root --restart=always \ -v /mydata/jenkins_home:/var/jenkins_home \ -d jenkins/jenkins:lts ``` 访问 `http://<your-host>:8090` 登录 Jenkins,首次登录时需要输入管理员密码[^4]。 #### 3. Jenkins 插件配置 为了实现与 GitLab 的集成,需要安装以下插件- **Git Plugin**:用于连接 GitLab 仓库。 - **Pipeline Plugin**:用于定义 CI/CD 流程。 - **Publish Over SSH Plugin**:用于将构建结果推送到远程服务器。 - **Qy Wechat Notification Plugin**(可选):用于企业微信通知[^1]。 安装插件后,在 Jenkins 的全局工具配置中设置 Maven 和 JDK 的路径。 #### 4. 创建 Jenkins Pipeline ##### 4.1 配置源码管理 在 Jenkins 中创建一个新的 Pipeline 任务,选择 GitLab 作为源码管理工具。填写 GitLab 仓库地址和分支信息。 ##### 4.2 编写 Jenkinsfile 在项目的根目录下创建一个 `Jenkinsfile` 文件,定义 CI/CD 流程。以下是一个简单的示例: ```groovy pipeline { agent any stages { stage('Checkout') { steps { git branch: 'main', url: 'http://gitlab.example.com/user/repo.git' } } stage('Build') { steps { sh 'mvn clean package -DskipTests' } } stage('Deploy') { steps { sshPublisher( publishers: [ sshPublisherDesc( configName: 'remote-server', transfers: [ sshTransfer( sourceFiles: '**/target/*.jar', removePrefix: 'target/', remoteDirectory: '/app/deploy' ) ], usePromotionTimestamp: false, verbose: true ) ] ) } } } } ``` 此脚本定义了代码拉取、构建和部署三个阶段。部署阶段使用 `sshPublisher` 将生成的 JAR 包推送到远程服务器[^1]。 #### 5. 部署与容器化部署 如果需要部署多个服务器,可以在 Pipeline 中使用 `parallel` 关键字。例如: ```groovy stage('Parallel Deploy') { steps { script { parallel server1: { sshPublisher(publishers: [sshPublisherDesc(configName: 'server1')]) }, server2: { sshPublisher(publishers: [sshPublisherDesc(configName: 'server2')]) } } } } ``` 对于基于 Docker 或 Kubernetes 的部署,可以将构建后的镜像推送到 Harbor 或其他镜像仓库,通过远程 Shell 脚本或 Kubernetes API 完成部署[^1]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值