GitLab es una plataforma de control de versiones gratuita, de código abierto y basada en la web que le permite administrar todos sus repositorios Git desde el servidor centralizado. GitLab es una excelente alternativa a Github, que ofrece características muy útiles que incluyen revisión de código, gestión de problemas, bifurcación de repositorios, fusión, seguimiento de tiempo e integración e implementación continuas. GitLab está especialmente diseñado para que los desarrolladores creen, revisen e implementen sus proyectos.
GitLab está disponible en tres ediciones diferentes:Community Edition (CE), Enterprise Edition (EE) y una versión alojada en GitLab. Puede instalar cualquiera de ellos según los requisitos de su caso de uso.
En este tutorial, le mostraremos cómo instalar GitLab CE en CentOS 8.
Requisitos
- Un nuevo CentOS 8 VPS en la plataforma en la nube Atlantic.Net.
- Una CPU con 2 núcleos para admitir hasta 500 usuarios.
- Al menos 4 GB de RAM para admitir hasta 50 usuarios.
- Un nombre de dominio válido dirigido a la IP de su servidor.
- Una contraseña raíz configurada en su servidor.
Paso 1:crear el servidor en la nube de Atlantic.Net
Primero, inicie sesión en su servidor en la nube de Atlantic.Net. Cree un nuevo servidor, eligiendo CentOS 8 como sistema operativo con al menos 4 GB de RAM. Conéctese a su servidor en la nube a través de SSH e inicie sesión con las credenciales resaltadas en la parte superior de la página.
Una vez que haya iniciado sesión en su servidor CentOS 8, ejecute el siguiente comando para actualizar su sistema base con los últimos paquetes disponibles.
dnf update -y
A continuación, deberá instalar algunas dependencias requeridas en su sistema. Puede instalarlos todos con el siguiente comando:
dnf install curl policycoreutils python3-policycoreutils -y
Paso 2:instalar GitLab CE
Puede instalarlo con el siguiente comando:
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | bash
Una vez que se agrega el repositorio, debe obtener el siguiente resultado:
A continuación, instale GitLab CE ejecutando el siguiente comando:
dnf install gitlab-ce -y
Una vez que la instalación se haya completado con éxito, puede continuar con el siguiente paso.
Paso 3:Protege GitLab con Let's Encrypt
A continuación, deberá configurar la URL de GitLab y habilitar la integración de Let's Encrypt. Puedes hacerlo editando el archivo /etc/gitlab/gitlab.rb:
nano /etc/gitlab/gitlab.rb
Cambie las siguientes líneas que coincidan con su nombre de dominio y habilite la integración de Let's Encrypt con el valor deseado:
external_url 'https://gitlab.example.com' letsencrypt['enable'] = true letsencrypt['contact_emails'] = ['[email protected]'] letsencrypt['auto_renew'] = true letsencrypt['auto_renew_hour'] = 12 letsencrypt['auto_renew_minute'] = 15 letsencrypt['auto_renew_day_of_month'] = "*/4"
Guarde y cierre el archivo cuando haya terminado. Luego, vuelva a configurar GitLab CE con el siguiente comando:
gitlab-ctl reconfigure
Este comando reconfigurará GitLab y lo protegerá con Let's Encrypt SSL. Una vez que la configuración de GitLab se haya completado con éxito, debería obtener el siguiente resultado:
* execute[reload prometheus] action run - execute /opt/gitlab/bin/gitlab-ctl hup prometheus Recipe: monitoring::alertmanager * runit_service[alertmanager] action restart (up to date) Recipe: monitoring::postgres-exporter * runit_service[postgres-exporter] action restart (up to date) Recipe: monitoring::grafana * runit_service[grafana] action restart (up to date) Recipe: nginx::enable * execute[reload nginx] action run - execute gitlab-ctl hup nginx Recipe: letsencrypt::enable * ruby_block[display_le_message] action run - execute the ruby block display_le_message Recipe: crond::enable * runit_service[crond] action restart (up to date) Running handlers: Running handlers complete Chef Client finished, 609/1641 resources updated in 10 minutes 43 seconds Warnings: Environment variable LANG specifies a non-UTF-8 locale. GitLab requires UTF-8 encoding to function properly. Please check your locale settings. gitlab Reconfigured!
Paso 4:acceda a la interfaz de usuario web de GitLab
En este punto, GitLab está instalado y configurado, y ahora puede acceder a la interfaz de usuario de GitLab visitando la URL https://gitlab.example.com. Será redirigido a la pantalla de cambio de contraseña como se muestra a continuación:
Establezca la nueva contraseña para el usuario raíz y haga clic en Cambiar tu contraseña botón. Una vez que la contraseña se haya cambiado correctamente, debería ver la pantalla de inicio de sesión de GitLab:
Ingrese root como su nombre de usuario, su contraseña especificada y haga clic en Firmar en botón. Debería ver el tablero de GitLab en la siguiente pantalla:
Paso 5:deshabilitar el registro de usuario
Para deshabilitar el registro de usuario, haga clic en Administrador como se muestra a continuación:
Ahora, haga clic en Configuración en el panel izquierdo. Debería ver la siguiente página:
A continuación, Expandir las restricciones de registro. Debería ver la siguiente página:
A continuación, desmarque el botón Registro habilitado para deshabilitar el registro de usuarios en la página de bienvenida de GitLab y haga clic en Guardar Cambios botón.
A continuación, cierre sesión en su panel de control de GitLab. Debería ver la siguiente pantalla:
Como puede ver, falta la pestaña para el registro de usuarios.
Paso 6:Automatice la copia de seguridad de GitLab
Puede realizar una copia de seguridad completa de los datos de GitLab con el siguiente comando:
gitlab-rake gitlab:backup:create
Este comando tomará una copia de seguridad completa de los datos de GitLab y la guardará en el directorio /var/opt/gitlab/backups. Una vez que la copia de seguridad se haya completado con éxito, debería obtener el siguiente resultado:
2020-03-22 10:59:34 -0400 -- Dumping database ... Dumping PostgreSQL database gitlabhq_production ... [DONE] 2020-03-22 10:59:37 -0400 -- done 2020-03-22 10:59:37 -0400 -- Dumping repositories ... 2020-03-22 10:59:38 -0400 -- done 2020-03-22 10:59:38 -0400 -- Dumping uploads ... 2020-03-22 10:59:38 -0400 -- done 2020-03-22 10:59:38 -0400 -- Dumping builds ... 2020-03-22 10:59:38 -0400 -- done 2020-03-22 10:59:38 -0400 -- Dumping artifacts ... 2020-03-22 10:59:38 -0400 -- done 2020-03-22 10:59:38 -0400 -- Dumping pages ... 2020-03-22 10:59:38 -0400 -- done 2020-03-22 10:59:38 -0400 -- Dumping lfs objects ... 2020-03-22 10:59:38 -0400 -- done 2020-03-22 10:59:38 -0400 -- Dumping container registry images ... 2020-03-22 10:59:38 -0400 -- done Creating backup archive: 1584889178_2020_03_22_12.9.0_gitlab_backup.tar ... done Uploading backup archive to remote storage ... skipped Deleting tmp directories ... done done done done done done done done done Deleting old backups ... skipping Backup task is done.
Se recomienda programar copias de seguridad con Cron para que no necesite ejecutar copias de seguridad regularmente.
Puede programar copias de seguridad editando el siguiente archivo:
nano /etc/crontab
Agregue la siguiente línea para hacer una copia de seguridad de los datos de GitLab todos los días a las 8:00 p. m.:
0 20 * * * gitlab-rake gitlab:backup:create
Guarde y cierre el archivo cuando haya terminado.
Conclusión
¡Felicidades! Ha instalado y configurado con éxito GitLab CE en el servidor CentOS 8. ¡Ahora puede alojar su propio repositorio con GitLab y comenzar a colaborar con otros desarrolladores hoy mismo con GitLab en un VPS con Atlantic.Net!