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