23.6k star,devops工具之gitlab,内置CI/CD体验
能看到这篇文章的,gitlab应该都比较熟悉,除了刚毕业第一家公司那会在使用svn,后面的公司基本都在使用gitlab了。
今天这篇文章就简单介绍下gitlab,并且体验下它自带的CI/CD工具。
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
gitlab CI/CD功能体验
gitlab的cd功能需要通过runner组件来实现,可以理解为jenkins的slave组件
需要安装、注册
然后会给出一个注册方式,前提是你安装好runner了
关于如何安装runner,可以看这里
注册完毕后,就可以看到一个在线的runner了
runner的逻辑是,你提交代码变更后,会自动触发流水线,流水线需要先通过编辑器新建
根据不同的作业,可以完成ci/cd过程
具体可以自行去体验。
© 版权声明
文章版权归作者所有,未经允许请勿转载。