手把手教你搭建CI/CD流水线,从零到生产可用
在现代软件开发中,自动化部署是提升效率、减少人为错误的关键环节。Ubuntu22.04作为长期支持版本,稳定性和兼容性俱佳。结合GitLab强大的代码仓库管理与Jenkins灵活的CI/CD能力,可以构建一套完整的持续集成/持续部署流水线。本教程将从零开始,详细演示在Ubuntu22.04上安装、配置GitLab和Jenkins,并实现代码推送后自动构建、测试、部署的全过程,确保每一步都清晰无坑,即使是小白也能轻松上手。
首先你需要一台安装了Ubuntu22.04的服务器(物理机或虚拟机均可),确保网络通畅,拥有sudo权限的用户。建议系统内存至少4GB,磁盘20GB以上。登录后执行以下命令更新系统:
sudo apt update && sudo apt upgrade -y
安装必要的工具:
sudo apt install -y curl openssh-server ca-certificates postfix
postfix用于GitLab发送邮件通知,安装过程中选择“Internet Site”并填写系统域名(若无域名可填服务器IP)。
GitLab提供企业版和社区版,我们使用免费的社区版。添加GitLab官方仓库并安装:
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bashsudo apt install -y gitlab-ce
安装完成后,配置GitLab的访问地址。编辑/etc/gitlab/gitlab.rb,设置external_url为你的域名或IP(例如http://192.168.1.100)。然后执行重新配置:
sudo gitlab-ctl reconfigure
这个过程可能需要几分钟。完成后,访问http://你的IP,第一次访问会提示设置root密码。设置后即可用root登录。至此,GitLab安装完成。
Jenkins需要Java环境,我们安装OpenJDK 11:
sudo apt install -y openjdk-11-jdk
添加Jenkins官方仓库并安装:
curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io-2023.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/nullecho 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/nullsudo apt updatesudo apt install -y jenkins
启动Jenkins并设置开机自启:
sudo systemctl start jenkinssudo systemctl enable jenkins
Jenkins默认监听8080端口,访问http://你的IP:8080。首次访问需要输入初始密码,通过以下命令获取:
sudo cat /var/lib/jenkins/secrets/initialAdminPassword
按照提示安装推荐插件并创建管理员用户。至此,Jenkins安装完成。
要实现自动化部署,需要让Jenkins能够访问GitLab仓库,并接收GitLab的webhook触发。
登录GitLab,点击用户头像 → Preferences → Access Tokens,创建一个名为“jenkins”的令牌,勾选api、read_repository、write_repository权限。生成后复制保存(只会显示一次)。
Jenkins首页 → Manage Jenkins → Manage Plugins,在“Available”标签搜索“GitLab”并安装“GitLab Plugin”和“GitLab API Plugin”。安装后,进入Manage Jenkins → Configure System,找到“GitLab”配置部分:
新建一个自由风格的项目,在“源码管理”中选择Git,填写仓库URL(例如 http://192.168.1.100/root/demo.git),并添加凭证(GitLab用户名密码或SSH)。在“构建触发器”中勾选“Build when a change is pushed to GitLab”,并记录下生成的GitLab webhook URL和Secret token。然后在GitLab项目设置中,进入Settings → Webhooks,添加webhook:URL填Jenkins的webhook地址,Secret token填上面生成的,勾选“Push events”,保存后点击“Test”测试是否连通。
以最简单的Java应用为例,项目根目录下创建Jenkinsfile(或直接在Jenkins任务中写构建步骤)。这里使用流水线方式。以下是一个简单的声明式流水线:
pipeline { agent any stages { stage("Checkout") { steps { git "http://192.168.1.100/root/demo.git" } } stage("Build") { steps { sh "mvn clean package" } } stage("Deploy") { steps { sh "scp target/*.jar user@部署服务器:/app/" sh "ssh user@部署服务器 "systemctl restart myapp"" } } }} 你需要根据实际项目调整构建和部署命令。注意在Jenkins中配置好SSH免密登录或使用凭证。
在本地修改代码并推送到GitLab仓库,观察Jenkins是否自动触发构建。查看Jenkins控制台输出,确认每个阶段成功。如果失败,根据错误日志排查(常见问题:权限不足、路径错误、依赖缺失)。一旦成功,你就实现了从代码提交到自动部署的全流程!
本文详细讲解了在Ubuntu22.04上安装配置GitLab和Jenkins,并实现自动化部署的全过程。通过这套CI/CD流水线,团队可以更快速、可靠地交付软件。希望这篇全网最详细的教程能帮助你顺利搭建自己的自动化部署环境,真正实现“全程无坑”。如果在实践中遇到其他问题,欢迎在评论区交流讨论。
本文由主机测评网于2026-03-06发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://vpshk.cn/20260329184.html