Etiquetas
Después de la adquisición de github el pasado mes de Junio por parte de Microsoft un montón de desarrolladores han decidido migrar sus proyectos a otros repositorios y donde gitlab va ganando fuerza y adeptos dentro de la comunidad libre, gracias a esto GitLab se ha puesto en boca de muchas voces relevantes en la industria, algo que a su vez ha hecho que muchos desarrolladores quieran descubrir qué ofrece exactamente esta alternativa frente al que sigue siendo el poder establecido, GitHub.
GitLab nació en 2011 como un proyecto dentro de GitHub (creado tres años antes), y con el tiempo evolucionó para convertirse en una alternativa y completa, que proporciona repositorios privados de código gratuitos(GitHub solo los ofrece en su modo de pago) y ofrece una interfaz muy ligera y simple.
Se mantienen en ambas funciones como las wikis para la documentación o las gráficas con las que ver de forma simple la interacción de los desarrolladores al proyecto.
Ahora bien existe 2 versiones GitLab Enterprise Edition (EE) y GitLab Community Edition (CE).
En esta entrada veremos como instalar la versión community (Gratis) y la podemos descargar GitLab Community Edition (CE) en un debian 9, gitlab es una aplicación desarrollada en ruby y esta versión viene con postgresql como Base de datos embebida y trabaja con nginx como servidor web en mi caso lo voy a instalar en un servidor donde ya corre apache por lo cual deberemos realizar una sencilla modificación que tocaremos mas adelante.
Lo primero debemos instalar las librerias curl openssh y postfix.
aptitude install ca-certificates curl openssh-server postfix.
Después de esto ya deberíamos tener descargado el gitlab-ce.deb pra lo cual ejecutamos.
dpkg -i gitlab-ce.deb
Instalara la aplicación desatendida y creara el archivo de configuración en /etc/gitlab y la carpeta de la aplicación como tal bajo /opt/gitlab, debemos editar el archivo de configuración y modificar la siguiente linea.
vim /etc/gitlab/gitlab.rb
external_url http://example.gitlab.org y la cambiaremos por
external_url http://192.168.1.1:8081
El puerto es opcional para instalaciones simples pero en mi caso como comente anteriormente estoy instalando en el mismo servidor donde corre apache y es bien sabido que apache correo por defecto en el puerto 80 y 8080 y nginx en el puerto 8080 pero con cambiar el puerto al 8081 como puerto http alternativo en mi caso funciono.
Guardamos el archivo y debemos reconfigurar la aplicación
gitlab-ctl reconfigure
Luego nos vamos a el navegador de preferencia http://192.168.1.1:8081
En el primer inicio te pedirá colocar la contraseña y confirmación luego debemos entrar como root y la contraseña colocada.
Ya en este punto debemos crear los usuarios que necesitemos para empezar a utilizar la aplicación, pero en mi caso como se aplicara en un dominio windows debo configurar la aplicación para integrarse con Active Directory, para esto debemos editar nuevamente el archivo de configuración gitlab.rb en /etc
vim /etc/gitlab/gitlab.rb
y buscamos la sección ldap todo debería estar comentado y agregamos estas lineas
gitlab_rails['ldap_enabled'] = true gitlab_rails['ldap_servers'] = { 'main' => { 'label' => 'Dominio', 'host' => 'ad.dominio.com', 'port' => 389, 'uid' => 'sAMAccountName', 'encryption' => 'plain', # 'verify_certificates' => true, 'bind_dn' => 'CN=gitlab,OU=USUARIOS,DC=dominio,DC=com', 'password' => 'abc123', 'allow_username_or_email_login': true, 'active_directory' => true, 'base' => 'OU=SISTEMAS,OU=USUARIOS,DC=dominio,DC=com', 'group_base' => 'OU=SISTEMAS,OU=USUARIOS,DC=dominio,DC=com', 'admin_group' => 'OU=SISTEMAS,OU=USUARIOS,DC=dominio,DC=com' } }
Paso a explicar algunas de las lineas, las mas obvias no las explicare.
label= es el nombre que nos aparecerá al ingresar en la pagina.
host= dirección ip o nombre del directorio activo
‘bind_dn’ = debemos crear un usuario en active directory para la autenticacion de gitlab con AD.
base= es la base de busqueda donde gitlab validara si el usuario existe en el grupo en mi caso como solo sistemas utilizara el recurso el grupo de base de búsqueda es sistemas.
Una vez modificado el archivo debemos guardarlo y reconfigurar el gitlab con
gitlab-ctl reconfigure
Si colocamos todos los datos correctos ya podremos ingresar a gitlab con nuestro usuario y password de red.
Dentro de este mundo gitlab y confieso que es la primera vez que instalo este servicio al tratar de instalarlo en el servidor de producción salto un problema.
STDERR: initdb: encoding mismatch
Error executing action `run` on resource ‘execute[/opt/gitlab/embedded/bin/initdb -D /var/opt/gitlab/postgresql/data -E UTF8]’
Al parecer hay un problema entre la configuración de locales de mi servidor y los de psql y aunque gitlab esta instalado no levanta por que no tiene base de datos, pero este error se le puede hacer un bypass y es correr el comando manualmente para remover el parametro UTF-8 de psql
iniciamos desde la consola con el usuario su gitlab-psql y luego /opt/gitlab/embedded/bin/initdb -D /var/opt/gitlab/postgresql/data
tardara un rato mientras recrea las bases de datos, luego de esto un gitlab-ctl reconfigure y podemos ingresar.
Como todo servicio que posee una Base de datos hay que hacerle su respaldo también veremos en esta misma entrada como hacer backup y restore de nuestro gitlab.
Editamos el archivo de configuración gitlab.rb en etc para descomentar la ruta donde se guardara el backup ya gitlab tiene su ruta por defecto dentro de /var/opt/gitlab/backup
gitlab_rails['backup_path'] = "/var/opt/gitlab/backups" guardamos y reconfiguramos gitlab-ctl reconfigure y ejecutamos; gitlab-rake gitlab:backup:create
Nos creara el respaldo con timestamp del día en la ruta /var/opt/gitlab/backup
Para restaurar debemos tener una instalación en limpio de la misma versión.
sudo gitlab-ctl stop unicorn sudo gitlab-ctl stop sidekiq # Verify sudo gitlab-ctl status gitlab-rake gitlab:backup:restore BACKUP=numerotimestamp del respaldo gitlab algo pareceido a esto "1543233348_2018_11_26_11.3.9_gitlab_backup.tar", tardara un poco y luego ejecutamos gitlab-ctl restart gitlab-ctl reconfigure
También es importante recordar que debemos hacer backup del la carpeta gitlab bajo /etc.
Y con esto podemos disfrutar de nuestro nuevo servidor de repositorio y control de versiones.
Debe estar conectado para enviar un comentario.