Jenkins离线安装部署教程简记

前言

在上一篇文章基于Gitee实现Jenkins自动化部署SpringBoot项目中,我们了解了如何完成基于Jenkins实现自动化部署。

对于某些公司服务器来说,是不可以连接外网的,所以笔者专门整理了一篇文章总结一下,如何基于内网直接部署Jenkins。

需要提前说明的是,本文必须要求你具备一下几点:

  1. jdk8
  2. 明确自己所需的Jenkins插件。
  3. maven
  4. git

步骤

创建Jenkins目录

以笔者为例,本次实验是在虚拟机中进行的,所以笔者就在tmp下创建一个jenkins_home作为Jenkins目录。

下载Jenkins和插件

考虑到Jenkins最新版本要求jdk11,所以笔者在官网选择低于2.35的版本,下载地址https://www.jenkins.io/zh/download/,笔者选择下载项如下所示:

准备好war包之后,我们就继续准备Jenkins所需要的插件了,读者可以按需到https://plugins.jenkins.io/下载插件。

由于笔者有在外网部署过Jenkins的经历,所以直接到外网版本的Jenkins中直接将插件的文件夹复制下来。最终笔者得到以下的文件和文件夹。

我们将其上传到Jenkins目录中。

自此一切准备就绪,我们就开始离线情况下的Jenkins初始化工作了。

前台启动Jenkins

为了确认本次报错我们可以直观的看到和排查,我们在初始化期间会将Jenkins通过前台的方式启动。

命令如下,可以看到笔者这里指定了Jenkins的主目录,这就是我们存放插件和war包的目录位置。

bash 复制代码
java -DJENKINS_HOME=/tmp/jenkins_home  -jar   /tmp/jenkins_home/jenkins.war  --httpPort=8080

因为是离线状态,所以控制台会输出这些报错,我们完全可以不管。

不久后控制台输出成功提示。我们到浏览器完成初始化工作。

初始化Jenkins

有了上一篇文章的经验,我们很容易从/tmp/jenkins_home/secrets/initialAdminPassword得到这个密码,然后点击继续。

进入下一个页面,Jenkins提示当前处于离线状态,由于我们提前准备好了的插件,并将插件打包到pluns目录存放到Jenkins主目录了,所以我们直接点击跳过插件安装。

然后输入用户名和密码点击完成。

明确实例地址,然后点击完成。

确认插件是否存在

我们找到插件管理

选择已安装,搜索gitee,可以看到我们的plugins目录下的所有插件都存在了,由此我们初步确定Jenkins离线安装成功了。在这里我们不妨创建一个item测试一下可用性。

配置以测试

因为有了上一篇教程的基础,所以配置过程笔者这里就略过了,有需要的读者可以看看笔者写的这篇文章基于Gitee实现Jenkins自动化部署SpringBoot项目

由于笔者这里代码是用gitee作实验了,所以在离线安装前完成之后,为了测试笔者还是需要切回外网。完成切换后,我们键入下面这条命令后台启动Jenkins

bash 复制代码
nohup java -DJENKINS_HOME=/tmp/jenkins_home  -jar   /tmp/jenkins_home/jenkins.war  --httpPort=8080 >/dev/null 2>&1 &

到达登录页面,输入账号密码点击登录

到达工作页面,点击构建

可以看到控制台正常输入运行,下载依赖中,我们不妨等待它完成。

完成后,我们到浏览器访问一下看看服务是否部署成功。

键入网址,访问可以看到笔者的页面输出预期结果,由此得出Jenkins离线部署安装完成了。

总结

本篇文章我们基于虚拟机实现了Jenkins简单的离线部署过程,我们通过:

  1. 下载Jenkins的war包。
  2. 按需到官网下载插件存放到plugins目录。
  3. 离线初始化跳过插件下载直接启动配置Jenkins。

完成模拟内网项目部署工作,在这个实验中还有美中不足的地方:

  1. 未能集成gitlab导致后续测试还是需要连通外网。
  2. 未搭建maven私服导致依赖也需要连通外网。

所以我们后续的文章会通过Nexus搭建一个简单的maven私服完善这个离线的实验。感谢您的阅读。

参考文献

离线安装jenkins,并离线安装插件

2分钟离线安装Jenkins(windows和linux通用)

相关推荐
贝锐3 分钟前
多校区互通、临时联网、远程运维,校园网络升级用蒲公英更省心!
运维·组网
Suxing927 分钟前
C语言基础分享:从“租房”到“拆迁”,C语言动态内存管理
java·数据结构·算法
减瓦28 分钟前
别让 Java 版本选择变成生产事故
java
ikun_文29 分钟前
Java集合框架Collection拓展进阶
java·java ee
游戏开发爱好者831 分钟前
App Store 上传 IPA 自动化,.p8 密钥认证与 CI/CD 接入实战
android·运维·ci/cd·小程序·uni-app·自动化·iphone
天疆说39 分钟前
04 稳定性与性能调优实录:OOM 崩溃、并发槽位、前缀缓存与 DSpark 调参
linux·运维·缓存
微硬创新40 分钟前
大点数模拟量采集落地:耐达讯自动化32路0-20mA适配PROFINET总线实践解析
运维·人工智能·网络协议·自动化·信息与通信
码匠许师傅42 分钟前
【C++ 面试真题】聊聊 C++ 的虚函数和多态
java·c++·面试
chuan.bai1 小时前
Java RAG 实战(第 8 篇):Spring Boot RAG 查询 API
java·spring boot·贪心算法
FlyWIHTSKY1 小时前
idea中集成claude功能
java·ide·人工智能·intellij-idea·cloudera