hifis.gitlab

Rol de Ansible para GitLab

:warning: ¡Este proyecto está archivado! :warning:

Este rol ha sido migrado a nuestra colección hifis.toolkit:

Estado CI Rol de Ansible Galaxy Descargas de Rol de Ansible Galaxy Puntuación de calidad de Ansible Galaxy Licencia Apache-2.0 Última versión

Un rol para instalar y configurar el paquete oficial Omnibus de GitLab.

Actualmente, las plataformas soportadas son:

  • CentOS 7
  • AlmaLinux 8
  • Debian 11 (Bullseye)
  • Ubuntu 18.04 LTS (Bionic Beaver)
  • Ubuntu 20.04 LTS (Focal Fossa)
  • Ubuntu 22.04 LTS (Jemmy Jellyfish)

Requisitos

Ninguno.

Variables del Rol

Variables Importantes

Edición de GitLab

La edición de GitLab a instalar. Utilice gitlab-ce para la Edición Comunitaria o gitlab-ee para la Edición Empresarial.

gitlab_edition: "gitlab-ee"

Versión y Lanzamiento de GitLab

Establezca una versión específica de GitLab para instalar. Asegúrese de especificar también el lanzamiento deseado. Puede encontrar los lanzamientos disponibles aquí.

gitlab_version: "15.6.1"

# Lanzamiento de GitLab para RHEL/AlmaLinux 8
gitlab_release: "ce.0.el8"

# Lanzamiento de GitLab para Ubuntu
gitlab_release: "ce.0"

Por favor, note: Si no se especifica ninguna versión de GitLab, el rol siempre instalará el paquete más reciente disponible.

URL de la Clave GPG

URL de la clave GPG que se usó para firmar los paquetes.

gitlab_gpg_key_url: "https://packages.gitlab.com/gitlab/{{ gitlab_edition }}/gpgkey"

ID de la Clave GPG

Identificador de la clave GPG que se utilizó para firmar los paquetes.

gitlab_gpg_key_id: "F6403F6544A38863DAA0B6E03F01618A51312F3F"

URL del Repositorio de Paquetes

URL del repositorio de paquetes basado en el sistema operativo.

gitlab_repo_url: "https://packages.gitlab.com/gitlab/{{ gitlab_edition }}/ubuntu/"

URL del Repositorio de Paquetes de Fuente

URL del repositorio de paquetes fuente (solo CentOS y AlmaLinux).

gitlab_source_repo_url: "https://packages.gitlab.com/gitlab/{{ gitlab_edition }}/el/{{ ansible_facts.distribution_major_version }}/SRPMS"

Nombre del Paquete

Nombre del paquete de GitLab a instalar.

gitlab_package_name: "{{ gitlab_edition + '=' + gitlab_version + '-' + gitlab_release if gitlab_version and gitlab_release else gitlab_edition }}"

Dependencias de Paquetes

Lista de paquetes dependientes requeridos por GitLab según el sistema operativo.

gitlab_dependencies:
  - apt-transport-https
  - curl
  - gnupg
  - openssh-server
  - openssl
  - tzdata

URL de su Instancia de GitLab

Proporcione la URL de su instancia de GitLab:

gitlab_external_url: 'https://gitlab.example.com'

Zona Horaria que Usará GitLab

Elija la zona horaria que usará GitLab:

gitlab_time_zone: 'Europe/Berlin'

Período de Tiempo para Mantener Copias de Seguridad

Establezca el período de tiempo (en segundos) para mantener sus copias de seguridad de GitLab:

gitlab_backup_keep_time: '604800'

Variables Opcionales

Nombre de la Plantilla para el Archivo de Configuración de GitLab

Especifique el nombre de la plantilla para el archivo de configuración de GitLab:

gitlab_configuration_file_template: 'gitlab.rb.j2'

Ruta al Archivo de Configuración de GitLab

Especifique la ruta de la plantilla para el archivo de configuración de GitLab que contiene las configuraciones personalizadas de su instancia de GitLab:

gitlab_configuration_file_path: '/etc/gitlab/gitlab.rb'

Tema de GitLab que se Usará por Defecto

Elija el Tema por Defecto para los nuevos usuarios de GitLab:

gitlab_default_theme: '2'

Ruta a las Copias de Seguridad de GitLab

Establezca la ruta a las copias de seguridad de GitLab:

gitlab_backup_path: '/var/opt/gitlab/backups'

Puerto en el que Escucha el Servidor Web Nginx

Establezca el puerto en el que escucha el servidor web Nginx de GitLab:

gitlab_nginx_listen_port: '80'

¿Acepta el Servidor Web Nginx Peticiones HTTPS?

Elija si el servidor web Nginx de GitLab acepta peticiones HTTPS:

gitlab_nginx_listen_https: 'false'

¿Redirige el Servidor Web Nginx Peticiones HTTP a HTTPS?

Elija si el servidor web Nginx de GitLab redirige peticiones HTTP a HTTPS:

gitlab_nginx_redirect_http_to_https: 'false'

Establecer Banderas de Funciones de GitLab

Establezca las banderas de funciones de GitLab para habilitar o deshabilitar características adicionales. La variable es una lista de pares clave-valor que requieren el nombre de la bandera de función y su estado booleano enabled. El valor predeterminado se establece en una lista vacía [].

gitlab_feature_flags:
  - name: "vscode_web_ide"
    enabled: true
  - name: "chatops"
    enabled: true
  - name: "webauthn"
    enabled: false  

Caso de uso solo de Mattermost

Este rol se puede usar para ejecutar Mattermost sin implementar GitLab. En este escenario, servicios como sidekiq o puma no son necesarios. Establezca en true para evitar que el rol recargue esos servicios:

gitlab_mattermost_only_context: 'false'

Variables a Establecer si se Usa Redis Externo

Cambiar para Usar Instancia de Redis Externa

Establezca el interruptor en false para habilitar la instancia de Redis externa:

gitlab_use_internal_redis: 'false'

Contraseña para Autenticar Servicios Redis dentro del Clúster

Se recomienda habilitar la autenticación para Redis Master y Redis Replicas proporcionando la contraseña respectiva:

gitlab_redis_password: 'cambiame'

Cuidado: Debe usar su propia contraseña privada y encriptada aquí.

Contraseña para Autenticar Sentinels de Redis

El soporte para la autenticación de contraseñas de Redis Sentinel se introdujo en GitLab 16.1.

gitlab_redis_sentinel_password: 'cambiame'

Cuidado: Debe usar su propia contraseña privada y encriptada aquí.

Nombre de Referencia del Clúster de Redis

Elija un nombre para el Clúster de Redis para referencias:

gitlab_redis_cluster_name: 'redis-cluster'

Lista de Direcciones IP de los Servidores Sentinel de Redis

Agregue una lista de direcciones IP de los servidores Sentinel de Redis involucrados:

gitlab_redis_sentinel_ips:
  - '192.168.33.11'
  - '192.168.33.12'
  - '192.168.33.13'

Puerto en el que Escuchan los Servidores Sentinel de Redis

Elija el puerto en el que escuchan los servidores Sentinel de Redis:

gitlab_redis_sentinel_port: '26379'

Rango de Direcciones IP Permitidas para Monitorear Servidores Sentinel de Redis

Rango de direcciones IP de GitLab que tienen permiso para monitorear los servidores Sentinel de Redis:

gitlab_ip_range: '{{ ansible_facts.default_ipv4.address }}/24'

Variables a Establecer si se Usa Gitaly Externo

Cambiar para Usar Instancia de Gitaly Externa

Establezca el interruptor en false para habilitar la instancia de Gitaly externa:

gitlab_use_internal_gitaly: 'false'

Ruta al Directorio de Datos de GitLab

Especifique dónde poner el directorio de datos de GitLab:

gitlab_git_data_dir: "/var/opt/gitlab/git-data"

Token de Autenticación de Gitaly

Se necesita un token de autenticación de Gitaly:

gitlab_gitaly_token: 'cambiame'

Cuidado: Debe usar su propia contraseña privada y encriptada aquí.

Token de Shell de GitLab

Se necesita un token de shell de GitLab:

gitlab_secret_token: 'cambiame'

Cuidado: Debe usar su propia contraseña privada y encriptada aquí.

Dirección IP de la Instancia de Gitaly

Especifique la dirección IP de la instancia de Gitaly:

gitlab_gitaly_instance_ip: '127.0.0.1'

Puerto de la Instancia de Gitaly

Especifique el puerto de la instancia de Gitaly:

gitlab_gitaly_instance_port: '8075'

Variables a Establecer si se Usa Base de Datos PostgreSQL Externa

Cambiar para Usar Instancia de Base de Datos PostgreSQL Externa

Establezca el interruptor en false para habilitar la instancia de base de datos PostgreSQL externa:

gitlab_use_internal_postgresql: 'false'

Dirección IP de la Instancia de Base de Datos PostgreSQL Externa

Establezca la dirección IP de la instancia de base de datos PostgreSQL:

gitlab_postgresql_db_host: '127.0.0.1'

Contraseña para la Instancia de Base de Datos PostgreSQL Externa

Establezca la contraseña de la instancia de base de datos PostgreSQL:

gitlab_postgresql_db_password: 'cambiame'

Cuidado: Debe usar su propia contraseña privada y encriptada aquí.

Configurar el Registro de GitLab

Habilite el registro de contenedores de GitLab:

gitlab_registry_enable: "true"

Por favor, tenga en cuenta: Si no ejecuta un balanceador de carga frente a GitLab y deja que Nginx se encargue de la encriptación SSL, también configure registry_nginx['ssl_certificate'] y registry_nginx['ssl_certificate_key'] a través de gitlab_additional_configurations.

Configuraciones Adicionales dadas como Variables de Rol

Cualquier otra configuración que aún no sea parte del archivo de configuración de GitLab se puede dar mediante variables del rol de Ansible.

Configuraciones a través de Variables similares a Diccionarios en Ruby

Las variables de Ruby que no son parte del archivo de configuración de GitLab se pueden dar como variables de rol de Ansible.

Atribución de Código / Términos de Uso:

Esta idea de pares clave-valor genéricos se atribuye al trabajo de Jeff Geerling que está originalmente licenciado bajo la Licencia MIT.

Ejemplo de uso:

gitlab_additional_configurations:
  - gitlab_rails:
      - key: "time_zone"
        value: "Europe/Berlin"
  - nginx:
      - key: "listen_port"
        type: "plain"
        value: "80"
      - key: "listen_https"
        type: "plain"
        value: "false"

Configuración resultante:

gitlab_rails['time_zone'] = 'Europe/Berlin'
nginx['listen_port'] = 80
nginx['listen_https'] = false

Configuraciones a través de Llamadas a Funciones Ruby

Las llamadas a funciones de Ruby que no son parte del archivo de configuración de GitLab se pueden dar como variables del rol de Ansible.

Ejemplo de uso:

gitlab_ruby_configuration_calls:
  - key: "pages_external_url"
    value: "https://pages.example.com"
  - key: "registry_external_url"
    value: "https://registry.example.com"
  - key: "mattermost_external_url"
    value: "https://mattermost.example.com"

Configuración resultante:

registry_external_url "https://registry.example.com"
pages_external_url "https://pages.example.com"
mattermost_external_url "https://mattermost.example.com"

Dependencias

Ninguna.

Licencia

Apache-2.0

Información del Autor

Equipo de Software HIFIS

Contribuidores

Nos gustaría agradecer y dar créditos a los siguientes contribuyentes de este proyecto:

Acerca del proyecto

Install and configure official GitLab Omnibus package

Instalar
ansible-galaxy install hifis.gitlab
Licencia
other
Descargas
24.9k
Propietario
Helmholtz Digital Services for Science — Collaboration made easy.