第240402期 – gitlab

第240402期 - gitlab
23.6k star,devops工具之gitlab,内置CI/CD体验

能看到这篇文章的,gitlab应该都比较熟悉,除了刚毕业第一家公司那会在使用svn,后面的公司基本都在使用gitlab了。

今天这篇文章就简单介绍下gitlab,并且体验下它自带的CI/CD工具。

第240402期 - gitlab

GitLab简介

GitLab 是一个DevOps 平台,或者说是很多devops平台的基础层,它提供了从源代码管理到自动化部署的一系列工具和功能。

GitLab 以其强大的功能和开源特性而广受欢迎,它支持 Git 作为版本控制系统,并提供了代码托管、问题跟踪、持续集成/持续部署(CI/CD)、容器注册、监控和安全性等众多功能。

GitLab 旨在帮助团队协作开发软件,并通过自动化流程提高开发效率和软件质量。

GitLab 的核心特点

  • 代码托管: GitLab 支持公共和私有的 Git 仓库托管。
  • 问题跟踪: 集成了问题跟踪系统,方便团队管理和讨论项目问题。
  • Wiki: 提供了 Wiki 功能,用于项目文档和知识的共享。
  • CI/CD: 内置了持续集成和持续部署的管道,支持自动化测试和部署。
  • 容器化: 支持 Docker 和 Kubernetes,便于容器化应用的构建和管理。
  • 安全性: 提供安全扫描和合规性检查,确保代码库的安全性。
  • 协作: 支持团队协作,包括代码审查(Merge Requests)、讨论和注释等。

gitlab 部署实践

gitlab支持的部署场景很多,我这边采用docker compose方式部署,yml文件如下

文件中有个变量需要提前指定,或者在环境变量文件中添加$GITLAB_HOME

export GITLAB_HOME=你的部署目录

#cat docker-compose.yml

version: '3.6'
services:
  gitlab:
    image: gitlab/gitlab-ce:16.8.5-ce.0
    container_name: gitlab
    restart: always
    hostname: '192.16.20.17'
    environment:
      GITLAB_OMNIBUS_CONFIG: |
        external_url 'http://192.16.20.17:9020'
        gitlab_rails['gitlab_shell_ssh_port'] = 9021
    ports:
      - '9020:9020'
      - '443:443'
      - '9021:9021'
    volumes:
      - '$GITLAB_HOME/config:/etc/gitlab'
      - '$GITLAB_HOME/logs:/var/log/gitlab'
      - '$GITLAB_HOME/data:/var/opt/gitlab'
    shm_size: '256m

上述暴露的端口,可以根据需要替换,hostname根据实际替换掉

然后执行

docker compose up -d

启动后通过hostname及端口访问:

默认密码在如下文件中:
cat ./config/initial_root_password

第240402期 - gitlab

gitlab CI/CD功能体验

gitlab的cd功能需要通过runner组件来实现,可以理解为jenkins的slave组件

需要安装、注册

第240402期 - gitlab

第240402期 - gitlab

第240402期 - gitlab

然后会给出一个注册方式,前提是你安装好runner了

第240402期 - gitlab

关于如何安装runner,可以看这里

第240402期 - gitlab

注册完毕后,就可以看到一个在线的runner了

runner的逻辑是,你提交代码变更后,会自动触发流水线,流水线需要先通过编辑器新建

第240402期 - gitlab

根据不同的作业,可以完成ci/cd过程

第240402期 - gitlab

具体可以自行去体验。


© 版权声明

相关文章