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.
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.
GitLab Git web interface
ansible-galaxy install geerlingguy.gitlab