Gitlab 项目管理
01.Gitlab
GitLab中的项目的根目录下创建的.gitlab-ci.yml 脚本的工具
02. GitLab Runner是一个开源的项目,是用来执行GitLab中的项目的根目录下创建的.gitlab-ci.yml 脚本的工具
GitLab Runner is open-source and written in Go.
It can be run as a single binary; no language-specific requirements are needed.
极狐GitLab持续集成 (CI)持续交付(CD)
构建、测试和部署。从可扩展的Pipeline到集成安全性
合并请求(MR)*享新代码,并触发Pipeline。构建、测试和验证
自动集成部署
组件
Gitlab 代码版本管理
GitLab-CI 就是一套配合GitLab使用的持续集成系统,GitLab8.0以后的版本是默认集成了GitLab-CI并且默认启用的。
GitLab-Runner 就是一个用来执行软件集成脚本的东西
Gitlab-runner 概念
pipeline
Stage CI 环节包含三个 Stage:build、test 和deploy。
Job
权限
Shared runners are for use by all projects
Group runners are for all projects and subgroups in a group
Specific runners are for individual projects
tag
runner has the tag value, acorrespond project’s .gitlab-ci.yml file
配置文件 config.toml file.
03.软件
Git:git
Gitlab Gitlab Runner
Docker
Harbor
gitlab-runner安装步骤
步骤
linux 准备工作
useradd -d /home/deploy -m deploy -s /bin/bash
passwd deploy
1. 安装docker
安装docker
下拉 docker pull gitlab/gitlab-runner
2. 运行gitlab-runner容器
docker run -d
--name gitlab-runner --restart always \
-v /var/run/docker.sock:/var/run/docker.sock \
-v /srv/gitlab-runner/config:/etc/gitlab-runner \
gitlab/gitlab-runner:latest
3. 注册为gitlab-ci的runner
启动 Runner 然后和 GitLab CI 绑定
非docker的形式 gitlab-ci-multi-runner register :执行注册命令
输入 ci 地址 输入 ci token runner 名称 设置 tag
- 挂载docker.sock是为了docker:latest镜像操控runner服务器的docker服务;
说明: An executor determines the environment each job runs in.
the shell executor.
the Docker executor.
docker exec gitlab-runner gitlab-runner register -n \
--url http://192.168.1.211:8180/ \
--registration-token RNyQCDFogbs-Sh57ap4u \
--tag-list runInDocker \
--executor docker \
--docker-image docker \
--docker-volumes /var/run/docker.sock:/var/run/docker.sock \
--description "runInDocker
--template-config /tmp/test-config.template.toml \
# register 默认交互模式下使用,非交互模式添加 --non-interactive
gitlab-runner 注销
注销全部 docker exec gitlab-runner gitlab-runner unregister --all-runners
自动构建组件
基本组件
代码库-版本库GitLab GitLab CI
执行构建任务 GitLab-runner
镜像库 harbor
资源库: 文件系统或者分布式文件系统 或者对象存储
具体文件
项目工程下编写 .gitlab-ci.yml 配置文件
fatal: unable to access 'https://mygitlab.com/mydata.git/': Could not resolve host: mygitlab.com.com
解决方式
在配置文件.toml中增加host和IP的映射关系
[runners.docker]
tls_verify = false
extra_hosts = ["gitlab.com:1.1.1.1", "harbor.com:2.2.2.2"]
shm_size = 0
配置文件
01.Gitlab 配置文件
.gitlab-ci.yml 共28个关键词 pipeline
管道配置从作业(job)开始, 作业是 .gitlab-ci.yml 文件的最基本元素
job 了可用的参数
image services environment cache dependencies
stages stage only
tags retry trigger include
script before_script after_script allow_failure when artifacts
coverage except extends interruptible pages parallel
release resource_group rules timeout variables
新建作业(job)、定义阶段(stage)、允许失败(allow_failure)、
什么时候开始工作。
也可用:when:manual和when:delayed
人工触发(when: manual)、
作业运行前执行的脚本(before_script)
作业运行后执行的脚本(after_script )
02.Gitlab-runner配置文件
config.toml
[[runners]]
name url token
environment executor shell tags
executor
[runners.kubernetes]
[runners.docker]
[runners.ssh]
[runners.virtualbox]
shell bash sh powershell pwsh
[runners.docker]
image
dns dns_search
extra_hosts
[[runners.docker.services]]
03.Dockerfile配置文件
FROM habor.test.com/testil:latest as ReleaseData
ENV OBSUTIL /root/bin/obsuti
ARG H_VERSION
COPY ./entrypoint.sh /
RUN mkdir -p /opt/test \
&& echo '1.1.1.1 cn1.test.com' | sudo tee -a /etc/hosts \
&& $OBSUTIL cp -r -f os://test/ap /opt/test/${H_VERSION}
ENTRYPOINT '/entrypoint.sh'
配置文件格式
语言的表达能力,书写便捷性
INI(.ini)文件
XML
JSON(.json)
YAML(.yaml 或 .yml)
TOML(.toml) 显式键名链的方式 使用#来表示注释开始,至当前行尾结束。 数组使用方括号包裹 表格数组
参考
https://docs.gitlab.com/runner/
https://docs.gitlab.com/runner/configuration/advanced-configuration.html
.gitlab-ci.yml语法完整解析(三) https://blog.csdn.net/github_35631540/article/details/111029174
使用主机安装查看runner配置 https://www.cnblogs.com/wu-wu/p/13269950.html