jenkins 结合ssh 实现多服务器部署jar包

本文详细介绍了Jenkins的安装、配置和使用,包括设置Java、Maven,安装publish_over_ssh和gitlab插件,实现通过SSH进行自动化部署。此外,还展示了如何配置gitlab SSH key,并创建自动化构建任务,实现jar包的部署。文章适合对CI/CD感兴趣的开发者参考。

jenkins使用手册

简介

官网介绍:Jenkins是开源的CI/CD(持续集成/持续交付)软件领导者。有如下几个优点:

  1. 简单安装
  2. 配置简单
  3. 丰富的插件 超过1000个插件
  4. 扩展性
  5. 分布式

一 软件下载

2.289

二 启动与配置

运行

2.1 进入war包下载目录,运行命令如下

# DJENKINS_HOME jenkins运行目录
# httpsKeyStore ssl证书地址
# httpsKeyStorePassword ssl证书密码
# httpPort http端口
java -jar -DJENKINS_HOME=D:\JENKINS_HOME  .\jenkins.war --httpPort=-1 --httpsPort=443 --httpsKeyStore=D:\JENKINS_HOME\secrets\keystore --httpsKeyStorePassword=123456

第一次运行程序,会自动生成admin初始密码,按照提示,输入文档中密码后会进入插件安装界面,选择社区推荐,等插件安装好后,进入创建用户界面,输入信息,进入首页。界面如下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

配置java、maven

2.2 点击manage jenkins —> Global Tool Configuration,配置如下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.3 ssh 工具publish over ssh,gitlab工具安装
在这里插入图片描述
进入自定义插件安装界面 manage jenkins —> manage plugins,在搜索框输入 publish over ssh gitlab,在点击列表选择下载

2.4 使用publish over ssh,连接服务器

manage Jenkins —> Configure System ----> publish over ssh
在这里插入图片描述

CI/CD

未使用k8s那套,CI/CD还是使用原始的jar包部署

gitlab配置

因为未知的原因,在linux环境下使用gitlab api token老是认证失败,所以使用gitlab ssh,具体步骤,请参见http://gitlab地址/help/ssh/README#generate-an-ssh-key-pair

jenkins 配置gitlab sshkey

Manage Jenkins —> Manage Credentials , username 是gitlab中title
在这里插入图片描述

新建一条自动化任务

点击新建item,输入项目名,选择freestyle project,点击确定,进入配置界面
在这里插入图片描述

git 配置
在这里插入图片描述

项目打包
在这里插入图片描述
ssh 配置

  1. name 选择服务器
  2. Source files 需要上传到应用服务器的文件(注意:相对于工作空间的路径,可填写多个,默认用逗号分隔)
  3. 去掉前缀(只能指定Transfer Set Source files中的目录)
  4. 可选的目标文件夹。如果文件夹不存在,会创建文件夹
  5. 在远程服务器将要执行的命令。在远程SSH传输执行后,才执行这里的脚本命令
    在这里插入图片描述

全部配置好后,点击应用 保存 按钮

返回项目列表界面,点击刚才创建好的项目,截图如下
在这里插入图片描述

点击立即构建,在下面构建历史,查看构建日志
在这里插入图片描述

点击控制台输出,查看
在这里插入图片描述
在这里插入图片描述

<think> 首先,用户的问题是:“jenkins项目部署jar是不是需要用服务器”,翻译成英文是:"Does deploying a JAR package for a Jenkins project require a server?" 我需要用中文回答问题。用户指定了使用中文。 Jenkins 是一个自动化服务器,常用于持续集成和持续部署(CI/CD)。当部署一个 JAR (通常是一个 Java 应用程序)时,Jenkins 可以在构建过程后执行部署步骤。部署通常涉及将 JAR 复制到目标服务器或环境中运行。 关键点: - Jenkins 本身可以在 Jenkins 服务器上运行构建任务。 - 部署 JAR 通常意味着将它移动到另一个服务器(如应用服务器)上运行,或者直接在 Jenkins 服务器上运行(但这不是最佳实践,因为 Jenkins 服务器应该专注于自动化任务)。 - 所以,是的,部署 JAR 通常需要一个目标服务器。Jenkins 负责自动化这个过程,比如通过 SSH 或 FTP 将文件复制到目标服务器,然后启动应用。 因此,答案应该是:是的,Jenkins 项目部署 JAR 需要用到服务器。 现在,结构化回答: - 先回答问题。 - 然后解释原因。 - 最后,根据规则,必须提出 3-5 个相关问题。 - 相关问题必须以 "§§相关问题§§" 开头。 - 相关问题应该基于用户的问题和我的回答。 - 禁止换行分散,所以相关问题要连续输出。 回忆规则: - 回答完问题后,必须提出 3-5 个 §§相关问题§§。 - 第一行必须是完整的 "§§相关问题§§"。 - 然后列出问题,编号如 1. ··· 2. ··· 等。 - 总共至少 3 个,最多 5 个。 基于问题和回答,潜在的相关问题: 1. Jenkins 如何部署 JAR 到服务器? 2. 部署 JAR 时需要注意哪些安全事项? 3. 是否可以在没有额外服务器的情况下部署 JAR ? 4. Jenkins 支持哪些部署方法? 5. 如何配置 Jenkins 自动化部署? 确保有 3-5 个。 现在,完整回答结构: 1. 用中文回答问题。 2. 解释简要。 3. 输出 "§§相关问题§§"。 4. 列出问题。 最终输出: - 回答部分。 - 然后 "§§相关问题§§" 后跟问题列表。 示例格式中提到:"§§相关问题§§" 必须输出在回答的末尾,且第一行必须完整输出 "§§相关问题§§"。 在示例中: ``` 快速排序的基本思想是... §§相关问题§§ 1. ··· 2. ··· 3. ··· ``` 所以,在我的回答中: - 先写回答内容。 - 然后换行输出 "§§相关问题§§"。 - 然后列出问题。 记得禁止换行分散,意思是相关问题部分不要有不必要的换行,但示例中有换行,所以应该按示例格式。 制定相关问题: 1. Jenkins 部署 JAR 的基本流程是什么? 2. 目标服务器需要满足哪些条件? 3. 如何配置 Jenkins 自动化部署到远程服务器? 4. 部署过程中常见的错误有哪些? 选择 4 个。 写回答: - 是的,Jenkins 项目部署 JAR 需要使用服务器。因为 Jenkins 本身主要用于自动化构建和部署过程,而部署通常涉及将生成的 JAR 传输到目标服务器上运行,确保应用在独立环境中稳定运行。 </think> 是的,Jenkins 项目部署 JAR 通常需要使用服务器。Jenkins 本身是一个自动化工具,负责编译、构建和触发部署流程,但最终部署JAR (如 Java 应用程序)需要运行在目标服务器上,例如应用服务器、云服务器或虚拟机。Jenkins 可以通过插件(如 SSHJenkins Pipeline)将构建好的 JAR 传输到目标服务器,并执行启动命令(如 `java -jar`)。直接在 Jenkins 服务器上运行 JAR 并不推荐,因为这可能影响 Jenkins 的稳定性和安全性。总之,目标服务器是必要的,用于托管和运行应用程序。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

woniyu123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值