1. 为什么你需要让本地Jenkins“走出去”?
如果你和我一样,是个喜欢在本地服务器上捣鼓各种工具的开发或运维,那你肯定对Jenkins不陌生。这个老牌的持续集成和交付工具,简直就是自动化构建、测试和部署的“瑞士军刀”。在公司的内网环境里,我们通常会把Jenkins部署在某个服务器上,大家通过局域网IP访问,协作起来非常方便。
但问题来了。现在远程办公、分布式团队越来越普遍。想象一下这些场景:你正在家里加班,突然需要触发一个紧急的构建任务;或者你的团队成员分布在不同城市,他们也需要能随时访问这个Jenkins服务来查看构建状态、手动触发任务。这时候,如果Jenkins只能在内网访问,那就太不方便了。难道要每个人都先连上公司的VPN吗?且不说VPN的配置和管理有多麻烦,网络延迟和稳定性也是个问题。
更常见的情况是,我们个人开发者或小团队,可能就在自己家里的NAS、闲置的旧电脑,甚至是一台云服务器上部署了Jenkins,用于个人项目的自动化。你肯定希望无论在哪,用手机、平板还是另一台电脑,都能随时管理它。这就是“内网穿透”技术大显身手的时候了。简单来说,它就像给你的本地服务装了一个“专用快递通道”,能把外网的访问请求,安全、准确地“送”到你的内网服务器上,而无需复杂的端口映射或拥有固定公网IP。
我最初也是因为需要在外地出差时检查家里的自动化构建状态,才开始研究这个。实测下来,用对了工具和方法,整个过程比想象中简单得多,而且非常稳定。这篇文章,我就把自己从零开始,在本地部署Jenkins,再到通过内网穿透实现公网安全访问,最后解决地址变动问题的完整流程和踩过的坑,毫无保留地分享给你。即使你之前没接触过网络配置,跟着步骤走,也能轻松搞定。
2. 稳扎稳打:在Linux上部署你的第一个Jenkins
工欲善其事,必先利其器。我们得先有一个正常运行的Jenkins服务。这里我以最常用的CentOS 7为例,其他Linux发行版步骤类似,主要是包管理器的命令不同。
2.1 准备工作与安装
首先,我们需要确保系统环境就绪。Jenkins是基于Java的,所以JDK是必须的。虽然有些旧教程可能还在用Java 8,但新版的Jenkins(比如2.4xx版本之后)对JDK版本有要求,我建议直接安装Java 11,兼容性和性能都更好。
打开你的终端,用root用户或者有sudo权限的账户,依次执行下面的命令。别怕,我会解释每一步在做什么。
# 1. 导入Jenkins仓库的密钥,确保软件来源可信
sudo rpm --import https://pkg.jenkins.io/redhat-stable/jenkins.io-2023.key
# 2. 将Jenkins的官方仓库添加到你的yum源列表
sudo wget -O /etc/yum.repos.d/jenkins.repo https://pkg.jenkins.io/redhat-stable/jenkins.repo
# 3. 更新一下本地yum仓库的缓存,确保能获取到最新的软件包信息
sudo yum makecache
# 4. 安装Java 11(如果已经安装过,这一步会提示无需安装)
sudo yum install -y java-11-openjdk java-11-openjdk-devel
# 5. 安装Jenkins本身
sudo yum install -y jenkins
这几行命令执行起来应该很快。安装过程中,如果遇到Is this ok [y/d/N]的提示,直接输入y然后回车就行。全部执行完毕没有报红字错误,就说明安装成功了。
2.2 启动服务与初始登录
安装好之后,Jenkins并不会自动运行。我们需要把它设为系统服务,并启动它。
# 设置Jenkins服务开机自启(这样即使服务器重启,Jenkins也会自动起来)
sudo systemctl enable jenkins
# 立即启动Jenkins服务
sudo systemctl start jenkins
# 检查一下Jenkins服务的运行状态,看看是否正常
sudo systemctl status jenkins
运行status命令后,你会看到一屏输出。重点关注绿色的active (running)字样,这表示服务正在欢快地运行。同时,你通常能在输出信息里看到一行提示,比如Jenkins is fully up and running,并且会告诉你它监听的端口,默认是8080。
现在,打开你局域网内另一台电脑的浏览器



被折叠的 条评论
为什么被折叠?



