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

À propos du projet

deploy gitlab-runner in docker container and register it

Installer
ansible-galaxy install almaops.ct_gitlab_runner
Licence
Unknown
Téléchargements
668
Propriétaire
Premium IT Consulting