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
