Introduzione
GitLab è un software DevOps gratuito e open source che viene fornito con più strumenti per sviluppare, proteggere e utilizzare il software in un'unica applicazione. Fornisce repository illimitati gratuiti e collaboratori illimitati. Viene utilizzato principalmente per ospitare repository Git, con funzionalità aggiuntive relative allo sviluppo come il rilevamento dei problemi. È molto simile a Github e Bitbucket e consente a individui e team di condividere il codice in remoto con altri.
GitLab è disponibile in quattro edizioni principali:
- GitLab Community Edition: gratuito, open source e self-hosted.
- GitLab Enterprise Edition: self-hosted e a pagamento con funzionalità aggiuntive.
- GitLab.com: Gratuito e SaaS.
- GitLab.io: Istanza GitLab privata gestita da GitLab Inc.
In questo post spiegheremo come installare GitLab CE su Alma Linux 8.
Prerequisiti
- Un server che esegue Alma Linux 8.
- Un nome di dominio valido puntato con l'IP del tuo server.
- Una password di root è configurata sul server.
Se desideri installare GitLab su un server in remoto continua a leggere, altrimenti salta il primo paragrafo "Connessione al Server" e leggi il successivo.
Connessione al Server
Per accedere al server, è necessario conoscere l'indirizzo IP. Avrai anche bisogno dell'username e della password per l'autenticazione. Per connettersi al server come utente root digitare il seguente comando:
ssh root@IP_DEL_SERVER
Successivamente sarà necessario inserire la password dell'utente root.
Se non utilizzate l'utente root potete connettervi con un'altro nome utente utilizzando lo stesso comando, quindi modificare root con il vostro nome_utente:
ssh nome_utente@IP_DEL_SERVER
Successivamente vi verrà chiesto di inserire la password del vostro utente.
La porta standard per connettersi tramite ssh è la 22, se il vostro server utilizza una porta diversa, sarà necessario specificarla utilizzando il parametro -p, quindi digitare il seguente comando:
ssh nome_utente@IP_DEL_SERVER -p PORTA
Aggiungere il repository GitLab CE
Per impostazione predefinita, il pacchetto GitLab non è incluso nel repository predefinito di Alma Linux. Quindi dovrai aggiungere il repository ufficiale di GitLab al tuo sistema. Puoi scaricare e aggiungere il seguente script per aggiungere il repository GitLab.
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | bash
Otterrai il seguente output:
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.
È possibile verificare il repository installato utilizzando il comando seguente:
cat /etc/yum.repos.d/gitlab_gitlab-ce.repo
Otterrai il seguente output:
[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
Puoi anche elencare il repository GitLab usando il comando seguente:
dnf repolist
Otterrai il seguente output:
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
Installare GitLab CE su Alma Linux 8
A questo punto, il repository GitLab viene creato sul tuo sistema. È ora possibile installare GitLab CE eseguendo il comando seguente:
dnf install gitlab-ce -y
Una volta installato GitLab CE, otterrai il seguente output:
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!
Configurare GitLab CE
Successivamente, dovrai definire il tuo nome di dominio nel file di configurazione di GitLab. Per farlo, modifica il file di configurazione di GitLab:
nano /etc/gitlab/gitlab.rb
Modifica la seguente riga con il tuo nome di dominio:
external_url 'http://gitlab.example.com'
Salva e chiudi il file, quindi riconfigura GitLab usando il seguente comando:
gitlab-ctl reconfigure
Una volta riconfigurato GitLab CE, otterrai il seguente output:
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!
Ora puoi controllare lo stato di GitLab CE usando il seguente comando:
gitlab-ctl status
Otterrai il seguente output:
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
Per interrompere GitLab, esegui il comando seguente:
gitlab-ctl stop
Per avviare GitLab, eseguire il comando seguente:
gitlab-ctl start
Una volta terminato, puoi procedere al passaggio successivo.
Configurare firewall
Successivamente, dovrai consentire il servizio HTTP tramite il firewalld. Puoi consentirlo usando il seguente comando:
firewall-cmd --permanent --add-service=http
Quindi, ricarica il demone firewalld per applicare le modifiche:
systemctl reload firewalld
Una volta configurato il firewall, puoi procedere al passaggio successivo.
Accedere a GitLab CE
Prima di accedere a GitLab CE, recuperare la password di root di GitLab con il seguente comando:
cat /etc/gitlab/initial_root_password
Dovresti vedere la password di root di GitLab CE nel seguente output:
# 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.
Ora apri il tuo browser web e accedi all'interfaccia web di GitLab utilizzando l'URL http://gitlab.example.com. Verrai reindirizzato alla pagina di accesso di GitLab.
Fornisci il tuo nome utente e password di root e fai clic sul pulsante Accedi. Dovresti vedere l'interfaccia web di GitLab.
Configurare il backup di GitLab
GitLab ti consente anche di creare un backup dell'istanza GitLab. Per creare un backup dell'istanza GitLab, esegui il comando seguente:
gitlab-rake gitlab:backup:create
Una volta creato il backup, otterrai il seguente output:
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
Per impostazione predefinita, il backup di GitLab è archiviato in /var/opt/gitlab/backups. Puoi modificare il percorso di backup modificando le impostazioni nel file di configurazione di GitLab in /etc/gitlab/gitlab.rb.
È possibile verificare il backup generato utilizzando il seguente comando:
ls /var/opt/gitlab/backups
Otterrai il seguente output:
1646997191_2022_03_11_14.8.2_gitlab_backup.tar
Reimpostare la password di root di GitLab
Se dimentichi la password dell'amministratore di GitLab, puoi reimpostarla facilmente usando il seguente comando:
gitlab-rake "gitlab:password:reset"
Ti verrà chiesto di impostare la tua nuova password come mostrato di seguito:
gitlab-rake "gitlab:password:reset"
Conclusione
Congratulazioni! hai installato con successo GitLab CE su Alma Linux 8. Ora puoi iniziare a usare GitLab nel tuo ambiente di sviluppo.