geerlingguy.gitlab

Rol de Ansible: GitLab

Obsoleto: En septiembre de 2023, este rol fue declarado obsoleto ya que ya no mantengo ninguna instancia de GitLab y utilizo Gitea para mi trabajo personal. Por favor, considera bifurcar este rol o usar el rol de GitLab de otra persona.

CI

Instala GitLab, un frontend basado en Ruby para Git, en cualquier sistema Linux de RedHat/CentOS o Debian/Ubuntu.

Los detalles de la cuenta de administrador predeterminada de GitLab son los siguientes; ¡asegúrate de iniciar sesión inmediatamente después de la instalación y cambiar estas credenciales!

root
5iveL!fe

Requisitos

Ninguno.

Variables del Rol

Las variables disponibles se enumeran a continuación, junto con los valores predeterminados (consulta defaults/main.yml):

gitlab_domain: gitlab
gitlab_external_url: "https://{{ gitlab_domain }}/"

El dominio y la URL a los que será accesible la instancia de GitLab. Esto se establece como la configuración de external_url en gitlab.rb, y si deseas ejecutar GitLab en un puerto diferente (además de 80/443), puedes especificar el puerto aquí (por ejemplo, https://gitlab:8443/ para el puerto 8443).

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

El gitlab_git_data_dir es la ubicación donde se almacenarán todos los repositorios de Git. Puedes usar una unidad compartida o cualquier ruta en el sistema.

gitlab_backup_path: "/var/opt/gitlab/backups"

El gitlab_backup_path es la ubicación donde se almacenarán las copias de seguridad de GitLab.

gitlab_edition: "gitlab-ce"

La edición de GitLab que deseas instalar. Generalmente, será gitlab-ce (Edición Comunitaria) o gitlab-ee (Edición Empresarial).

gitlab_version: ''

Si deseas instalar una versión específica, establece la versión aquí (por ejemplo, 11.4.0-ce.0 para Debian/Ubuntu, o 11.4.0-ce.0.el7 para RedHat/CentOS).

gitlab_config_template: "gitlab.rb.j2"

La plantilla gitlab.rb.j2 empaquetada con este rol está destinada a ser muy genérica y adaptarse a varios casos de uso. Sin embargo, muchas personas prefieren tener una versión más personalizada, y puedes sobrescribir la plantilla predeterminada de este rol con la tuya, añadiendo cualquier personalización adicional que necesites. Para hacerlo:

  • Crea un directorio templates al mismo nivel que tu playbook.
  • Crea un archivo templates/mygitlab.rb.j2 (simplemente elige un nombre diferente al de la plantilla predeterminada).
  • Establece la variable así: gitlab_config_template: mygitlab.rb.j2 (con el nombre de tu plantilla personalizada).

Configuración de SSL.

gitlab_redirect_http_to_https: true
gitlab_ssl_certificate: "/etc/gitlab/ssl/{{ gitlab_domain }}.crt"
gitlab_ssl_certificate_key: "/etc/gitlab/ssl/{{ gitlab_domain }}.key"

Configuración SSL de GitLab; indica a GitLab que redirija las solicitudes normales de http a https, y la ruta al certificado y la clave (los valores predeterminados funcionarán para la creación automática de un certificado autofirmado, si se establece en true en la variable a continuación).

# Configuración de Certificado Autofirmado SSL.
gitlab_create_self_signed_cert: true
gitlab_self_signed_cert_subj: "/C=US/ST=Missouri/L=Saint Louis/O=IT/CN={{ gitlab_domain }}"

Si se debe crear un certificado autofirmado para servir GitLab a través de una conexión segura. Configura gitlab_self_signed_cert_subj de acuerdo a tu localidad y organización.

Configuración de LetsEncrypt.

gitlab_letsencrypt_enable: false
gitlab_letsencrypt_contact_emails: ["[email protected]"]
gitlab_letsencrypt_auto_renew_hour: 1
gitlab_letsencrypt_auto_renew_minute: 30
gitlab_letsencrypt_auto_renew_day_of_month: "*/7"
gitlab_letsencrypt_auto_renew: true

Configuración de LetsEncrypt de GitLab; indica a GitLab si debe solicitar y usar un certificado de LetsEncrypt, si gitlab_letsencrypt_enable está establecido en true. Se pueden configurar múltiples correos electrónicos de contacto bajo gitlab_letsencrypt_contact_emails como una lista.

# Configuración de LDAP.
gitlab_ldap_enabled: false
gitlab_ldap_host: "example.com"
gitlab_ldap_port: "389"
gitlab_ldap_uid: "sAMAccountName"
gitlab_ldap_method: "plain"
gitlab_ldap_bind_dn: "CN=Username,CN=Users,DC=example,DC=com"
gitlab_ldap_password: "password"
gitlab_ldap_base: "DC=example,DC=com"

Configuración de LDAP de GitLab; si gitlab_ldap_enabled es true, el resto de la configuración le indicará a GitLab cómo conectarse a un servidor LDAP para la autenticación centralizada.

gitlab_dependencies:
  - openssh-server
  - postfix
  - curl
  - openssl
  - tzdata

Dependencias requeridas por GitLab para ciertas funcionalidades, como soporte de zona horaria o correo electrónico. Puedes cambiar esta lista en tu propio playbook si, por ejemplo, deseas instalar exim en lugar de postfix.

gitlab_time_zone: "UTC"

Zona horaria de GitLab.

gitlab_backup_keep_time: "604800"

Cuánto tiempo mantener las copias de seguridad locales (¡útil si no quieres que las copias de seguridad llenen tu disco!).

gitlab_download_validate_certs: true

Controla si se deben validar los certificados al descargar el script de instalación del repositorio de GitLab.

# Configuración de correo electrónico.
gitlab_email_enabled: false
gitlab_email_from: "[email protected]"
gitlab_email_display_name: "Gitlab"
gitlab_email_reply_to: "[email protected]"

Configuración de correo del sistema GitLab. Desactivada de forma predeterminada; establece gitlab_email_enabled en true para habilitarla y asegúrate de ingresar valores válidos para "de"/"respuesta a".

# Configuración SMTP
gitlab_smtp_enable: false
gitlab_smtp_address: "smtp.server"
gitlab_smtp_port: "465"
gitlab_smtp_user_name: "usuario smtp"
gitlab_smtp_password: "contraseña smtp"
gitlab_smtp_domain: "example.com"
gitlab_smtp_authentication: "login"
gitlab_smtp_enable_starttls_auto: true
gitlab_smtp_tls: false
gitlab_smtp_openssl_verify_mode: "none"
gitlab_smtp_ca_path: "/etc/ssl/certs"
gitlab_smtp_ca_file: "/etc/ssl/certs/ca-certificates.crt"

Configuración SMTP de GitLab; si gitlab_smtp_enable es true, el resto de la configuración le indicará a GitLab cómo enviar correos usando un servidor SMTP.

gitlab_nginx_listen_port: 8080

Si estás ejecutando GitLab detrás de un proxy inverso, es posible que desees cambiar el puerto de escucha a otro.

gitlab_nginx_listen_https: false

Si estás ejecutando GitLab detrás de un proxy inverso, es posible que desees terminar SSL en otro servidor proxy o equilibrador de carga.

gitlab_nginx_ssl_verify_client: ""
gitlab_nginx_ssl_client_certificate: ""

Si deseas habilitar la Autenticación de Cliente SSL de 2 vías, establece gitlab_nginx_ssl_verify_client y agrega una ruta al certificado del cliente en gitlab_nginx_ssl_client_certificate.

gitlab_default_theme: 2

GitLab incluye varios temas, y puedes establecer el predeterminado para todos los usuarios con esta variable. Consulta los temas incluidos de GitLab para elegir un predeterminado.

gitlab_extra_settings:
  - gitlab_rails:
      - key: "trusted_proxies"
        value: "['foo', 'bar']"
      - key: "env"
        type: "plain"
        value: |
          {
          "http_proxy" => "https://my_http_proxy.company.com:3128",
          "https_proxy" => "https://my_http_proxy.company.com:3128",
          "no_proxy" => "localhost, 127.0.0.1, company.com"
          }
  - unicorn:
      - key: "worker_processes"
        value: 5
      - key: "pidfile"
        value: "/opt/gitlab/var/unicorn/unicorn.pid"

GitLab tiene muchas otras configuraciones (ver documentación oficial), y puedes agregarlas con esta variable especial gitlab_extra_settings con la configuración correspondiente y las palabras clave key y value.

Dependencias

Ninguna.

Ejemplo de Playbook

- hosts: servers
  vars_files:
    - vars/main.yml
  roles:
    - { role: geerlingguy.gitlab }

Dentro de vars/main.yml:

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

Licencia

MIT / BSD

Información del Autor

Este rol fue creado en 2014 por Jeff Geerling, autor de Ansible for DevOps.

Instalar
ansible-galaxy install geerlingguy.gitlab
Licencia
mit
Descargas
527.5k
Propietario
Father, author, developer, maker. Sometimes called "an inflammatory enigma". #stl #drupal #ansible #k8s #raspberrypi #crohns