almaops.ct_gitlab_runner
almaops.ct_gitlab_runner
这个角色在 Docker 容器中部署 gitlab-runner,并在 GitLab 中注册它。
角色变量
ct_gitlab_runner_name
: 在跑者页面上看到的名称,默认为 "{{ inventory_hostname }}"
ct_gitlab_runner_ct_name
: 容器名称,默认为 "gitlab-runner"
,如果要在同一主机上运行多个跑者,请更改此项
ct_gitlab_runner_registration_token
: 注册所需的令牌,可以从项目中获取特定跑者的令牌,也可以从管理员面板获取共享跑者的令牌;这是必填参数,没有默认值
ct_gitlab_runner_coordinator_url
: 您 GitLab 的地址,默认配置为 "https://gitlab.com/ci"
;如果您有本地 GitLab 安装,请更改此项
ct_gitlab_runner_tags
: 标签;默认值为 []
ct_gitlab_runner_executor
: 执行器;默认值为 "docker"
,因为这是最方便的方式;没有测试其他执行器
ct_gitlab_runner_parallel_builds_number
: 默认值为 "1"
ct_gitlab_runner_run_untagged
: 指定跑者是否需要运行未打标签的作业,默认值为 "true"
ct_gitlab_runner_docker_image
: 默认值为 "alpine"
ct_gitlab_runner_path_srv_dir
: 基础目录,以确定在哪里存储服务配置,默认值为 "/srv"
ct_gitlab_runner_path_cfg_dir
: 最终目录,服务配置存储在此,默认值为 "{{ ct_gitlab_runner_path_srv_dir }}/{{ ct_gitlab_runner_ct_name }}/config"
ct_gitlab_runner_path_cfg
: 跑者配置文件,默认值为 "{{ ct_gitlab_runner_path_cfg_dir }}/config.toml"
;请勿更改,它真的是 config.toml
ct_gitlab_runner_ct_image_tag
: 跑者版本,即 gitlab-runner 的镜像标签,默认值为 "alpine"
ct_gitlab_runner_ct_image
: gitlab-runner 容器的镜像,默认值为 "gitlab/gitlab-runner:{{ ct_gitlab_runner_ct_image_tag }}"
;仅在想拥有自定义构建的 gitlab-runner 容器时更改
ct_gitlab_runner_ct_restart_policy
: 容器重启策略,默认值为 "always"
ct_gitlab_runner_ct_state
: 部署后容器状态,默认值为 "started"
ct_gitlab_runner_ct_restart
: 部署后是否需要重启容器,默认值为 "false"
ct_gitlab_runner_ct_pull
: 部署时是否需要尝试拉取镜像,默认值为 "false"
ct_gitlab_runner_ct_recreate
: 是否需要重新创建容器,默认值为 "false"
ct_gitlab_runner_cache_s3_enabled
: 是否使用 S3/Minio 作为缓存,默认值为 false
ct_gitlab_runner_cache_s3_server_address
: 必填项,如果启用了 S3,没有默认值
ct_gitlab_runner_cache_s3_access_key
: 必填项,如果启用了 S3,没有默认值
ct_gitlab_runner_cache_s3_secret_key
: 必填项,如果启用了 S3,没有默认值
ct_gitlab_runner_force_reg
: 是否想要重新注册此跑者;默认值为 false
ct_gitlab_runner_docker_volumes
: Docker 执行器运行的容器的附加挂载,默认值为 []
;如果您想传递 docker.sock
或挂载 /cache
卷,这会很有用
ct_gitlab_runner_dind_enabled
: 如果需要您的 Docker 容器以特权模式运行,请设置为 true
;默认值为 false
ct_gitlab_runner_ct_volumes
: 默认值只是将一个配置目录挂载到跑者容器中,即 [ "{{ ct_gitlab_runner_path_cfg_dir }}:/etc/gitlab-runner:rw" ]
ct_gitlab_runner_dond_enabled
: 如果设置为 true
(这是默认值),我们还会将 /var/run/docker.sock
传递给跑者容器
还有一些其他有趣的变量。请查看:defaults/main.yml
示例剧本
- hosts:
- gitlab_runners
become: true
vars:
# 通用配置
ct_gitlab_runner_ct_image_tag: "v14.8.1"
ct_gitlab_runner_cache_s3_enabled: true
ct_gitlab_runner_cache_s3_server_address: "{{ minio_bind_ip }}:{{ minio_bind_port }}"
ct_gitlab_runner_cache_s3_access_key: "{{ minio_access_key }}"
ct_gitlab_runner_cache_s3_secret_key: "{{ minio_secret_key }}"
ct_gitlab_runner_name: "{{ runner_name }}_{{ inventory_hostname }}"
gitlab_runner_ct_name: "gitlab-runner_{{ runner_name }}"
# 令牌
main_registration_token: "<...>"
proj_registration_token: "<...>"
roles:
- role: almaops.ct_gitlab_runner
tags:
- runner-tag-common
vars:
runner_name: "common"
ct_gitlab_runner_registration_token: "{{ main_registration_token }}"
ct_gitlab_runner_parallel_builds_number: "3"
ct_gitlab_runner_tags:
- common
- role: almaops.ct_gitlab_runner
tags:
- runner-tag-proj
vars:
runner_name: "proj"
ct_gitlab_runner_registration_token: "{{ proj_registration_token }}"
ct_gitlab_runner_parallel_builds_number: "1"
ct_gitlab_runner_run_untagged: "false"
ct_gitlab_runner_tags:
- proj
许可证
MIT
作者信息
Dmitrii Kashin, freehck@freehck.com