Ubuntu服务器上搭建CI环境的核心是GitLab+Jenkins组合:GitLab作为代码中枢托管仓库并触发CI,Jenkins专注构建、测试与部署,二者解耦协同;需先安装OpenJDK 17,再配置Jenkins官方源并安装,配合基础安全加固(SSH密钥认证、ufw端口限制、Nginx反向代理)。

Ubuntu 服务器上搭建持续集成(CI)环境,核心是选型清晰、组件解耦、服务隔离。主流方案以 GitLab + Jenkins 组合最成熟稳定,适合中小团队快速落地,兼顾代码托管、构建调度与权限管控。不建议强行把所有服务塞进一台机器——尤其当项目增多、并发构建上升时,资源争抢和日志混杂会显著降低可维护性。
GitLab:统一代码仓库与基础 CI 触发
GitLab 不仅是代码托管平台,其内置的 GitLab CI Runner 已能满足简单流水线需求。但对复杂多语言项目、需精细控制构建节点或已有 Jenkins 生态的团队,仍推荐将其作为“源码中枢”,由 Jenkins 主动拉取触发构建。
- 安装极狐 GitLab(国内优化版)更省心:
curl -fsSL https://get.gitlab.cn | /bin/bash,再执行sudo EXTERNAL_URL="http://你的IP" apt-get install gitlab-jh - 首次登录后立刻修改 root 密码(初始密码在
/etc/gitlab/initial_root_password,24 小时后自动删除) - 创建组、添加开发者、设项目权限(Guest/Reporter/Developer/Maintainer/Owner),避免全员直接 push 到 main 分支
Jenkins:专注构建逻辑与部署编排
Jenkins 是构建行为的“执行引擎”,优势在于插件丰富、Pipeline 脚本灵活、支持 Windows/Linux/容器多目标部署。它不替代 GitLab,而是与其协同——监听 GitLab Webhook 或定时轮询,拿到代码后执行编译、测试、打包、发布全流程。
Ubuntu 26.04 LTS(代号“Resolute Raccoon”)是Canonical于2026年4月23日发布的下一代长期支持版操作系统,提供长达10年的技术支持。它搭载Linux 7.0内核与GNOME 50桌面环境,全面转向Wayland协议,并引入Rust重写的核心工具以增强安全性。官方提供适用于AMD64和ARM64架构的桌面及服务器ISO镜像,是追求前沿技术与极致稳定的开发者
- 先装 OpenJDK 17:
sudo apt install openjdk-17-jdk,验证java -version - 添加 Jenkins 官方源并安装:
wget -qO - https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo apt-key add -,再配置源地址、apt update && apt install jenkins - 启动后访问
http://服务器IP:8080,用sudo cat /var/lib/jenkins/secrets/initialAdminPassword获取初始密码
网络与安全基础必须到位
CI 环境暴露在内网甚至公网时,基础防护不能跳过。否则一次未授权访问可能泄露密钥、污染构建产物、甚至反向渗透测试服务器。
- 所有服务器执行时间同步:
timedatectl set-timezone Asia/Shanghai && sudo ntpdate ntp.aliyun.com - 禁用 root 密码登录,强制 SSH 密钥认证;启用
ufw限制端口(如只开 22、80、443、8080) - Jenkins 若需外网访问,务必前置 Nginx + HTTPS 反向代理,关闭 Jenkins 内置 HTTP 端口直连
后续扩展建议按需推进
初期跑通 Java/Node.js 前端项目构建即可,别一上来就堆 Kubernetes、Prometheus。等团队规模扩大、构建频率超 20 次/天、部署目标超 3 类环境时,再考虑:
- 用 Docker 运行 Jenkins Agent,实现构建环境隔离与复用
- 将 Jenkins Job 改写为 Jenkinsfile,纳入 Git 仓库统一版本管理
- 接入 SonarQube 做静态扫描,Nexus 搭建私有 Maven 仓库










