ct_gitlab_runner

almaops.ct_gitlab_runner

Эта роль разворачивает gitlab-runner в контейнере Docker и регистрирует его в GitLab.

Переменные роли

ct_gitlab_runner_name: имя, которое будет видно на странице runner'ов, по умолчанию - "{{ inventory_hostname }}".

ct_gitlab_runner_ct_name: имя контейнера, по умолчанию - "gitlab-runner". Измените его, если собираетесь запускать несколько runner'ов на одном хосте.

ct_gitlab_runner_registration_token: этот токен необходим для регистрации, его можно получить из проекта для конкретных runner'ов и из администраторской панели для общих runner'ов; обязательный параметр, нет значения по умолчанию.

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: укажите, должен ли runner запускать задания без меток, по умолчанию - "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: файл конфигурации runner'а, по умолчанию - "{{ ct_gitlab_runner_path_cfg_dir }}/config.toml"; не меняйте его, это действительно config.toml, я клянусь.

ct_gitlab_runner_ct_image_tag: версия runner'а, т.е. тег изображения 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: если хотим повторно зарегистрировать этот runner; по умолчанию - false.

ct_gitlab_runner_docker_volumes: дополнительные монтирования для контейнеров, запущенных через docker executor, по умолчанию - []; полезно, если хотите передать docker.sock или смонтировать том /cache.

ct_gitlab_runner_dind_enabled: установите в true, если нужно, чтобы ваши контейнеры Docker работали в привилегированном режиме; по умолчанию - false.

ct_gitlab_runner_ct_volumes: по умолчанию просто монтирует каталог конфигурации в контейнер runner'а, т.е. [ "{{ ct_gitlab_runner_path_cfg_dir }}:/etc/gitlab-runner:rw" ].

ct_gitlab_runner_dond_enabled: если установлено в true (и это по умолчанию), мы также передаем /var/run/docker.sock в контейнер runner'а.

Есть несколько других интересных переменных. Ознакомьтесь с ними: 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

Информация об авторе

Дмитрий Кашин, freehck@freehck.com

О проекте

deploy gitlab-runner in docker container and register it

Установить
ansible-galaxy install almaops/ansible-role-ct_gitlab_runner
Лицензия
Unknown
Загрузки
603
Владелец
Premium IT Consulting