跳到主要内容

Jenkins 部署

一句话版:Jenkins 是代码的「自动流水线工坊」——代码一提交,构建、测试、发布它自动干;内网云隧道再给工坊开扇公网大门,人在外面也能随时看构建结果。

前置:先有隧道,再跑 Jenkins。 先到内网云 Web 控制台开通你的隧道(域名访问或端口访问都行),拿到属于你的公网地址(域名或 域名:端口)。下面命令里的账号、节点、端口,都以你控制台里隧道显示的信息为准,不要照抄示例。


一、环境准备​

  • 一台 Linux 服务器(Debian / Ubuntu 系为例),建议至少 2 核 4G;
  • Java:Jenkins 需要 Java 运行环境,请按官方 Java 支持政策安装受支持版本(当前官方推荐 Java 21);
  • 已装好 Git、Maven 等构建工具(按你的项目需要);
  • 一个已开通的内网云隧道(公网地址就来自它)。

二、安装 Jenkins(Debian/Ubuntu 官方仓库)​

Jenkins 官方 Debian 仓库目前是 pkg.jenkins.io/debian-stable(长期支持版 LTS)。下面用官方推荐的 keyring 方式添加仓库(老式 apt-key 已被官方废弃,不要再用了)。安装命令以 Jenkins 官方 Linux 安装文档 为准。

# 1. 先装 Java(官方建议先装 Java,再装 Jenkins)
sudo apt-get update
sudo apt-get install -y fontconfig openjdk-21-jre
# 注:Debian 12 及更早系统仓库里可能没有 openjdk-21,
# 可到 Adoptium 官网下载安装对应版本,或直接用系统自带的受支持 Java

# 2. 下载官方签名密钥,存到 /usr/share/keyrings/
sudo wget -O /usr/share/keyrings/jenkins-keyring.asc \
https://pkg.jenkins.io/debian-stable/jenkins.io-2026.key

# 3. 添加官方软件源
echo "deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] \
https://pkg.jenkins.io/debian-stable binary/" | sudo tee \
/etc/apt/sources.list.d/jenkins.list > /dev/null

# 4. 更新并安装 Jenkins
sudo apt-get update
sudo apt-get install -y jenkins

# 5. 启动并设置开机自启
sudo systemctl enable --now jenkins
sudo systemctl status jenkins

安装完成后 Jenkins 默认监听 8080 端口。如需改端口,请参考官方文档修改 systemd 配置后重启服务。

三、初始化配置向导​

  1. 本机先访问 http://127.0.0.1:8080 确认 Jenkins 已起来;
  2. 查看初始管理员密码:
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
  1. 按向导选择「安装推荐的插件」;
  2. 创建你的第一个管理员账号;
  3. 实例 URL 暂时可填 http://127.0.0.1:8080,等隧道建好后改成你的公网地址。

四、用 nssh 把 Jenkins 发布到公网​

4.1 下载 nssh 客户端​

从 内网云客户端下载页 下载对应系统的 nssh 客户端,放到服务器上并赋予执行权限。下载安装细节见 nssh 部署教程。

4.2 建立隧道​

把本机的 8080 端口映射到你隧道的公网入口(示例用公网 80 端口做域名访问;如果你的隧道是端口访问类型,把 80 换成平台分配给你的公网端口即可):

# 前台跑一次,看到 Tunnel established 说明通了
nssh -R 80:127.0.0.1:8080 <你的用户名>@<你的节点地址> -p 22 --passwd <你的密码>

# 确认没问题后,改用守护进程模式后台运行(推荐)
nssh --daemon -R 80:127.0.0.1:8080 <你的用户名>@<你的节点地址> -p 22 --passwd <你的密码>

参数含义:

参数说明
--daemon守护进程模式,后台运行 + 断线自动重连
-R 80:127.0.0.1:8080公网端口 80 → 本机 127.0.0.1:8080(Jenkins)
<你的用户名>@<你的节点地址>你的内网云账号与节点,见控制台
-p 22SSH 端口(以控制台为准)
--passwd你的 SSH 密码

4.3 验证并设置 Jenkins 公网地址​

  1. nssh --list 看隧道是否 online;
  2. 用浏览器打开你的公网地址(域名或 域名:端口),应能看到 Jenkins 登录页;
  3. 到 Jenkins「系统管理 → 系统配置」把 Jenkins URL 改成你的公网地址,这样构建通知里的链接才是外网能点开的。

五、使用建议​

  • Pipeline 流水线:用 Jenkinsfile 定义构建流程,实现持续集成 / 持续部署;
  • 触发构建:配置 Git 仓库的 Webhook,代码提交后自动构建;也可设定时构建;
  • 构建通知:配置邮件通知,或直接用 Blue Ocean 看构建状态;
  • 安全配置:创建独立账号并做权限管理,保留 CSRF 保护,定期备份 /var/lib/jenkins。

六、常见问题​

问题排查
Jenkins 启动失败systemctl status jenkins 看日志,重点检查 Java 版本是否受支持、8080 是否被占用
构建失败看构建日志,确认 Maven/Git 等构建工具已正确配置
公网打不开nssh --list 看隧道状态;用前台模式跑一次看日志;确认你的公网入口端口与命令里的端口一致

记住内网云:Jenkins 是条流水线,代码提交自动干;隧道把门开到公网,构建状态随时看。