almaops.ct_gitlab_runner

almaops.ct_gitlab_runner

Este rol despliega gitlab-runner en un contenedor de Docker y lo registra en GitLab.

Variables del rol

ct_gitlab_runner_name: el nombre que se verá en la página de runners, por defecto es "{{ inventory_hostname }}"

ct_gitlab_runner_ct_name: nombre del contenedor, por defecto es "gitlab-runner", cámbialo si vas a ejecutar múltiples runners en el mismo host.

ct_gitlab_runner_registration_token: este token es necesario para el registro, se puede obtener del proyecto para runners específicos y del panel de administración para runners compartidos; es un parámetro obligatorio, sin valor por defecto.

ct_gitlab_runner_coordinator_url: dirección de tu GitLab, por defecto está configurada en "https://gitlab.com/ci"; cámbiala si tienes una instalación de GitLab local.

ct_gitlab_runner_tags: sujetos; el valor por defecto es [].

ct_gitlab_runner_executor: sujetos; el valor por defecto es "docker" ya que es la forma más conveniente; no se han probado otros ejecutores.

ct_gitlab_runner_parallel_builds_number: el valor por defecto es "1".

ct_gitlab_runner_run_untagged: especifica si el runner debe ejecutar trabajos sin etiquetar, el valor por defecto es "true".

ct_gitlab_runner_docker_image: el valor por defecto es "alpine".

ct_gitlab_runner_path_srv_dir: directorio base para determinar dónde almacenar las configuraciones del servicio, el valor por defecto es "/srv".

ct_gitlab_runner_path_cfg_dir: directorio final, donde se almacenan las configuraciones del servicio, el valor por defecto es "{{ ct_gitlab_runner_path_srv_dir }}/{{ ct_gitlab_runner_ct_name }}/config".

ct_gitlab_runner_path_cfg: archivo de configuración del runner, el valor por defecto es "{{ ct_gitlab_runner_path_cfg_dir }}/config.toml"; no lo cambies, es realmente config.toml, lo prometo.

ct_gitlab_runner_ct_image_tag: versión del runner, es decir, el tag de la imagen de gitlab-runner, el valor por defecto es "alpine".

ct_gitlab_runner_ct_image: imagen del contenedor de gitlab-runner, el valor por defecto es "gitlab/gitlab-runner:{{ ct_gitlab_runner_ct_image_tag }}"; cámbialo solo si deseas tener una compilación personalizada del contenedor de gitlab-runner.

ct_gitlab_runner_ct_restart_policy: política de reinicio del contenedor, el valor por defecto es "always".

ct_gitlab_runner_ct_state: estado del contenedor después del despliegue, el valor por defecto es "started".

ct_gitlab_runner_ct_restart: si necesitamos reiniciar el contenedor después del despliegue, el valor por defecto es "false".

ct_gitlab_runner_ct_pull: si necesitamos intentar descargar la imagen durante el despliegue, el valor por defecto es "false".

ct_gitlab_runner_ct_recreate: si necesitamos recrear el contenedor, el valor por defecto es "false".

ct_gitlab_runner_cache_s3_enabled: si vamos a usar S3/Minio para caches, el valor por defecto es false.

ct_gitlab_runner_cache_s3_server_address: sujeto, obligatorio si S3 está habilitado, sin valor por defecto.

ct_gitlab_runner_cache_s3_access_key: sujeto, obligatorio si S3 está habilitado, sin valor por defecto.

ct_gitlab_runner_cache_s3_secret_key: sujeto, obligatorio si S3 está habilitado, sin valor por defecto.

ct_gitlab_runner_force_reg: si queremos re-registrar este runner; el valor por defecto es false.

ct_gitlab_runner_docker_volumes: montajes adicionales para contenedores ejecutados por el ejecutor de Docker, el valor por defecto es []; útil si deseas pasar docker.sock o montar el volumen /cache.

ct_gitlab_runner_dind_enabled: configura en true si necesitas que tus contenedores Docker se ejecuten en modo privilegiado; el valor por defecto es false.

ct_gitlab_runner_ct_volumes: por defecto solo monta un directorio de configuración en el contenedor del runner, es decir, [ "{{ ct_gitlab_runner_path_cfg_dir }}:/etc/gitlab-runner:rw" ].

ct_gitlab_runner_dond_enabled: si se establece en true (y este es el valor por defecto), también pasamos /var/run/docker.sock al contenedor del runner.

Hay varias variables interesantes más. Échales un vistazo: defaults/main.yml

Ejemplo de Playbook

- hosts:
    - gitlab_runners
  become: true
  vars:
    # configuración común
    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

Licencia

MIT

Información del autor

Dmitrii Kashin, freehck@freehck.com

Acerca del proyecto

deploy gitlab-runner in docker container and register it

Instalar
ansible-galaxy install almaops.ct_gitlab_runner
Licencia
Unknown
Descargas
668
Propietario
Premium IT Consulting