Instalando GitLab en Raspberry Pi 4
En esta entrada, se procede a instalar nuestro propio servidor Git con GitLab en una Raspberry Pi 4 a la que anteriormente se le agregó un HDD de 1Tb que sería destinado para GitLab.
La intención es prescindir de servicios de terceros en la mayor parte de lo posible y poder controlar el acceso a dicha información, ya que la unica forma de acceder a esta, sería estando en la red interna o a través de la VPN que fue instalada en una entrada anterior.
Índice
- Introducción
- Instalar GitLab
- Configurar GitLab
3.1. Configurar Acceso HTTP
3.2. Configurar Acceso HTTPS
3.3 Configurar Ruta de Almacenamiento de Repositorios - Crear Usuario en GitLab
- Generar e Importar Claves SSH en GitLab
5.1. Crear clave SSH en Linux
5.2. Agregar la Clave SSH a GitLab - Crear Repositorio en GitLab
1. Introducción
GitLab ofrece un portal Web muy parecido al de Github que nos ayuda a gestionar fácilmente nuestro servidor Git.
Para realizar esta instalación se han utilizado las instrucciones de la página oficial de Gitlab para la RaspberryPi:
2. Instalar GitLab
Para comenzar la instalación de GitLab en la RaspberryPi 4:
- Iniciamos sesión en Raspberry, ya sea por SSH, VNC, RDP o directamente desde el dispositivo.
- Instalamos las dependencias necesarias, abrimos un terminal en la Raspberry y ejecutamos:
sudo apt-get install curl openssh-server ca-certificates apt-transport-https perl curl https://packages.gitlab.com/gpg.key | sudo tee /etc/apt/trusted.gpg.d/gitlab.asc
- Agregamos el paquete de GitLab a los repositorios e instalamos el paquete.
sudo curl -sS https://packages.gitlab.com/install/repositories/gitlab/raspberry-pi2/script.deb.sh | sudo bash
- Establecemos la URL por la que queramos y que sea accesible o por la IP y procedemos a instalar.
sudo EXTERNAL_URL="https://192.168.1.10" apt-get install gitlab-ce
Toca esperar pacientemente a que se instale, Mientras nos bebemos una cafetera…
3. Configurar GitLab
Para configurar GitLab, debemos editar su correspondiente fichero de configuración que se encuentra en la ruta “/etc/gitlab/gitlab.rb”, en este, podemos configurar la URL externa, certificados, etc…
- Para editar el fichero de configuración de GitLab ejecutamos:
sudo nano /etc/gitlab/gitlab.rb
3.1. Configurar Acceso HTTP
Procedemos a establecer la IP o Dominio y Puerto por el que accederemos a GitLab.
-
Buscamos la linea que comienza con “external_url”.
-
En mi caso, como el servicio solo quiero que sea visible dentro de mi red, establezco como URL la “IP Privada de la Raspberry” y el puerto “8888”.
-
Por lo tanto el valor de mi “external_url” sería “http://192.168.1.10:8888. “
3.2. Configurar Acceso HTTPS
En el caso que ya tengamos certificados SSL, procedemos a establecer la IP o Dominio, Puerto y los certificados SSL que se utilizarán para acceder a GitLab:
-
En el archivo “/etc/gitlab/gitlab.rb” localizamos la linea que comienza con “external_url”
-
En mi caso, como el servicio solo quiero que sea visible dentro de mi red, establezco como URL la “IP Privada de la Raspberry” y el puerto “8888” pero esta vez empleando “HTTPS”.
-
Por lo tanto el valor de mi “external_url” es “https://192.168.1.10:8888”.
- Para configurarle los certificados SSL, agregamos debajo de “external_url” las lineas que se adjuntan a continuación.
Establece la Ruta del certificado que corresponda en tu caso.nginx['ssl_certificate'] = "/etc/ssl/certs/gitlab.pem" nginx['ssl_certificate_key'] = "/etc/ssl/private/gitlab.key"
- El fichero quedaría de la siguiente manera después de haber realizado los cambios:
3.3 Configurar Ruta de Almacenamiento de Repositorios
- Para configurar una Ruta “customizada” para almacenar los repositorios, incluir estas líneas en el archivo cambiando el valor de “path” por la Ruta que corresponda.
git_data_dirs({ "default" => { "path" => "/var/opt/gitlab/git-data" }, "storage1" => { "path" => "/mnt/storage1/git-data" }, "storage2" => { "path" => "/mnt/storage2/git-data" } })
- En mi caso solo he utilizado una Ruta que corresponde con la unidad agregada en la entrada anterior.
- Por último, Reconfiguramos GitLab para que se efectúen los cambios:
sudo gitlab-ctl reconfigure
- Si todo ha ido bien, desde un dispositivo conectado a la red, accedemos a la URL:
- http://IP-Raspberry-Pi:8888
- Y deberíamos ver la página de Login de GitLab.
- La primera vez que accedamos a GitLab, nos logueamos con el Usuario: “root” y la “contraseña autogenerada” que podremos encontrar en el siguiente archivo:
sudo cat /etc/gitlab/initial_root_password
-
Si accedemos por primera vez al portal Web con el usuario “root”, debemos modificar la contraseña que estaba establecida por defecto.
-
Una vez establecida la nueva contraseña, el portal nos redirigirá al panel de Login y debemos acceder empleando la nueva contraseña.
4. Crear Usuario en GitLab
-
Para crear un nuevo usuario de GitLab, Iniciamos sesión con el Usuario “root”.
-
Nos dirigimos a la opción de menú “Admin Area”.
- Pulsamos en el botón “New User”.
- Rellenamos el formulario con los datos que nos solicita.
-
Si hemos configurado el servidor de correos, el nuevo usuario recibirá un email con las pautas a seguir para acceder a nuestro GitLab.
-
En caso de no haberlo configurado, podemos acceder a los usuarios desde el portal de administración y establecer una contraseña manualmente para su primer inicio de sesión.
Posteriormente el sistema le solicitará el cambio obligatorio de la contraseña cuando acceda por primera vez.
5. Generar e Importar Claves SSH en GitLab
Para poder trabajar con los repositorios desde local hacia GitLab y viceversa, es necesario configurar las claves SSH para poder conectar con el repositorio.
5.1. Crear clave SSH en Linux
Para generar una clave SSH:
- En la Raspberry, abrimos un terminal y nos situamos en la carpeta “.ssh” que se encuentra en el “Home”” del usuario.
cd ~/.ssh
- (En caso de no existir la carpeta, la creamos)
mkdir ~/.ssh
- Una vez dentro de la carpeta, procedemos a generar la clave SSH necesitamos abrir un terminal y ejecutar:
ssh-keygen -t rsa
- Nos solicitará un nombre y una contraseña que son opcionales, aunque sería recomendable establecerlos.
- Para listar la Clave SSH que hemos generado, desde un terminal ejecutamos:
El resultado del comando ejecutado es la Clave SSH que debemos Copiar para Agregarla en GitLab.cat ~/.ssh/id_rsa.pub
- Por último, Establecer los permisos de la carpeta “ssh” y las “claves SSH” ejecutando los comandos:
chmod 700 ~/.ssh chmod 600 ~/.ssh/*
5.2. Agregar la Clave SSH a GitLab
-
Iniciamos sesión con el Usuario que queramos trabajar.
-
Nos dirigimos a las Opciones de Usuario y clicamos en “Preferences”.
- Aparecerá un menú a la izquierda en el cual debemos clicar en la opción “SSH Keys”
- Una vez dentro de “SSH Keys”, observaremos el formulario a rellenar para agregar una nueva Clave de SSH.
-
“Key”: tenemos que pegar la Clave SSH que generamos anteriormente.
-
“Title”: establecemos el nombre de la clave, puede ser algo que nos ayude a identificar el dispositivo que la utiliza.
-
“Usage type”: establecemos el tipo de uso para la Clave SSH, es recomendable dejarlo por defecto.
-
“Expiration Date” [es opcional]: podemos darle una fecha de expiración a la Clave SSH o indicarle que nunca caduque.
-
- Para finalizar, pulsamos en “Add key”, y la clave quedará agregada.
Ya podemos comenzar a trabajar con los repositorios de GitLab en nuestro dispositivo.
6. Crear Repositorio en GitLab
Para crear un nuestro primer repositorio en GitLab:
- Accedemos al “Página principal del Usuario”, y pulsamos el botón “New Project”
- GitLab nos ofrece diferentes opciones para crear un nuevo repositorio:
- Crear proyecto en blanco
- Crear desde una plantilla
- Importar proyecto
- Vamos a crear un proyecto en blanco, por lo que pulsamos en “Create blank project”.
Se mostrará un formulario donde nos solicitarán varios datos para establecer la información del repositorio y el tipo de visibilidad de este (público, privado, etc..)
- Al pulsar en “Create project” la herramienta crea el proyecto y nos informa de una serie de instrucciones.
-
Para probar que todo ha ido bien podemos abrir un terminal e intentar hacer un clone del proyecto, bien por HTTP o SSH.
-
Podemos encontrar el comando para copiar en el propio repositorio clicando en el botón “Clone”
- En mi caso realizaré la clonación del repositorio por SSH, emplearé el comando:
git clone git@IP_Raspberry_Pi:Usuario/NombreDelRepositorio.git
- Si todo ha ido bien, encontraremos la carpeta del repositorio clonada en nuestro dispositivo.
- Con esto concluimos la instalación de nuestro GitLab.