gitlab配置pipeline学习备忘录

已使用bitnami搭建gitlab服务器,现在想要搭建自动化测试,百度查询发现需要另外搭建gitlab-runner,以下是搭建与配置自动化测试过程:

一、下载并安装gitlab-runner:

查看gitlab版本为16.4.1:

下载对应的gitlab-runner安装包:

Index of /gitlab-runner/yum/el7-x86_64/ | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror

我用的是centos7.9系统,所以下载的是rpm包。

安装gitlab-runner的详细教程参考:

实战:GitLabRunner安装部署-2023.4.26(安装成功) - 知乎 (zhihu.com)

问题:

        1、tls: failed to verify certificate: x509: cannot validate certificate for 192.168.xx.xx because it doesn't contain any IP SANs

        这个报错是由于gitlab的证书的CN值与本机IP地址不匹配,需要重新生成证书:

        首先创建一个配置文件san.conf:  

[req]
distinguished_name = req_distinguished_name
req_extensions = v3_req

[req_distinguished_name]
countryName = Country Name (2 letter code)
countryName_default = CN
stateOrProvinceName = State or Province Name (full name)
stateOrProvinceName_default = SD
localityName = Locality Name (eg, city)
localityName_default = JN
organizationName = Organization Name (eg, company)
organizationName_default = HG
commonName = Common Name (e.g. server FQDN or YOUR name)
commonName_default = 192.168.xx.xx

[v3_req]
# Extensions to add to a certificate request
subjectAltName = @alt_names

[alt_names]
DNS.1 = example.com
DNS.2 = www.example.com
DNS.3 = mail.example.com
IP.1 = 192.168.xx.xx
 

使用上述配置文件用openssl生成证书:

sudo openssl req -x509 -nodes -newkey rsa:2048 -keyout /etc/gitlab/ssl/server.key -out /etc/gitlab/ssl/server.crt -days 3650 -config san.conf -extensions v3_req

我这里生成的是自签名证书,更标准的做法是先生成根证书,再用根证书签发gitlab证书。

将上面生成的证书拷贝到gitlab配置目录/etc/gitlab/ssl/下(注意先备份原证书),重启gitlab服务:

gitlab-ctl restart

        2、tls: failed to verify certificate: x509: certificate signed by unknown authority

centos7(gitlab-runner服务器)执行命令sudo gitlab-runner run报上面的错,这是因为系统不信任gitlab的证书,需要把他添加为系统信任的证书:

可以使用下面的命令获取到gitlab证书,也可以直接从gitlab服务器上拷贝出来:

openssl s_client -showcerts -connect 192.168.9.69:443 < /dev/null | \
> openssl x509 -outform PEM > gitlab.crt
Can't use SSL_get_servername
depth=0 C = CN, ST = SD, L = JN, O = HG, CN = 192.168.9.69
verify error:num=18:self signed certificate
verify return:1
depth=0 C = CN, ST = SD, L = JN, O = HG, CN = 192.168.9.69
verify return:1
DONE
然后放到centos7目录/etc/pki/ca-trust/source/anchors/下,然后执行:

sudo update-ca-trust extract

二、创建project runner

        登录gitlab,按照如下步骤创建runner:

这么配置:

生成:

在centos7(gitlab-runner)上执行命令:

sudo gitlab-runner register

这一步会要求你提供url和token,将上面的url和token填入:

新的runner已创建成功,详细配置见配置文件/etc/gitlab-runner/config.toml:

三、配置.gitlab-ci.yml

        在git工程的根目录下创建文件.gitlab-ci.yml,并作为git项目的普通文件提交到gitlab仓库,文件内容:

stages:
  - build
build-job:
  stage: build
  script:
    - ./configure CFLAGS="-O2" --prefix=`pwd`/install
    - make -j16 && make install && cd contrib/ && make -j16 &&  make install && cd ../
    - make check-world

提交.gitlab-ci.yml后,gitlab服务器的pipeline自动寻找gitlab-runner按照yml文件执行自动测试,可能会出现自动测试一直在等待开始的情况,这时可以手动执行命令启动gitlab-runner:

gitlab-runner run

或者在文件/etc/gitlab-runner/config.toml的[[runners]]中新增条目使之主动接收job并执行

按照上述配置配置完成即可正常进行自动化测试,如有疑问或错误请联系我。

不懂就问AI:通义官网 (aliyun.com)

补充:

1、非root用户执行自动化测试:

        我测试的是postgresql数据库,因为这个数据库不能在root用户下启动,当执行回归测试的时候因为检测到是root用户而不能启动数据库导致回归测试失败,所以需要设置以其他非root用户执行自动化测试:

        1)按照上述第二步创建project runner重新创建一个runner,这一步在执行gitlab-runner register是需要在非root用户下执行,不能加sudo;

        2)创建好runner后,打开配置文件vim ~/.gitlab-runner/config.toml(注意这个配置文件在当前用户目录),在runner里添加该用户有读写权限的路径:

        3)最后重启gitlab-runner,然后在上述非root用户下执行gitlab-runner run就可以了

  • 17
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值