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通用)

相关推荐
聆风吟º10 小时前
CANN开源项目深度实践:基于amct-toolkit实现自动化模型量化与精度保障策略
运维·开源·自动化·cann
侠客行031711 小时前
Mybatis连接池实现及池化模式
java·mybatis·源码阅读
蛇皮划水怪11 小时前
深入浅出LangChain4J
java·langchain·llm
较劲男子汉13 小时前
CANN Runtime零拷贝传输技术源码实战 彻底打通Host与Device的数据传输壁垒
运维·服务器·数据库·cann
老毛肚13 小时前
MyBatis体系结构与工作原理 上篇
java·mybatis
风流倜傥唐伯虎13 小时前
Spring Boot Jar包生产级启停脚本
java·运维·spring boot
Doro再努力14 小时前
【Linux操作系统10】Makefile深度解析:从依赖推导到有效编译
android·linux·运维·服务器·编辑器·vim
senijusene14 小时前
Linux软件编程:IO编程,标准IO(1)
linux·运维·服务器
Yvonne爱编码14 小时前
JAVA数据结构 DAY6-栈和队列
java·开发语言·数据结构·python
Re.不晚14 小时前
JAVA进阶之路——无奖问答挑战1
java·开发语言