almaops.ct_gitlab_runner
almaops.ct_gitlab_runner
Ta rola wdraża gitlab-runner w kontenerze docker i rejestruje go w GitLabie.
Zmienne roli
ct_gitlab_runner_name
: nazwa, która będzie widoczna na stronie runnerów, domyślnie "{{ inventory_hostname }}"
ct_gitlab_runner_ct_name
: nazwa kontenera, domyślnie "gitlab-runner"
; zmień ją, jeśli zamierzasz uruchomić wiele runnerów na tym samym hoście
ct_gitlab_runner_registration_token
: ten token jest potrzebny do rejestracji, można go uzyskać z projektu dla konkretnych runnerów lub z panelu administracyjnego dla wspólnych runnerów; parametr obowiązkowy, brak domyślnej wartości
ct_gitlab_runner_coordinator_url
: adres Twojego GitLaba, domyślnie skonfigurowany na "https://gitlab.com/ci"
; zmień go, jeśli masz własną instalację GitLaba
ct_gitlab_runner_tags
: tematy; domyślnie []
ct_gitlab_runner_executor
: temat; domyślnie "docker"
, ponieważ jest to najwygodniejszy sposób; inne wykonawcy nie były testowane
ct_gitlab_runner_parallel_builds_number
: domyślnie "1"
ct_gitlab_runner_run_untagged
: określa, czy runner ma uruchamiać nieoznakowane zadania, domyślnie "true"
ct_gitlab_runner_docker_image
: domyślnie "alpine"
ct_gitlab_runner_path_srv_dir
: główny katalog do przechowywania konfiguracji serwisów, domyślnie "/srv"
ct_gitlab_runner_path_cfg_dir
: ostateczny katalog, w którym przechowywane są konfiguracje serwisów, domyślnie "{{ ct_gitlab_runner_path_srv_dir }}/{{ ct_gitlab_runner_ct_name }}/config"
ct_gitlab_runner_path_cfg
: plik konfiguracyjny runnera, domyślnie "{{ ct_gitlab_runner_path_cfg_dir }}/config.toml"
; nie zmieniaj tego, to naprawdę config.toml
ct_gitlab_runner_ct_image_tag
: wersja runnera, czyli tag obrazu gitlab-runnera, domyślnie "alpine"
ct_gitlab_runner_ct_image
: obraz kontenera gitlab-runner, domyślnie "gitlab/gitlab-runner:{{ ct_gitlab_runner_ct_image_tag }}"
; zmień tylko, jeśli chcesz mieć własną wersję kontenera gitlab-runner
ct_gitlab_runner_ct_restart_policy
: polityka ponownego uruchamiania kontenera, domyślnie "always"
ct_gitlab_runner_ct_state
: stan kontenera po wdrożeniu, domyślnie "started"
ct_gitlab_runner_ct_restart
: czy musimy ponownie uruchomić kontener po wdrożeniu, domyślnie "false"
ct_gitlab_runner_ct_pull
: czy musimy próbować pobrać obraz podczas wdrożenia, domyślnie "false"
ct_gitlab_runner_ct_recreate
: czy musimy odtworzyć kontener, domyślnie "false"
ct_gitlab_runner_cache_s3_enabled
: czy zamierzamy używać S3/Minio do cache, domyślnie false
ct_gitlab_runner_cache_s3_server_address
: temat, obowiązkowy jeśli S3 jest włączone, brak domyślnej wartości
ct_gitlab_runner_cache_s3_access_key
: temat, obowiązkowy jeśli S3 jest włączone, brak domyślnej wartości
ct_gitlab_runner_cache_s3_secret_key
: temat, obowiązkowy jeśli S3 jest włączone, brak domyślnej wartości
ct_gitlab_runner_force_reg
: czy chcemy ponownie zarejestrować ten runner; domyślnie false
ct_gitlab_runner_docker_volumes
: dodatkowe montowanie dla kontenerów uruchamianych przez wykonawcę dockera, domyślnie []
; przydatne, jeśli chcesz przechodzić docker.sock
lub zamontować wolumin /cache
ct_gitlab_runner_dind_enabled
: ustaw na true
, jeśli chcesz, aby Twoje kontenery dockera działały w trybie uprzywilejowanym; domyślnie false
ct_gitlab_runner_ct_volumes
: domyślnie tylko montuje katalog konfiguracyjny do kontenera runnera, tj. [ "{{ ct_gitlab_runner_path_cfg_dir }}:/etc/gitlab-runner:rw" ]
ct_gitlab_runner_dond_enabled
: jeśli ustawione na true
(i to jest domyślne), przekazujemy również /var/run/docker.sock
do kontenera runnera
Jest kilka innych ciekawych zmiennych. Sprawdź je w pliku: defaults/main.yml
Przykład Playbooka
- hosts:
- gitlab_runners
become: true
vars:
# wspólna konfiguracja
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 }}"
# tokeny
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
Licencja
MIT
Informacje o autorze
Dmitrii Kashin, freehck@freehck.com
ansible-galaxy install almaops.ct_gitlab_runner