Installeer GitLab op Alma Linux 8

GitLab is een gratis en open-source DevOps software die wordt geleverd met meerdere hulpmiddelen om software te ontwikkelen, beveiligen en beheren in een enkele toepassing. Het biedt gratis onbeperkte repositories en onbeperkte medewerkers. Het wordt vooral gebruikt om Git repositories te hosten, met extra ontwikkelings-gerelateerde functies zoals issue tracking. Het lijkt erg op Github en Bitbucket en stelt individuen en teams in staat om code op afstand met anderen te delen.

GitLab is verkrijgbaar in vier grote edities:

  • GitLab Community Editie – Gratis, open-source, en zelf gehost.
  • GitLab Enterprise Editie – Zelf gehost en betaald met extra mogelijkheden.
  • GitLab.com – Gratis, en SaaS.
  • GitLab.io – Privé GitLab instantie beheerd door GitLab Inc.

In dit artikel leggen we uit hoe je GitLab CE op Alma Linux 8 kunt installeren.

Vereisten

  • Een server met Alma Linux 8.
  • Een geldige domeinnaam gericht met je server IP.
  • Een root wachtwoord is op de server ingesteld.

Voeg de GitLab CE Repository toe

Standaard is het GitLab pakket niet opgenomen in de standaard repository van Alma Linux. Je zult dus de officiële GitLab repository aan je systeem moeten toevoegen. Je kunt het volgende script downloaden en toevoegen om de GitLab repository toe te voegen.

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.rpm.sh | bash

Je krijgt dan de volgende uitvoer:

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.

Je kunt de geïnstalleerde repository verifiëren met het volgende commando:

cat /etc/yum.repos.d/gitlab_gitlab-ce.repo

Je krijgt de volgende uitvoer:

[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

Je kunt de GitLab repo ook oplijsten met het volgende commando:

dnf repolist

Je krijgt de volgende uitvoer:

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

Installeer GitLab CE op Alma Linux 8

Op dit punt is GitLab repo op je systeem aangemaakt. Je kunt nu de GitLab CE installeren door het volgende commando uit te voeren:

dnf install gitlab-ce -y

Zodra GitLab CE geïnstalleerd is, krijg je de volgende uitvoer:

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!

GitLab CE configureren

Vervolgens moet je je domeinnaam definiëren in het GitLab configuratiebestand. Om dat te doen bewerk je het GitLab configuratiebestand:

nano /etc/gitlab/gitlab.rb

Verander de volgende regel met je domeinnaam:

external_url 'http://gitlab.example.com'

Bewaar en sluit het bestand en herconfigureer dan GitLab met het volgende commando:

gitlab-ctl reconfigure

Als de GitLab CE opnieuw geconfigureerd is, krijg je de volgende uitvoer:

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!

Je kunt nu de status van de GitLab CE controleren met het volgende commando:

gitlab-ctl status

Je krijgt de volgende uitvoer:

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

Om het GitLab te stoppen, voer je het volgende commando uit:

gitlab-ctl stop

Om het GitLab te starten, voer je het volgende commando uit:

gitlab-ctl start

Als je klaar bent, kun je verder gaan met de volgende stap.

Configureer Firewall

Vervolgens moet je de HTTP dienst via de firewalld toestaan. Je kunt het toestaan met het volgende commando:

firewall-cmd --permanent --add-service=http

Herlaad vervolgens de firewalld daemon om de veranderingen toe te passen:

systemctl reload firewalld

Als de firewall geconfigureerd is, kun je verder gaan met de volgende stap.

Toegang tot GitLab CE

Vóór je GitLab CE opent, vraag je het GitLab root wachtwoord op met het volgende commando:

cat /etc/gitlab/initial_root_password

Je zou het GitLab CE root wachtwoord in de volgende uitvoer moeten zien:

# 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.

Open nu je webbrowser en ga naar de GitLab webinterface met de URL http://gitlab.example.com. Je wordt doorgestuurd naar de GitLab login pagina:

GitLab Inloggen

Geef je root gebruikersnaam, en wachtwoord, en klik op de Sign in knop. Je zou de GitLab webinterface op de volgende pagina moeten zien:

Gitlab Dashboard

GitLab Back-up configureren

GitLab geeft je ook de mogelijkheid om een backup van de GitLab instantie te maken. Om een backup van de GitLab instantie te maken, voer je het volgende commando uit:

gitlab-rake gitlab:backup:create

Zodra de backup gemaakt is, krijg je de volgende uitvoer:

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

Standaard wordt de GitLab backup opgeslagen in /var/opt/gitlab/backups. Je kunt het back-uppad veranderen door de instellingen in het GitLab configuratiebestand in /etc/gitlab/gitlab.rb te bewerken.

Je kunt de gegenereerde backup verifiëren met het volgende commando:

ls /var/opt/gitlab/backups

Je krijgt de volgende uitvoer:

1646997191_2022_03_11_14.8.2_gitlab_backup.tar

Reset GitLab Root Password

Als je het GitLab beheerderswachtwoord vergeten bent, kun je het eenvoudig resetten met het volgende commando:

gitlab-rake "gitlab:password:reset"

Je wordt gevraagd je nieuwe wachtwoord in te stellen zoals hieronder:

Enter username: root
Enter password: 
Confirm password: 
Password successfully updated for user with username root.

Conclusie

Gefeliciteerd! Je hebt GitLab CE met succes geïnstalleerd op Alma Linux 8. Je kunt GitLab nu in je ontwikkelomgeving gaan gebruiken. Voel je vrij me te vragen als je vragen hebt.