Ta strona wygląda najlepiej z włączoną obsługą JavaScript

Instalacja i konfiguracja GitLaba

 ·  ☕ 5 min czytania  ·  🐧 sysadmin

W tym filmie wyjaśniam, jak zainstalować i skonfigurować GitLaba na Debianie 11, jednak poniżej możesz przeczytać poradnik dla innych dystrybucji Linuksa.

GitLab to otwartoźródłowa platforma rozwoju oprogramowania end-to-end z wbudowaną kontrolą wersji, śledzeniem problemów, recenzją kodu, CI/CD i więcej. Samodzielnie hostuj GitLaba na własnych serwerach, w kontenerze lub u dostawcy chmury. Źródło: GitLab CE

GitLab FOSS jest tylko do odczytu lustrem GitLaba, z usuniętym cały prywatnym kodem. Ten projekt był wcześniej używany do hostowania GitLab Community Edition, ale cały rozwój przeniósł się teraz do GitLab CE Źródło: GitLab CE / Gitlab FOSS

Poradnik

Podstawowe wymagania dla wirtualnej maszyny

8 GB RAM
4 vCPU
40 GB miejsca na dysku
Miejsce na dysku:

  • dysk systemowy (sda) …. 40GB
    – W razie potrzeby utwórz oddzielną partycję /opt (~20GB), ponieważ GitLab jest instalowany w /opt/gitlab

  • dysk danych (sdb) ….. 60GB
    – zamontuj na /data
    – zdefiniuj katalog danych GitLaba /data/gitlab

W razie potrzeby zwiększ rozmiar partycji.

Dodaj drugi dysk i utwórz partycję.
1
sudo fdisk /dev/sdb

Następnie wpisz litery w kolejności i ustaw parametry

n
naciśnij Enter
p
naciśnij Enter
1
naciśnij Enter dwa razy
t
naciśnij Enter
8E
naciśnij Enter
w
naciśnij Enter
Instalacja parted
SLES | openSUSE Leap 15.4
1
sudo zypper install parted
Debian
1
sudo apt install parted
Red Hat
1
sudo dnf install parted
Wykonaj poniższe polecenie
1
sudo parted /dev/sdb
Dodaj wolumin fizyczny w menedżerze woluminów logicznych
1
sudo pvcreate /dev/sdb1
Utwórz grupę woluminów i dodaj do niej /dev/sdb1
1
sudo vgcreate gitlab-data /dev/sdb1
Utwórz wolumin logiczny
1
sudo lvcreate -n gitlab-data -l 100%FREE gitlab-data
Utwórz system plików ext4
1
mkfs.ext4 /dev/gitlab-data/gitlab-data
Wyświetl urządzenie
1
sudo ls -al /dev/mapper
Utwórz katalog danych w katalogu głównym
1
2
cd /
sudo mkdir data
Dodaj do /etc/fstab wpis dla danych. Zapisz i wyjdź.
1
2
3
vim /etc/fstab
# dodaj poniższe
/dev/mapper/gitlab--data-gitlab--data /data ext4 defaults 0 2
Zamontuj wpis z /etc/fstab
1
mount -a
Sprawdź poniższym poleceniem status zamontowanego zasobu
1
sudo df -kTh
Zaktualizuj system
SLES | openSUSE Leap 15.4
1
sudo zypper ref
Debian
1
sudo apt update
Red Hat
1
sudo dnf check-update
Zainstaluj wymagane pakiety
SLES | openSUSE Leap 15.4
1
sudo zypper install curl vim openssh perl postfix mailutils git
Debian
1
sudo apt install curl vim openssh-server ca-certificates postfix mailutils gnupg debian-archive-keyring apt-transport-https git
Red Hat
1
sudo dnf curl vim openssh-server ca-certificates postfix mailutils gnupg policycoreutils python3-policycoreutils git
Instalacja GitLab CE
SLES | openSUSE Leap 15.4
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
sudo zypper install curl perl
# Sprawdź, czy potrzebne jest otwarcie firewalla: sudo systemctl status firewalld
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld

# Dodaj repozytorium pakietów GitLab i zainstaluj pakiet
curl -sS https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.rpm.sh | sudo bash

# Instalacja GitLab CE
sudo zypper install gitlab-ee
Debian
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
id="os=debian&dist=bullseye"
curl -ssf "https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/config_file.list?$id" >/etc/apt/sources.list.d/gitlab-ce.list
curl -L https://packages.gitlab.com/gitlab/gitlab-ce/gpgkey | gpg --dearmor > /etc/apt/trusted.gpg.d/gitlab-ce.gpg
sudo vim /etc/apt/sources.list.d/gitlab-ce.list
# zmień klucz gpg na:  /etc/apt/trusted.gpg.d/gitlab-ce.gpg
# Powinno wyglądać jak poniżej:

# ten plik został wygenerowany przez packages.gitlab.com dla
# repozytorium na https://packages.gitlab.com/gitlab/gitlab-ce
deb [signed-by=/etc/apt/trusted.gpg.d/gitlab-ce.gpg] https://packages.gitlab.com/gitlab/gitlab-ce/debian/ bullseye main
deb-src [signed-by=/etc/apt/trusted.gpg.d/gitlab-ce.gpg] https://packages.gitlab.com/gitlab/gitlab-ce/debian/ bullseye main

# Aktualizacja apt
sudo apt update

# Instalacja GitLab CE
sudo apt install gitlab-ce
Red Hat
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# Sprawdź, czy potrzebne jest otwarcie firewalla: sudo systemctl status firewalld
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo systemctl reload firewalld

# Dodaj repozytoria dla GitLab CE
sudo vim /etc/yum.repos.d/gitlab_gitlab-ce.repo

#Dodaj poniższe linie do pliku:
[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

# Sprawdzenie repozytoriów
sudo dnf repolist

# Instalacja GitLab CE
sudo dnf install gitlab-ce -y  

Konfiguracja

  1. Konfiguracja Postfixa
1
sudo vim /etc/postfix/main.cf

Ustaw jak poniżej

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
compatibility_level = 2
mail_owner = postfix
setgid_group = postdrop
inet_interfaces = localhost
inet_protocols = all
mydomain = gitlab.local
mydestination = $myhostname, localhost.$mydomain, localhost
relayhost = mail.gitlab.local
unknown_local_recipient_reject_code = 550
alias_maps = hash:/etc/aliases
alias_database = hash:/etc/aliases

Restartuj Postfixa

1
sudo systemctl restart postfix
  1. Utwórz katalog ssl i wygeneruj certyfikaty
1
2
3
4
5
cd /etc/gitlab
sudo mkdir ssl
sudo openssl genrsa -out gitlab.key 2048
sudo openssl req -key gitlab.key -new -out gitlab.csr
sudo openssl x509 -signkey gitlab.key -in gitlab.csr -req -days 365 -out gitlab.crt
  1. Edytuj główny plik konfiguracyjny: /etc/gitlab/gitlab.rb
1
sudo vim /etc/gitlab/gitlab.rb

external_url ‘https://10.10.0.119’

Domyślny katalog przechowywania danych

git_data_dirs({
“default” => { “path” => “/data/git” }
})

Ustawienia użytkownika GitLab

user[‘git_user_email’] = “ gitlab@gitlab.local

Ustawienia e-mail

gitlab_rails[‘gitlab_email_from’] = ‘ gitlab@gitlab.local
gitlab_rails[‘gitlab_email_display_name’] = ‘GitLab’
gitlab_rails[‘gitlab_email_reply_to’] = ’ noreply@gitlab.local

GitLab NGINX

nginx[’enable’] = true
nginx[‘redirect_http_to_https’] = true
nginx[‘redirect_http_to_https_port’] = 80
nginx[‘ssl_certificate’] = “/etc/gitlab/ssl/gitlab.crt”
nginx[‘ssl_certificate_key’] = “/etc/gitlab/ssl/gitlab.key”

  1. Ponowna konfiguracja GitLaba
1
sudo gitlab-ctl reconfigure
  1. Włącz i uruchom GitLaba
1
2
sudo systemctl enable gitlab-runsvdir.service
sudo systemctl start gitlab-runsvdir.service
  1. Dostęp do interfejsu sieciowego GitLab CE

https://10.10.0.119
Zaloguj się na konto: root
hasło znajduje się w /etc/gitlab/initial_root_password

  1. Zresetuj hasło użytkownika “root”
1
2
3
# sudo gitlab-rake "gitlab:password:reset"
> Wpisz nazwę użytkownika: root
> Wpisz hasło:
  1. Usuń początkowe hasło roota
1
sudo rm -f /etc/gitlab/initial_root_password
Podziel się

sysadmin
UTWORZONE PRZEZ
sysadmin
QA & Linux Specialist