CI/CD:Gitlab/Runner安装一条龙

459 阅读3分钟

CI/CD:Gitlab/Runner安装一条龙

Created: September 25, 2023 2:41 PM

前言

本教程将在CentOS宿主机上直接安装gitlab,在docker上安装gitlab-runner。一般推荐runner安装在本地服务器,可以减轻线上服务器的压力。

TASK

  • 安装Docker
  • 安装gitlab
  • 安装gitlab-runner

安装Docker

  1. 安装docker
sudo yum install -y docker
  1. 启动docker服务并设置自启动
sudo systemctl start docker
sudo systemctl enable docker 
  1. 测试,随便运行一下docker相关命令即可
docker ps
docker images

Centos安装gitlab 社区版

  1. EXTERNAL_URL为域名或IP地址
sudo EXTERNAL_URL="http://your-gitlab-domain.com" yum install -y gitlab-ce
  1. 后续可以进入/etc/gitlab/gitlab.rb配置文件对external_url进行修改。
sudo vi /etc/gitlab/gitlab.rb
  1. 配置更新后需要重新启动
sudo gitlab-ctl reconfigure
sudo gitlab-ctl start
  1. 访问

Untitled.png

安装gitlab-runner

  1. docker拉取镜像
docker run -d --name gitlab-runner --restart always \
  -v /srv/gitlab-runner/config:/etc/gitlab-runner \
  -v /var/run/docker.sock:/var/run/docker.sock \
  gitlab/gitlab-runner:latest
  1. 注册
docker exec -it gitlab-runner gitlab-runner register
  1. 报错

嘎,很流程哈,顺利进入报错流程~

Untitled 1.png

查了下资料: 链接:docs.gitlab.cn/omnibus/set…

  • 常见的 SSL 错误
  1. SSL certificate problem: unable to get local issuer certificate

    此错误表示客户端无法获取根 CA。要解决此问题,您可以尝试新人在客户端上连接的服务器的根 CA,或修改证书 使得在您尝试连接的服务器上显示完整的链式证书。

    建议使用完整的证书链,以防止客户端连接时出现 SSL 错误。完整的证书链顺序应首先包含服务器证书,然后是所有中间证书,最后是根 CA。

  2. unable to verify the first certificate

    此错误表明服务器提供了不完整的证书链。要修复此错误,您需要用完整链式证书替换服务器的证书。 完整的证书链顺序应首先包含服务器证书,然后是所有中间证书,最后是根 CA。

  3. certificate signed by unknown authority

    此错误表明客户端不信任证书或 CA。要修复此错误,连接到服务器的客户端需要信任证书或 CA

  4. SSL certificate problem: self signed certificate in certificate chain

    此错误表明客户端不信任证书或 CA。要修复此错误,连接到服务器的客户端需要信任证书或 CA

  5. x509: certificate relies on legacy Common Name field, use SANs instead

    此错误表明必须在证书中配置 SANs(subjectAltName)。

我截图的错误大抵是证书造成的,从服务器导出证书:

在runner的宿主机上创建目录:

mkdir -p /path/to/runner/config
mkdir -p /path/to/runner/certs

将证书放到/path/to/runner/certs目录下

运行GitLab Runner Docker容器,并将配置文件和证书目录映射到容器内部:

docker run -d --name gitlab-runner \
  --restart always \
  -v /path/to/runner/config:/etc/gitlab-runner \
  -v /path/to/runner/certs:/etc/gitlab-runner/certs \
  gitlab/gitlab-runner:latest

以防万一,宿主机上也配一下证书: 将证书文件复制到系统的证书存储目录。通常,系统证书存储目录位于**/etc/pki/ca-trust/source/anchors/**。

sudo cp /path/to/runner/certs/[name].crt /etc/pki/ca-trust/source/anchors/

更新系统的证书存储:

sudo update-ca-trust

进入docker:

docker exec -it gitlab-runner bash

运行注册:

gitlab-runner register
  • GitLab Runner URL:通常是GitLab项目的URL,例如:gitlab.example.com/
  • 注册令牌(Registration Token):从GitLab项目的设置 > CI/CD 中获取。
  • 描述:给Runner一个描述,以便在GitLab中识别它。
  • 标签:为Runner添加标签,有助于将特定的Runner分配给特定的作业。
  • Executor:选择用于运行作业的执行器,通常选择"shell"。

Untitled 2.png

END