CI/CD:Gitlab/Runner安装一条龙
Created: September 25, 2023 2:41 PM
前言
本教程将在CentOS宿主机上直接安装gitlab,在docker上安装gitlab-runner。一般推荐runner安装在本地服务器,可以减轻线上服务器的压力。
TASK
- 安装Docker
- 安装gitlab
- 安装gitlab-runner
安装Docker
- 安装docker
sudo yum install -y docker
- 启动docker服务并设置自启动
sudo systemctl start docker
sudo systemctl enable docker
- 测试,随便运行一下docker相关命令即可
docker ps
docker images
Centos安装gitlab 社区版
- EXTERNAL_URL为域名或IP地址
sudo EXTERNAL_URL="http://your-gitlab-domain.com" yum install -y gitlab-ce
- 后续可以进入/etc/gitlab/gitlab.rb配置文件对external_url进行修改。
sudo vi /etc/gitlab/gitlab.rb
- 配置更新后需要重新启动
sudo gitlab-ctl reconfigure
sudo gitlab-ctl start
- 访问
安装gitlab-runner
- 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
- 注册
docker exec -it gitlab-runner gitlab-runner register
- 报错
嘎,很流程哈,顺利进入报错流程~
查了下资料: 链接:docs.gitlab.cn/omnibus/set…
- 常见的 SSL 错误
-
SSL certificate problem: unable to get local issuer certificate此错误表示客户端无法获取根 CA。要解决此问题,您可以尝试新人在客户端上连接的服务器的根 CA,或修改证书 使得在您尝试连接的服务器上显示完整的链式证书。
建议使用完整的证书链,以防止客户端连接时出现 SSL 错误。完整的证书链顺序应首先包含服务器证书,然后是所有中间证书,最后是根 CA。
-
unable to verify the first certificate此错误表明服务器提供了不完整的证书链。要修复此错误,您需要用完整链式证书替换服务器的证书。 完整的证书链顺序应首先包含服务器证书,然后是所有中间证书,最后是根 CA。
-
certificate signed by unknown authority此错误表明客户端不信任证书或 CA。要修复此错误,连接到服务器的客户端需要信任证书或 CA。
-
SSL certificate problem: self signed certificate in certificate chain此错误表明客户端不信任证书或 CA。要修复此错误,连接到服务器的客户端需要信任证书或 CA。
-
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"。
END