almaops.ct_gitlab_runner
almaops.ct_gitlab_runner
Ce rôle déploie gitlab-runner dans un conteneur Docker et l'enregistre dans GitLab.
Variables du Rôle
ct_gitlab_runner_name
: le nom qui sera visible sur la page des runners, par défaut c'est "{{ inventory_hostname }}"
ct_gitlab_runner_ct_name
: nom du conteneur, par défaut c'est "gitlab-runner"
; changez-le si vous prévoyez d'exécuter plusieurs runners sur le même hôte
ct_gitlab_runner_registration_token
: ce jeton est nécessaire pour s'enregistrer ; il peut être obtenu à partir du projet pour des runners spécifiques et à partir du panneau d'administration pour des runners partagés ; paramètre obligatoire, pas de valeur par défaut
ct_gitlab_runner_coordinator_url
: adresse de votre GitLab, par défaut configurée sur "https://gitlab.com/ci"
; changez-la si vous avez une installation GitLab sur site
ct_gitlab_runner_tags
: sujet ; par défaut []
ct_gitlab_runner_executor
: sujet ; par défaut "docker"
car c'est le moyen le plus pratique ; aucun autre exécuteur n'a été testé
ct_gitlab_runner_parallel_builds_number
: par défaut "1"
ct_gitlab_runner_run_untagged
: indiquez si le runner doit exécuter des jobs non tagués, par défaut "true"
ct_gitlab_runner_docker_image
: par défaut "alpine"
ct_gitlab_runner_path_srv_dir
: répertoire de base pour déterminer où stocker les configurations de service, par défaut "/srv"
ct_gitlab_runner_path_cfg_dir
: répertoire final où les configurations de service sont stockées, par défaut "{{ ct_gitlab_runner_path_srv_dir }}/{{ ct_gitlab_runner_ct_name }}/config"
ct_gitlab_runner_path_cfg
: fichier de configuration du runner, par défaut "{{ ct_gitlab_runner_path_cfg_dir }}/config.toml"
; ne le changez pas, c'est vraiment config.toml
, je le jure
ct_gitlab_runner_ct_image_tag
: version du runner, c'est-à-dire le tag d'image de gitlab-runner, par défaut "alpine"
ct_gitlab_runner_ct_image
: image du conteneur gitlab-runner, par défaut "gitlab/gitlab-runner:{{ ct_gitlab_runner_ct_image_tag }}"
; changez-le uniquement si vous souhaitez avoir une version personnalisée du conteneur gitlab-runner
ct_gitlab_runner_ct_restart_policy
: politique de redémarrage du conteneur, par défaut "always"
ct_gitlab_runner_ct_state
: état du conteneur après le déploiement, par défaut "started"
ct_gitlab_runner_ct_restart
: si nous avons besoin de redémarrer le conteneur après le déploiement, par défaut "false"
ct_gitlab_runner_ct_pull
: si nous devons essayer de récupérer l'image lors du déploiement, par défaut "false"
ct_gitlab_runner_ct_recreate
: si nous devons recréer le conteneur, par défaut "false"
ct_gitlab_runner_cache_s3_enabled
: si nous allons utiliser S3/Minio pour les caches, par défaut false
ct_gitlab_runner_cache_s3_server_address
: sujet, obligatoire si S3 est activé, pas de valeur par défaut
ct_gitlab_runner_cache_s3_access_key
: sujet, obligatoire si S3 est activé, pas de valeur par défaut
ct_gitlab_runner_cache_s3_secret_key
: sujet, obligatoire si S3 est activé, pas de valeur par défaut
ct_gitlab_runner_force_reg
: si nous voulons réenregistrer ce runner ; par défaut false
ct_gitlab_runner_docker_volumes
: montages supplémentaires pour les conteneurs exécutés par l'exécuteur Docker, par défaut []
; utile si vous souhaitez passer docker.sock
ou monter le volume /cache
ct_gitlab_runner_dind_enabled
: définir sur true
si vous avez besoin que vos conteneurs Docker s'exécutent en mode privilégié ; par défaut false
ct_gitlab_runner_ct_volumes
: par défaut, monte simplement un répertoire de configuration dans le conteneur du runner, c'est-à-dire [ "{{ ct_gitlab_runner_path_cfg_dir }}:/etc/gitlab-runner:rw" ]
ct_gitlab_runner_dond_enabled
: si défini sur true
(et c'est la valeur par défaut), nous passons également /var/run/docker.sock
dans le conteneur du runner
Il y a plusieurs autres variables intéressantes. Jetez un œil : defaults/main.yml
Exemple de Playbook
- hosts:
- gitlab_runners
become: true
vars:
# cfg commun
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 }}"
# jetons
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
Licence
MIT
Informations sur l'Auteur
Dmitrii Kashin, freehck@freehck.com