yabusygin.gitlab
Rol de Ansible: gitlab
Un rol de Ansible para configurar GitLab versión 13.0 o superior.
Requisitos
El rol utiliza el módulo community.docker.docker_compose. Por lo tanto, se requiere la colección community.docker en un nodo de control.
Los siguientes requisitos son necesarios en un nodo gestionado para ejecutar este rol:
- Docker Engine
- Docker Compose
- Requisitos del módulo community.docker.docker_compose
Se recomienda usar el rol yabusygin.docker para instalar todos los requisitos en el nodo gestionado.
Variables del Rol
Aquí hay un rápido resumen de las variables. Consulta Wiki y la sección "Ejemplo de Playbook" abajo para ejemplos.
Configuración de Docker
gitlab_image
-- Imagen de contenedor Docker a usar. Valor por defecto:gitlab/gitlab-ce:latest
.gitlab_restart_policy
-- Política de reinicio del contenedor Docker. Valores:always
,on-failure
,unless-stopped
. Docker no reinicia un contenedor bajo ninguna circunstancia por defecto.
URL
gitlab_hostname
-- nombre de dominio del host de GitLab. Valor por defecto:gitlab.test
.gitlab_web_port
-- número de puerto de la interfaz web. Valor por defecto:80
.gitlab_registry_port
-- número de puerto del registro de contenedores. Valor por defecto:5050
.gitlab_ssh_port
-- número de puerto SSH del shell de Git. Valor por defecto:22
.
HTTPS
gitlab_https_enable
-- habilitar HTTPS. Por defecto:no
.gitlab_letsencrypt_enable
-- habilitar HTTPS automatizado con Let’s Encrypt. Por defecto:no
.gitlab_https_key
-- ruta a la clave privada en el host de control.gitlab_https_cert
-- ruta a la cadena de certificados en el host de control.
Correos Electrónicos Salientes
gitlab_email_enable
-- habilitar correos electrónicos salientes. Valores:yes
,no
. Valor por defecto:no
.gitlab_email_from_mailbox
-- valor del buzón del encabezado "De" en un correo electrónico saliente.gitlab_email_from_display_name
-- valor del nombre de visualización del encabezado "De" en un correo electrónico saliente.gitlab_email_reply_to_mailbox
-- valor del buzón del encabezado "Reply-To" en un correo electrónico saliente.gitlab_email_smtp_server_host
-- nombre del servidor SMTP.gitlab_email_smtp_server_port
-- puerto del servidor SMTP.gitlab_email_smtp_transport_security
-- mecanismo de seguridad de la capa de transporte. Valores:tls
(SMTPS),starttls
.gitlab_email_smtp_verify_server_cert
-- verificar el certificado del servidor SMTP, cuando se selecciona el mecanismo de seguridad de la capa de transportetls
ostarttls
. Valor por defecto:yes
.gitlab_email_smtp_ca_cert
-- ruta local al certificado CA usado para verificar el certificado del servidor SMTP.gitlab_email_smtp_user_auth_method
-- método de autenticación del usuario SMTP. Valores:plain
,login
,cram_md5
.gitlab_email_smtp_user_name
-- nombre de usuario SMTP.gitlab_email_smtp_user_password
-- contraseña del usuario SMTP.
Servidor de Aplicaciones (Puma)
Referencia de variables:
gitlab_workers
-- número de trabajadores de Puma.gitlab_min_threads
-- número mínimo de hilos de Puma.gitlab_max_threads
-- número máximo de hilos de Puma.
Monitoreo
Referencia de variables:
gitlab_monitoring_whitelist
-- una lista de direcciones/subredes de los puntos finales de monitoreo que pueden realizar verificaciones de salud.
Copia de Seguridad
Consulta la documentación de GitLab para más detalles.
Copias de Seguridad Automatizadas
gitlab_backup_cron_enable
-- habilitar la tarea cron que realiza copias de seguridad periódicas. Valor por defecto:no
.gitlab_backup_cron_minute
-- campo "minuto" de la línea de comandos de cron. Variable obligatoria. Consultacrontab(5)
.gitlab_backup_cron_hour
-- campo "hora" de la línea de comandos de cron. Variable obligatoria. Consultacrontab(5)
.gitlab_backup_cron_day_of_month
-- campo "día del mes" de la línea de comandos de cron. Valor por defecto:*
.gitlab_backup_cron_month
-- campo "mes" de la línea de comandos de cron. Valor por defecto:*
.gitlab_backup_cron_day_of_week
-- campo "día de la semana" de la línea de comandos de cron. Valor por defecto:*
.gitlab_backup_cron_docker_cmd
-- comando que la tarea cron de copia de seguridad usa para invocar Docker Engine. Por defecto:docker
.gitlab_backup_cron_docker_compose_cmd
-- comando que la tarea cron de copia de seguridad usa para invocar Docker Compose. Por defecto:docker compose
.
Subir Copias de Seguridad a Almacenamiento Compatible con S3
gitlab_backup_upload_enable
-- habilitar la subida de copias de seguridad a almacenamiento remoto. Valor por defecto:no
.gitlab_backup_upload_s3_region
-- región de AWS.gitlab_backup_upload_s3_bucket
-- bucket S3 para almacenar objetos de copia de seguridad. Variable obligatoria.gitlab_backup_upload_s3_access_key_id
-- ID de clave de acceso. Variable obligatoria.gitlab_backup_upload_s3_secret_access_key
-- clave de acceso secreto. Variable obligatoria.gitlab_backup_upload_s3_endpoint
-- punto final de la API HTTP de almacenamiento compatible con S3.gitlab_backup_upload_s3_path_style_enable
-- usar el método de estilo de ruta para acceder a un bucket (ver Métodos para acceder a un bucket).
Limitar la Vida de los Archivos de Copia de Seguridad Locales
gitlab_backup_keep_time
-- establece el valor degitlab_rails['backup_keep_time']
.
Dependencias
Si se utiliza el rol yabusygin.docker para instalar Docker y otros requisitos, se recomienda habilitar el mapeo de espacios de nombres de usuario (consulta el ejemplo abajo).
Ejemplo de Playbook
Configuración predeterminada (Docker y otros requisitos ya están instalados):
- name: configurar GitLab
hosts: gitlab
tasks:
- name: configurar GitLab
ansible.builtin.import_role:
name: yabusygin.gitlab
Personalizado con el rol yabusygin.docker:
---
- name: configurar Docker y GitLab personalizados
hosts: gitlab
tasks:
- name: configurar Docker
ansible.builtin.import_role:
name: yabusygin.docker
vars:
userns-remap: default
log-driver: json-file
log-opts:
max-size: 10m
max-file: "3"
- name: configurar GitLab
ansible.builtin.import_role:
name: yabusygin.gitlab
vars:
gitlab_image: gitlab/gitlab-ee:latest
gitlab_restart_policy: always
gitlab_hostname: gitlab.example.com
gitlab_web_port: 3443
gitlab_registry_port: 5001
gitlab_ssh_port: 2222
gitlab_https_enable: yes
gitlab_https_key: https/gitlab.key.pem
gitlab_https_cert: https/gitlab.crt.pem
gitlab_workers: 2
gitlab_min_threads: 4
gitlab_max_threads: 4
gitlab_monitoring_whitelist:
- 192.168.10.39
- 10.0.1.0/24
gitlab_email_enable: yes
gitlab_email_from_mailbox: [email protected]
gitlab_email_from_display_name: GitLab
gitlab_email_reply_to_mailbox: [email protected]
gitlab_email_smtp_server_host: smtp.example.com
gitlab_email_smtp_server_port: 587
gitlab_email_smtp_transport_security: starttls
gitlab_email_smtp_user_auth_method: login
gitlab_email_smtp_user_name: gitlab
gitlab_email_smtp_user_password: Pa$$w0rD
gitlab_backup_cron_enable: yes
gitlab_backup_cron_minute: 0
gitlab_backup_cron_hour: 2
gitlab_backup_cron_docker_cmd: /usr/bin/docker
gitlab_backup_cron_docker_compose_cmd: /usr/local/bin/docker-compose
gitlab_backup_upload_enable: yes
gitlab_backup_upload_type: s3
gitlab_backup_upload_s3_endpoint: https://ams3.digitaloceanspaces.com
gitlab_backup_upload_s3_region: ams3
gitlab_backup_upload_s3_bucket: my.s3.bucket
gitlab_backup_upload_s3_access_key_id: AKIAKIAKI
gitlab_backup_upload_s3_secret_access_key: secret123
gitlab_backup_keep_time: 604800
Licencia
MIT
Información del Autor
Alexey Busygin <yaabusygin@gmail.com>
ansible-galaxy install yabusygin.gitlab