yabusygin.gitlab

Rol de Ansible: gitlab

Estado del flujo de trabajo de prueba Estado del flujo de trabajo de lanzamiento

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:

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 transporte tls o starttls. 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. Consulta crontab(5).
  • gitlab_backup_cron_hour -- campo "hora" de la línea de comandos de cron. Variable obligatoria. Consulta crontab(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 de gitlab_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>

Acerca del proyecto

An Ansible role for setting up GitLab.

Instalar
ansible-galaxy install yabusygin.gitlab
Licencia
mit
Descargas
105
Propietario