Jenkins使用跳板机部署Jar包到阿里云内网服务器

公司由于一些项目是部署在阿里云内网中,每次都是本地打包上传到跳板机,然后从跳板机再上传到具体的服务器,十分麻烦。

我们目前使用Jenkins来自动化构建和部署,只是部署开发环境和测试环境,生产环境没有采用,公司也没有人愿意去做,正好最近忙完手上的活,不是很忙,就研究一下如何通过Jenkins将项目部署阿里云内网的服务器。

准备工作

Java:11

Jenkins:2.399(这个版本最低也是java11)

跳板机:阿里云公网可访问的IP,也可访问内网服务器

安装插件 Publish Over SSH

需要提前下载好插件:Publish Over SSH,如果没有下载的话,可以在【Dashboard】->【Manage Jenkins】->【System Configuration】->【Plugins】安装。

安装好后,我们进入【Dashboard】->【Manage Jenkins】->【System Configuration】->【System】找到 Publish over SSH 插件位置

配置 SSH Servers 

找到 SSH Servers,点击【新增】按钮

配置跳板机IP 

填写对应的信息,如果填写跳板机IP,请点击【高级】展开

 

 主要是Jump host的IP,这个必须是可通过公网可以访问的。然后目标服务器和跳板机需要同时设置一样的用户名和密码,只需要在目标服务器配置账号即可。

测试配置和发布

点击右下角【Test Configuation】按钮

哎呀,连不上了,怎么回事

 上网搜了一些,原来是这个插件的bug,所以信息填对了,就不要关心了。

how to configure ssh server on jenkins using jump host?

现在我们来验证一下能不能部署

部署成功,控制台后面已经xxx-server-1.4.0.jar文件了

登录阿里云服务器也能看到,OK了~ 

补充:

当出现如下问题时:

请参照以下解决方案:

1.jenkins配置ssh的时候测试连接出现Algorithm negotiation fail_com.jcraft.jsch.jschalgonegofailexception: algorit-CSDN博客

2.Jenkins升级后Pipeline内的sshCommand报错_jenkins algorithm negotiation fail: algorithmname=-CSDN博客

3.JENKINS远程访问SSH提示Algorithm negotiation fail - 掘金

我使用了方案3,jsch从0.2.16降为0.1.55

### 如何部署跳板 #### 一、跳板概述 跳板是一种用于集中管理和审计远程访问的服务器设备,通常被称为堡垒。它能够记录用户的操作行为并提供安全控制制[^1]。 #### 二、Jumpserver 的功能特点 Jumpserver 是一款开源的跳板解决方案,具有以下主要功能: - 用户权限管理:支持细粒度的角色分配和资源授权。 - 安全审计:记录所有会话的操作日志,并支持回放。 - 密钥管理:统一管理 SSH 密钥,减少手动分发密钥的工作量。 - 多协议支持:兼容多种网络协议(SSH、RDP 等),满足不同场景需求[^2]。 #### 三、基于 Docker 的轻量级跳板快速部署方法 以下是使用 Docker 部署 Jumpserver 的具体流程: ##### 1. 准备基础环境 确保目标器已安装 Docker 和 Docker Compose 工具。可以通过以下命令完成安装: ```bash sudo apt update && sudo apt install docker.io docker-compose -y ``` ##### 2. 下载 Jumpserver 镜像和服务配置文件 执行以下命令拉取官方提供的最新版本镜像: ```bash git clone https://github.com/jumpserver/docker.git cd docker/ docker-compose up -d ``` 这一步骤将自动启动所需的容器实例,括核心组件 Kuasar、Coco 和 Guacamole[^3]。 ##### 3. 修改默认设置 进入项目目录后找到 `.env` 文件调整必要的参数项比如数据库密码等敏感数据。另外还需要编辑 `config/guacd.conf` 来适配实际硬件规格下的性能表现[^3]。 ##### 4. 初始化管理员账户 首次运行成功之后打开浏览器输入对应 IP 地址访问 Web 控制台,默认端口为80或者指定其他映射好的外部端口号。按照提示完成初始化向导创建超级用户账号以便后续维护管理工作[^3]。 ##### 5. 添加受管资产信息 登录到后台管理系统界面依次新增需要被管控的目标主列表以及关联关系设定好相应的策略规则从而实现全面覆盖式的保护措施[^3]。 #### 四、结合 Ansible 扩展自动化能力 为了进一步提升效率降低人为失误风险,在完成了基本框架搭建以后还可以引入Ansible作为补充手段来批量处理日常重复性的任务例如软件更新补丁应用等等[^4]。 ```yaml --- - name: Ensure all servers are updated with latest packages. hosts: webservers become: yes tasks: - yum: name: "*" state: latest when: ansible_os_family == 'RedHat' - apt: upgrade: dist update_cache: true when: ansible_os_family == 'Debian' ... ``` 以上脚本片段展示了针对不同类型Linux发行版分别执行各自平台专属指令达到一致效果的同时保持高度灵活性适应未来可能发生的变更情况[^4]。 ---
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值