当前位置:首页 > 系统教程 > 正文

Ubuntu 22.04环境下GitLab+Jenkins自动化部署全攻略 (全网最详细!全程无坑!)

本教程将详细介绍在Ubuntu 22.04系统中,如何集成GitLabJenkins实现自动化部署。即使你是小白,也能跟着步骤一步步完成,避免常见坑点。我们将从环境准备开始,涵盖安装、配置、集成和测试,确保你构建一个高效的持续集成与部署(CI/CD)流水线。

Ubuntu 22.04环境下GitLab+Jenkins自动化部署全攻略 (全网最详细!全程无坑!) 22.04  GitLab Jenkins 自动化部署 第1张

前提条件

在开始之前,请确保你有一台运行Ubuntu 22.04的服务器(或虚拟机),并具备root或sudo权限。同时,需要基本命令行知识。我们将使用GitLab作为代码仓库,Jenkins作为自动化服务器,实现从代码提交到部署的自动化部署流程。

步骤一:安装和配置GitLab

GitLab是一个强大的DevOps平台,提供代码托管和CI/CD功能。在Ubuntu 22.04上安装GitLab步骤如下:

  1. 更新系统包列表:运行 sudo apt update
  2. 安装依赖:运行 sudo apt install -y curl openssh-server ca-certificates
  3. 添加GitLab仓库:运行以下命令添加官方仓库: curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
  4. 安装GitLab CE:运行 sudo apt install -y gitlab-ce。安装过程可能需要几分钟。
  5. 配置GitLab:编辑配置文件 sudo nano /etc/gitlab/gitlab.rb,将 external_url 设置为你的服务器IP或域名(例如 http://your_server_ip)。
  6. 重新配置并启动:运行 sudo gitlab-ctl reconfiguresudo gitlab-ctl start。访问 http://your_server_ip 来设置管理员密码并登录。

这样,GitLab就安装完成了。记住初始密码,它用于首次登录。接下来,我们将安装Jenkins以构建自动化部署流水线。

步骤二:安装和配置Jenkins

Jenkins是一个开源的自动化服务器,用于实现持续集成和部署。在Ubuntu 22.04上安装Jenkins步骤如下:

  1. 添加Jenkins仓库:运行以下命令导入GPG密钥和仓库: curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/null,然后 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
  2. 更新并安装:运行 sudo apt updatesudo apt install -y jenkins
  3. 启动Jenkins:运行 sudo systemctl start jenkinssudo systemctl enable jenkins 以设置开机自启。
  4. 获取初始密码:运行 sudo cat /var/lib/jenkins/secrets/initialAdminPassword 来获取密码。
  5. 访问Jenkins:打开浏览器访问 http://your_server_ip:8080,输入密码,然后安装推荐插件并创建管理员用户。

现在,Jenkins已就绪。我们将把它与GitLab集成,以实现自动化部署。确保在Ubuntu 22.04上开放相关端口(如8080和80)。

步骤三:集成GitLab和Jenkins

为了实现自动化部署,需要让Jenkins能访问GitLab仓库并触发构建。关键步骤如下:

  1. 在Jenkins中安装插件:登录Jenkins,进入“Manage Jenkins” > “Plugins”,安装“GitLab”和“Pipeline”插件。
  2. 配置GitLab API令牌:在GitLab中,点击用户头像 > “Settings” > “Access Tokens”,创建一个具有api权限的令牌。复制令牌备用。
  3. 在Jenkins中添加GitLab凭证:进入“Manage Jenkins” > “Credentials”,添加一个“Secret text”类型的凭证,将GitLab令牌粘贴进去。
  4. 配置Jenkins系统设置:进入“Manage Jenkins” > “System”,在“GitLab”部分添加GitLab服务器连接,使用上一步的凭证,并测试连接。

这样,GitLabJenkins就连接起来了。接下来,我们将创建一个示例项目来测试自动化部署流水线。

步骤四:创建示例项目和自动化流水线

我们将创建一个简单的Web应用项目,演示从代码提交到部署的全过程。假设你已经在GitLab中有一个仓库(例如一个Node.js应用)。

  1. 在GitLab中创建项目:如果还没有,在GitLab中新建一个项目,并推送一些代码(例如包含 package.jsonapp.js 的文件)。
  2. 在Jenkins中创建流水线任务:登录Jenkins,点击“New Item”,选择“Pipeline”,命名后保存。在“Pipeline”部分,选择“Pipeline script from SCM”,设置Git仓库URL(来自GitLab)和凭证。
  3. 编写Jenkinsfile:在GitLab项目的根目录创建一个 Jenkinsfile,定义构建、测试和部署阶段。例如:
    pipeline { agent any stages { stage("Build") { steps { sh "npm install" } } stage("Test") { steps { sh "npm test" } } stage("Deploy") { steps { sh "echo "Deploying to production..."" // 添加实际部署命令,如scp或docker部署 } } } }
  4. 配置GitLab Webhook:在GitLab项目中,进入“Settings” > “Webhooks”,添加一个Webhook URL,格式为 http://your_jenkins_ip:8080/project/your_pipeline_name,并触发“Push events”。这允许GitLab在代码推送时自动触发Jenkins构建。

现在,当你推送代码到GitLab时,Jenkins会自动运行流水线,实现自动化部署。这确保了Ubuntu 22.04环境下的高效CI/CD流程。

步骤五:测试和验证部署

测试是自动化部署的关键环节。请按照以下步骤验证:

  1. 手动触发构建:在Jenkins中,点击你的流水线任务,然后“Build Now”来运行一次构建。查看控制台输出,确保所有阶段成功。
  2. 测试GitLab Webhook:在GitLab中推送一次代码更改(如修改 README.md),然后检查Jenkins是否自动启动构建。这验证了GitLabJenkins的集成。
  3. 验证部署结果:如果部署阶段包括将应用部署到服务器(例如使用Nginx),访问应用URL以确保它正常运行。
  4. 监控和日志:在Ubuntu 22.04上,使用 sudo journalctl -u jenkins 查看Jenkins日志,或检查GitLab项目的CI/CD流水线状态。

如果遇到问题,请回顾配置步骤,确保端口、权限和令牌正确。本教程旨在提供无坑指南,但网络环境可能略有差异。

结论

通过本教程,你已经在Ubuntu 22.04系统中成功搭建了GitLabJenkins,并实现了完整的自动化部署流水线。从代码提交到自动构建、测试和部署,这个过程提高了开发效率并减少了人为错误。记住,自动化部署是DevOps的核心,持续优化流水线可以适应更复杂的项目需求。如果你按照步骤操作,应该全程无坑!如有疑问,请参考官方文档或社区资源。祝你在Ubuntu 22.04上的DevOps之旅顺利!