almaops.ct_gitlab_runner
almaops.ct_gitlab_runner
Diese Rolle installiert gitlab-runner in einem Docker-Container und registriert ihn in GitLab.
Rollenvariablen
ct_gitlab_runner_name
: der Name, der auf der Runner-Seite zu sehen ist, standardmäßig "{{ inventory_hostname }}"
ct_gitlab_runner_ct_name
: Container-Name, standardmäßig "gitlab-runner"
; ändere ihn, wenn du mehrere Runner auf demselben Host ausführen möchtest.
ct_gitlab_runner_registration_token
: Dieses Token wird zur Registrierung benötigt, es kann für spezifische Runner aus dem Projekt und für geteilte Runner aus dem Admin-Panel bezogen werden; obligatorischer Parameter, kein Standardwert.
ct_gitlab_runner_coordinator_url
: Adresse deines GitLab, standardmäßig auf "https://gitlab.com/ci"
eingestellt; ändere es, wenn du eine lokale GitLab-Installation hast.
ct_gitlab_runner_tags
: Thema; Standard ist []
.
ct_gitlab_runner_executor
: Thema; Standard ist "docker"
, da dies der bequemste Weg ist; keine anderen Executor wurden getestet.
ct_gitlab_runner_parallel_builds_number
: Standard ist "1"
.
ct_gitlab_runner_run_untagged
: Bestimme, ob der Runner unmarkierte Jobs ausführen muss, standardmäßig "true"
.
ct_gitlab_runner_docker_image
: Der Standard ist "alpine"
.
ct_gitlab_runner_path_srv_dir
: Basisverzeichnis, um festzustellen, wo die Dienstkonfigurationen gespeichert werden; standardmäßig "/srv"
.
ct_gitlab_runner_path_cfg_dir
: Endverzeichnis, wo die Dienstkonfigurationen gespeichert werden; standardmäßig "{{ ct_gitlab_runner_path_srv_dir }}/{{ ct_gitlab_runner_ct_name }}/config"
.
ct_gitlab_runner_path_cfg
: Runner-Konfigurationsdatei, der Standard ist "{{ ct_gitlab_runner_path_cfg_dir }}/config.toml"
; ändere dies nicht, es ist wirklich config.toml
, ich schwöre.
ct_gitlab_runner_ct_image_tag
: Runner-Version, d.h. das Image-Tag von gitlab-runner, standardmäßig "alpine"
.
ct_gitlab_runner_ct_image
: Bild des gitlab-runner-Containers, Standard ist "gitlab/gitlab-runner:{{ ct_gitlab_runner_ct_image_tag }}"
; ändere es nur, wenn du eine benutzerdefinierte Version des gitlab-runner-Containers haben möchtest.
ct_gitlab_runner_ct_restart_policy
: Container-Neustartpolitik, Standard ist "always"
.
ct_gitlab_runner_ct_state
: Container-Zustand nach der Bereitstellung, Standard ist "started"
.
ct_gitlab_runner_ct_restart
: Ob wir den Container nach der Bereitstellung neu starten müssen, Standard ist "false"
.
ct_gitlab_runner_ct_pull
: Ob wir versuchen müssen, das Image während der Bereitstellung zu ziehen, Standard ist "false"
.
ct_gitlab_runner_ct_recreate
: Ob wir den Container neu erstellen müssen, Standard ist "false"
.
ct_gitlab_runner_cache_s3_enabled
: Ob wir S3/Minio für Caches verwenden, Standard ist false
.
ct_gitlab_runner_cache_s3_server_address
: Thema, zwingend erforderlich, wenn S3 aktiviert ist, kein Standardwert.
ct_gitlab_runner_cache_s3_access_key
: Thema, zwingend erforderlich, wenn S3 aktiviert ist, kein Standardwert.
ct_gitlab_runner_cache_s3_secret_key
: Thema, zwingend erforderlich, wenn S3 aktiviert ist, kein Standardwert.
ct_gitlab_runner_force_reg
: Ob wir diesen Runner erneut registrieren möchten; Standard ist false
.
ct_gitlab_runner_docker_volumes
: Zusätzliche Mounts für Container, die vom Docker-Executor ausgeführt werden; der Standard ist []
; nützlich, wenn du docker.sock
oder ein /cache
-Volume bereitstellen möchtest.
ct_gitlab_runner_dind_enabled
: Auf true
setzen, wenn du möchtest, dass deine Docker-Container im privilegierten Modus ausgeführt werden; Standard ist false
.
ct_gitlab_runner_ct_volumes
: Standardmäßig wird nur ein Konfigurationsverzeichnis in den Runner-Container gemountet, d.h. [ "{{ ct_gitlab_runner_path_cfg_dir }}:/etc/gitlab-runner:rw" ]
.
ct_gitlab_runner_dond_enabled
: Wenn auf true
gesetzt (und das ist der Standard), geben wir auch /var/run/docker.sock
an den Runner-Container weiter.
Es gibt noch einige weitere interessante Variablen. Schau dir diese an: defaults/main.yml.
Beispiel-Playbook
- hosts:
- gitlab_runners
become: true
vars:
# allgemeine Konfiguration
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 }}"
# Tokens
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
Lizenz
MIT
Autoreninformation
Dmitrii Kashin, freehck@freehck.com