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

关于项目

deploy gitlab-runner in docker container and register it

安装
ansible-galaxy install almaops.ct_gitlab_runner
许可证
Unknown
下载
668
拥有者
Premium IT Consulting