跳到内容
欧德之怒的博客
返回

【Gitlab-CICD-二】GitlabCICD基本概念与GitlabRunner部署

编辑此页

基本概念

.gitlab-ci.yml

Pipleline

Runner

步骤

前提

gitlab版本

gitllab项目开启CICD

准备Executor

executor选择

拉取gitlab-runner镜像

创建Runner容器

# 创建Runner数据存储路径
mkdir -p /data/gitlab/runner/main
# 创建Runner的compose路径
mkdir -p /data/gitlab/compose/main
# 创建docker-compose.yaml文件到Runner的compose目录
cd  /data/gitlab/compose/main && touch docker-compose.yaml
docker network create --driver bridge --subnet 172.19.0.0/16 --gateway 172.19.0.1 server
version: "3.0"
services:
  runner:
    image: gitlab/gitlab-runner:v16.6.2
    # 需要增加伪终端,不然无限重启
    tty: true
    container_name: runner-main
    restart: unless-stopped
    privileged: true
    hostname: 'runner-main'
    # 设置自定义域名解析
    extra_hosts:
       - "test.gitlab.com:192.168.1.2"
    environment:
      - TZ=Asia/Shanghai
    ports:
      - '2100:22'
    volumes:
      - "/data/gitlab/runner/main:/etc/gitlab-runner"
      - "/var/run/docker.sock:/var/run/docker.sock"
    networks:
      server:
        ipv4_address: "172.19.0.2" # 指定容器静态IP
networks:
  server:                # 此处使用已存在的网络,实际使用中需要根据情况修改
    external: true
cd /data/gitlab/compose/main && docker compose up -d

Gitlab上注册Runner

权限检查

登录容器

 # 登陆容器
 docker exec -ti runner-main bash
 # 写入gitlab的域名信息,假设IP为192.168.1.2,域名为test.gitlab.com,如果docker-compose设置了
 echo "192.168.1.2 test.gitlab.com" >> /etc/hosts

执行登录命令

gitlab是http的情况

gitlab-runner register --url "http://test.gitlab.com"  --registration-token  "xxxxxxxxx"  --name "runner-main" --executor "docker"  --tag-list "main"  --docker-image "registry.cn-hangzhou.aliyuncs.com/oudezhinu/gitlab-server:latest"
gitlab-runner register  --url http://test.gitlab.com  --token xxxxx

gitlab是自签名https的情况

# 创建存放自签名certs文件的地址
mkdir -p /etc/gitlab-runner/certs
openssl s_client -showcerts -connect test.gitlab.com:443 -servername test.gitlab.com < /dev/null 2>/dev/null | openssl x509 -outform PEM > /etc/gitlab-runner/certs/test.gitlab.com.crt
# 注册
gitlab-runner register  --url "https://test.gitlab.com/" --registration-token "xxxx" --name "runner-main" --executor "docker"  --tag-list "main" --tls-ca-file "/etc/gitlab-runner/certs/test.gitlab.com.crt" --docker-image "registry.cn-hangzhou.aliyuncs.com/oudezhinu/gitlab-server:latest"
gitlab-runner register  --url https://test.gitlab.com  --token xxxxx

验证注册情况

gitlab-runner verify
concurrent = 1
check_interval = 0
shutdown_timeout = 0

[session_server]
  session_timeout = 1800

[[runners]]
  name = "runner-main"
  url = "http://test.gitlab.com/"
  id = 1
  token = "xxxxxx"       
  token_obtained_at = 2024-01-03T19:54:00Z
  token_expires_at = 0001-01-01T00:00:00Z
  executor = "docker"
  environment = ["TZ=Asia/Shanghai"]   # 新增
  [runners.cache]
    MaxUploadedArchiveSize = 0
  [runners.docker]
    tls_verify = false
    image = "registry.cn-hangzhou.aliyuncs.com/oudezhinu/gitlab-server:latest"
    privileged = false
    disable_entrypoint_overwrite = false
    oom_kill_disable = false
    disable_cache = false
    volumes = ["/var/run/docker.sock:/var/run/docker.sock", "/cache"]  # 编辑新增docker.sock
    shm_size = 0
    network_mtu = 0
    allowed_pull_policies = ["always","if-not-present"]         # 新增
    pull_policy = ["if-not-present"]                       # 新增
    dns = ["192.168.1.254", "8.8.8.8"]  # 新增,此处我添加了内部dns 192.168.1.254和谷歌dns,根据需求更改
gitlab-runner restart
gitlab-runner verify

自定义域名访问

方法一:配置内部DNS服务器

192.168.1.2 test.gitlab.com
    dns = ["8.8.8.8", "192.168.1.254"]
gitlab-runner restart
gitlab-runner verify

方法二:配置自定义域名解析

    extra_hosts = ["test.gitlab.com:192.168.1.2"]
gitlab-runner restart
gitlab-runner verify

参考链接


编辑此页
分享这篇文章:

上一篇
【Gitlab-CICD-三】Docker设置支持跨架构镜像构建
下一篇
【DND】规则书