Introducción
GitLab es un software DevOps gratuito y de código abierto que viene con múltiples herramientas para desarrollar, asegurar y usar el software en una sola aplicación. Proporciona repositorios gratuitos ilimitados y colaboradores ilimitados. Se utiliza principalmente para alojar repositorios de Git, con funciones adicionales relacionadas con el desarrollo, como la detección de problemas. Es muy similar a Github y Bitbucket y permite que individuos y equipos compartan código de forma remota con otros.
GitLab está disponible en cuatro ediciones principales:
- GitLab Community Edition : gratuito, de código abierto y autohospedado.
- GitLab Enterprise Edition : autohospedado y de pago con funciones adicionales.
- GitLab.com : Gratis y SaaS.
- GitLab.io : instancia privada de GitLab administrada por GitLab Inc.
En esta publicación explicaremos cómo instalar GitLab CE en Alma Linux 8.
Requisitos previos
- Un servidor que ejecuta Alma Linux 8.
- Un nombre de dominio válido apunta a la IP de su servidor.
- Una contraseña de root está configurada en el servidor.
Si desea instalar Gitlab en un servidor remoto, continúe leyendo; de lo contrario, omita el primer párrafo "Conexión al servidor" y lea el siguiente.
Conexión al servidor
Para acceder al servidor, necesita saber la dirección IP. También necesitará su nombre de usuario y contraseña para la autenticación. Para conectarse al servidor como root escriba el siguiente comando:
ssh root@IP_DEL_SERVER
A continuación, deberá ingresar la contraseña de usuario raíz.
Si no está usando el usuario raíz, puede iniciar sesión con otro nombre de usuario usando el mismo comando, luego cambie la raíz a su nombre de usuario :
ssh nome_utente@IP_DEL_SERVER
A continuación, se le pedirá que introduzca su contraseña de usuario.
El puerto estándar para conectarse a través de ssh es 22 , si su servidor usa un puerto diferente, deberá especificarlo usando el parámetro -p , luego escriba el siguiente comando:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Agregar el repositorio de GitLab CE
De forma predeterminada, el paquete de GitLab no está incluido en el repositorio predeterminado de Alma Linux. Luego, deberá agregar el repositorio oficial de GitLab a su sistema. Puede descargar y agregar el siguiente script para agregar el repositorio de GitLab.
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | bash
Obtendrá el siguiente resultado:
Complete!
Generating yum cache for gitlab_gitlab-ce...
Importing GPG key 0x51312F3F:
Userid : "GitLab B.V. (package repository signing key) <[email protected]>"
Fingerprint: F640 3F65 44A3 8863 DAA0 B6E0 3F01 618A 5131 2F3F
From : https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey
Importing GPG key 0xF27EAB47:
Userid : "GitLab, Inc. <[email protected]>"
Fingerprint: DBEF 8977 4DDB 9EB3 7D9F C3A0 3CFC F9BA F27E AB47
From : https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey/gitlab-gitlab-ce-3D645A26AB9FBD22.pub.gpg
Generating yum cache for gitlab_gitlab-ce-source...
The repository is setup! You can now install packages.
Puede verificar el repositorio instalado usando el siguiente comando:
cat /etc/yum.repos.d/gitlab_gitlab-ce.repo
Obtendrá el siguiente resultado:
[gitlab_gitlab-ce]
name=gitlab_gitlab-ce
baseurl=https://packages.gitlab.com/gitlab/gitlab-ce/el/8/$basearch
repo_gpgcheck=1
gpgcheck=1
enabled=1
gpgkey=https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey
https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey/gitlab-gitlab-ce-3D645A26AB9FBD22.pub.gpg
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
[gitlab_gitlab-ce-source]
name=gitlab_gitlab-ce-source
baseurl=https://packages.gitlab.com/gitlab/gitlab-ce/el/8/SRPMS
repo_gpgcheck=1
gpgcheck=1
enabled=1
gpgkey=https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey
https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey/gitlab-gitlab-ce-3D645A26AB9FBD22.pub.gpg
sslverify=1
sslcacert=/etc/pki/tls/certs/ca-bundle.crt
metadata_expire=300
También puede listar el repositorio de GitLab usando el siguiente comando:
dnf repolist
Obtendrá el siguiente resultado:
repo id repo name
appstream Rocky Linux 8 - AppStream
baseos Rocky Linux 8 - BaseOS
extras Rocky Linux 8 - Extras
gitlab_gitlab-ce gitlab_gitlab-ce
gitlab_gitlab-ce-source gitlab_gitlab-ce-source
Instale GitLab CE en Alma Linux 8
En este punto, se crea el repositorio de GitLab en su sistema. Ahora puede instalar GitLab CE ejecutando el siguiente comando:
dnf install gitlab-ce -y
Una vez que GitLab CE esté instalado, obtendrá el siguiente resultado:
It looks like GitLab has not been configured yet; skipping the upgrade script.
*. *.
*** ***
***** *****
.****** *******
******** ********
,,,,,,,,,***********,,,,,,,,,
,,,,,,,,,,,*********,,,,,,,,,,,
.,,,,,,,,,,,*******,,,,,,,,,,,,
,,,,,,,,,*****,,,,,,,,,.
,,,,,,,****,,,,,,
.,,,***,,,,
,*,.
_______ __ __ __
/ ____(_) /_/ / ____ _/ /_
/ / __/ / __/ / / __ `/ __ \
/ /_/ / / /_/ /___/ /_/ / /_/ /
\____/_/\__/_____/\__,_/_.___/
Please configure a URL for your GitLab instance by setting `external_url`
Thank you for installing GitLab!
GitLab was unable to detect a valid hostname for your instance.
configuration in /etc/gitlab/gitlab.rb file.
Then, you can start your GitLab instance by running the following command:
sudo gitlab-ctl reconfigure
For a comprehensive list of configuration options please see the Omnibus GitLab readme
https://gitlab.com/gitlab-org/omnibus-gitlab/blob/master/README.md
Help us improve the installation experience, let us know how we did with a 1 minute survey:
https://gitlab.fra1.qualtrics.com/jfe/form/SV_6kVqZANThUQ1bZb?installation=omnibus&release=14-8
Verifying : gitlab-ce-14.8.2-ce.0.el8.x86_64 1/1
Installed:
gitlab-ce-14.8.2-ce.0.el8.x86_64
Complete!
Configuración de GitLab CE
A continuación, deberá definir su nombre de dominio en el archivo de configuración de GitLab. Para hacer esto, edite el archivo de configuración de GitLab:
nano /etc/gitlab/gitlab.rb
Cambie la siguiente línea a su nombre de dominio:
external_url 'http://gitlab.example.com'
Guarde y cierre el archivo, luego reconfigure GitLab usando el siguiente comando:
gitlab-ctl reconfigure
Una vez que se reconfigure GitLab CE, obtendrá el siguiente resultado:
Notes:
Default admin account has been configured with following details:
Username: root
Password: You didn't opt-in to print initial root password to STDOUT.
Password stored to /etc/gitlab/initial_root_password. This file will be cleaned up in first reconfigure run after 24 hours.
NOTE: Because these credentials might be present in your log files in plain text, it is highly recommended to reset the password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.
gitlab Reconfigured!
Ahora puede verificar el estado de GitLab CE usando el siguiente comando:
gitlab-ctl status
Obtendrá el siguiente resultado:
run: gitaly: (pid 26684) 69s; run: log: (pid 25075) 351s
run: gitlab-exporter: (pid 26617) 73s; run: log: (pid 25555) 207s
run: gitlab-kas: (pid 26585) 75s; run: log: (pid 25339) 334s
run: gitlab-workhorse: (pid 26595) 74s; run: log: (pid 25472) 229s
run: grafana: (pid 26665) 70s; run: log: (pid 26315) 110s
run: logrotate: (pid 25000) 364s; run: log: (pid 25008) 363s
run: nginx: (pid 25488) 226s; run: log: (pid 25499) 222s
run: node-exporter: (pid 26603) 74s; run: log: (pid 25541) 213s
run: postgres-exporter: (pid 26659) 70s; run: log: (pid 25891) 168s
run: postgresql: (pid 25207) 341s; run: log: (pid 25218) 340s
run: prometheus: (pid 26631) 72s; run: log: (pid 25629) 194s
run: puma: (pid 25406) 249s; run: log: (pid 25417) 246s
run: redis: (pid 25039) 358s; run: log: (pid 25047) 357s
run: redis-exporter: (pid 26620) 73s; run: log: (pid 25575) 201s
run: sidekiq: (pid 25423) 243s; run: log: (pid 25435) 239s
Para detener GitLab, ejecute el siguiente comando:
gitlab-ctl stop
Para iniciar GitLab, ejecute el siguiente comando:
gitlab-ctl start
Una vez hecho esto, puede continuar con el siguiente paso.
Configurar cortafuegos
A continuación, deberá permitir el servicio HTTP a través del cortafuegos. Puede permitir esto usando el siguiente comando:
firewall-cmd --permanent --add-service=http
Luego, vuelva a cargar el demonio firewalld para aplicar los cambios:
systemctl reload firewalld
Una vez que el firewall esté configurado, puede continuar con el siguiente paso.
Iniciar sesión en GitLab CE
Antes de iniciar sesión en GitLab CE, recupere la contraseña raíz de GitLab con el siguiente comando:
cat /etc/gitlab/initial_root_password
Debería ver la contraseña raíz de GitLab CE en el siguiente resultado:
# WARNING: This value is valid only in the following conditions
# 1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_password']` setting in `gitlab.rb`, it was provided before database was seeded for the first time (usually, the first reconfigure run).
# 2. Password hasn't been changed manually, either via UI or via command line.
#
# If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/reset_user_password.html#reset-your-root-password.
Password: XIlQ4/J7oQ49ZdNuGZto3f5vEJGHZJSTRSIuYL9z0/k=
# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.
Ahora abra su navegador web e inicie sesión en la interfaz web de GitLab usando la URL http://gitlab.example.com . Será redirigido a la página de inicio de sesión de GitLab.
Proporcione su nombre de usuario y contraseña raíz y haga clic en el botón Iniciar sesión . Debería ver la interfaz web de GitLab.
Configurar la copia de seguridad de GitLab
GitLab también le permite crear una copia de seguridad de la instancia de GitLab. Para crear una copia de seguridad de la instancia de GitLab, ejecute el siguiente comando:
gitlab-rake gitlab:backup:create
Una vez que se crea la copia de seguridad, obtendrá el siguiente resultado:
2022-03-11 11:13:11 +0000 -- done
2022-03-11 11:13:11 +0000 -- Dumping uploads ...
2022-03-11 11:13:11 +0000 -- done
2022-03-11 11:13:11 +0000 -- Dumping builds ...
2022-03-11 11:13:11 +0000 -- done
2022-03-11 11:13:11 +0000 -- Dumping artifacts ...
2022-03-11 11:13:11 +0000 -- done
2022-03-11 11:13:11 +0000 -- Dumping pages ...
2022-03-11 11:13:11 +0000 -- done
2022-03-11 11:13:11 +0000 -- Dumping lfs objects ...
2022-03-11 11:13:11 +0000 -- done
2022-03-11 11:13:11 +0000 -- Dumping terraform states ...
2022-03-11 11:13:11 +0000 -- done
2022-03-11 11:13:11 +0000 -- Dumping container registry images ...
2022-03-11 11:13:11 +0000 -- [DISABLED]
2022-03-11 11:13:11 +0000 -- Dumping packages ...
2022-03-11 11:13:11 +0000 -- done
Creating backup archive: 1646997191_2022_03_11_14.8.2_gitlab_backup.tar ... done
Uploading backup archive to remote storage ... skipped
Deleting tmp directories ... done
De forma predeterminada, la copia de seguridad de GitLab se almacena en /var/opt/gitlab/backups . Puede cambiar la ruta de la copia de seguridad cambiando la configuración en el archivo de configuración de GitLab en /etc/gitlab/gitlab.rb.
Puede verificar la copia de seguridad generada usando el siguiente comando:
ls /var/opt/gitlab/backups
Obtendrá el siguiente resultado:
1646997191_2022_03_11_14.8.2_gitlab_backup.tar
Restablecer la contraseña raíz de GitLab
Si olvida su contraseña de administrador de GitLab, puede restablecerla fácilmente con el siguiente comando:
gitlab-rake "gitlab:password:reset"
Se le pedirá que configure su nueva contraseña como se muestra a continuación:
gitlab-rake "gitlab:password:reset"
Conclusión
¡Felicidades! ha instalado con éxito GitLab CE en Alma Linux 8. Ahora puede comenzar a usar GitLab en su entorno de desarrollo. No dude en preguntarme si tiene alguna pregunta.