上海营销型网站设计,做网站 怎么选择公司,吾爱源码,wordpress中文是什么意思#x1f604; 19年之后由于某些原因断更了三年#xff0c;23年重新扬帆起航#xff0c;推出更多优质博文#xff0c;希望大家多多支持#xff5e; #x1f337; 古之立大事者#xff0c;不惟有超世之才#xff0c;亦必有坚忍不拔之志 #x1f390; 个人CSND主页——Mi… 19年之后由于某些原因断更了三年23年重新扬帆起航推出更多优质博文希望大家多多支持 古之立大事者不惟有超世之才亦必有坚忍不拔之志 个人CSND主页——Micro麦可乐的博客 《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程入门到实战 《RabbitMQ》本专栏主要介绍使用JAVA开发RabbitMQ的系列教程从基础知识到项目实战 《设计模式》专栏以实际的生活场景为案例进行讲解让大家对设计模式有一个更清晰的理解 《Jenkins实战》专栏主要介绍JenkinsDockerGitMaven的实战教程让你快速掌握项目CI/CD是2024年最新的实战教程 如果文章能够给大家带来一定的帮助欢迎关注、评论互动 2024最新 Jenkins Docker实战教程七- Jenkins实现远程传输和自动部署 前言Publish Over SSH 介绍开始配置Publish Over SSH 插件编写目标服务器Sell脚本结语 前言
在之前的章节中博主带着大家都是基于一台Jenkins服务器多个容器的形式实现的自动构建部署当然这个也已经满足了大多数公司内网测试的要求而有时候公司的应用服务器和Jenkins服务器是分开的那么就需要实现通过Jenkins服务器通过SSH远程连接到应用服务器上传部署文件并部署。 本章节复用第四章节教程中的的项目Dockerfile相关内容请参考第四章节内容 2024最新 Jenkins Docker 实战教程四 - 编写自己的Springboot项目实现自动化部署 本章节就跟着博主一起来实现这个需求。在此之前请确认你已经构建了应用服务器且安装好了Docker环境如博主的两台虚拟机 Publish Over SSH 介绍
Publish Over SSH 是 Jenkins 的一个插件它提供了通过SSH协议与远程服务器进行文件传输和执行命令的功能。【插件地址】
Publish Over SSH 特性 SCP-通过 SSHSFTP发送文件在远程服务器上执行命令可以为服务器配置或整个插件禁用使用用户名和密码或公钥认证密码/密码短语在配置文件和 UI 中加密SSH SFTP/SSH Exec 可用作构建过程中的构建步骤在 (maven) 项目构建之前或构建之后运行 SSH无论构建是否成功可选择覆盖作业配置中每个服务器的身份验证凭据如果全局配置中未为该服务器提供身份验证凭据则提供这些凭据如果文件传输失败可选择重试对于不稳定的连接很有用允许在伪 TTY 中执行命令/脚本 开始配置Publish Over SSH 插件
在第二章中 2024最新 Jenkins Docker实战教程二- Jenkins相关配置 我们配安装了Publish Over SSH插件今天我们就来学习如何使用这个插件
通过 「主页」-「系统管理」-「系统配置」 找到Publish Over SSH 配置项目 新增 SSH Server 新建一个任务 jenkins-demo-ssh 还是采用第四章节的项目这里就不赘述了。
主要就是 Post Steps 有所改动 Add post-build step - Send files or execute commands over SSH 开始配置需要传输的文件以及目标服务器存放的目录 Jenkins会默认找到任务的工作目录 即 /home/jenkins-data/workspace/jenkins-demo-ssh Source files 传输多个文件可以用 逗号分割 完成配置保存我们开始执行 立即构建 登陆目标服务器 检查文件是否存在 ok 到了这一步我们已经实现了将Jar文件和Dockerfile文件传输接下来我们设置目标服务器执行脚本让项目跑起来
编写目标服务器Sell脚本
在我们刚才新配置的SSH Server继续修改找到 Exec command 脚本如下
# 进入目标服务器存放传输文件目录
cd /data/jenkins-demo-ssh
#构建镜像
docker build -t jenkins-demo .
# 使用docker ps和grep来检查容器是否存在
if docker ps -a | grep my-jenkins-demo /dev/null; thenecho 容器存在#容器存在则停止并删除容器docker stop my-jenkins-demodocker rm my-jenkins-demo
elseecho 容器不存在
fi
#运行容器
docker run -d -p 9090:9090 --name my-jenkins-demo jenkins-demo继续测试构建执行观察控制台输出显示 Finished: SUCCESS 我们登陆目标服务器查看镜像和容器是否都存在了
#查看镜像
docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
jenkins-demo latest 924b3b68490a 11 minutes ago 672MB#查看容器
docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
8b836be4a639 jenkins-demo java -jar jenkins-d… 13 minutes ago Up 13 minutes 0.0.0.0:9090-9090/tcp, :::9090-9090/tcp my-jenkins-demo最后我们访问SpringBoot项目进行测试 http://192.168.1.21:9090/hello-jenkins
结语
通过使用Jenkins的Publish Over SSH插件可以轻松实现将项目部署到远程服务器并在远程服务器上执行部署脚本。本文详细介绍了插件的安装和配置步骤以及使用一个DEMO项目来作为演示一步一步的带着大家在目标服务器实现自动部署。