hifis.gitlab
Rol de Ansible para GitLab
:warning: ¡Este proyecto está archivado! :warning:
Este rol ha sido migrado a nuestra colección hifis.toolkit
:
- https://github.com/hifis-net/ansible-collection-toolkit
- https://galaxy.ansible.com/ui/repo/published/hifis/toolkit/
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
Información del Autor
Contribuidores
Nos gustaría agradecer y dar créditos a los siguientes contribuyentes de este proyecto:
ansible-galaxy install hifis.gitlab