前言
在上一篇文章基于Gitee实现Jenkins自动化部署SpringBoot项目中,我们了解了如何完成基于Jenkins实现自动化部署。
对于某些公司服务器来说,是不可以连接外网的,所以笔者专门整理了一篇文章总结一下,如何基于内网直接部署Jenkins。
需要提前说明的是,本文必须要求你具备一下几点:
- jdk8
- 明确自己所需的Jenkins插件。
- maven
- 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简单的离线部署过程,我们通过:
- 下载Jenkins的war包。
- 按需到官网下载插件存放到plugins目录。
- 离线初始化跳过插件下载直接启动配置Jenkins。
完成模拟内网项目部署工作,在这个实验中还有美中不足的地方:
- 未能集成gitlab导致后续测试还是需要连通外网。
- 未搭建maven私服导致依赖也需要连通外网。
所以我们后续的文章会通过Nexus搭建一个简单的maven私服完善这个离线的实验。感谢您的阅读。