Instalacja GitLab na serwerze Debian 9 VPS + ISPconfig

Procédure

GitLab to potężne narzędzie do łatwego zarządzania różnymi repozytoriami Git. Jednak jego konfiguracja w naszych systemach operacyjnych z ISPConfig 3 może łatwo przyprawić o ból głowy. Dlatego też zdecydowaliśmy się udostępnić kompletny podręcznik dotyczący tej operacji.

Wymagania

GitLab wymaga co najmniej 2 GB pamięci RAM. W połączeniu z minimum 2 GB ISPConfig 3, liczbą wykonywanych procesów (stanowiących prawie 30% limitu dla samego ISPConfig bez żadnej strony internetowej),oferta VPS L z gamy LWS Starter jest wystarczająca dla małych projektów, ale zalecamy gamę VPS Pro dla każdego profesjonalnego projektu.

W tym poradniku użyjemy VPS z systemem operacyjnym Debian 9 + ISPConfig 3 oferowanym w panelu LWS. Oto linki do innych samouczków dla innych systemów operacyjnych:

Jeśli chcesz zmienić system operacyjny na swoim VPS, oto link do dokumentacji pomocy: Jak zmienić system operacyjny na moim VPS?

Należy pamiętać, że ten poradnik został przetestowany tylko na instalacji VIRGIN Debiana 9 + ISPConfig. Jeśli masz już zainstalowane strony internetowe lub inne usługi na swoim VPS, nie możemy zagwarantować, że samouczek będzie skuteczny i / lub że wszystkie inne usługi będą działać po instalacji.

Nie zapomnij włączyć portu SSH w zaporze VPS i wyłączyć zarządzania SSH, abyś mógł połączyć się z konsolą SSH jako root.

Podsumowanie samouczka

Ten samouczek obejmuje następujące kroki:

  1. Aktualizacja systemu operacyjnego
  2. Instalacja Gitlab
  3. Tworzenie certyfikatu SSL Let's Encrypt
  4. Konfiguracja odwrotnego proxy na Apache przed Gitlabem

1. Aktualizacja systemu operacyjnego

Przed zainstalowaniem czegokolwiek zalecamy zaktualizowanie listy pakietów i samych pakietów. W konsoli SSH wpisz następujące polecenia:

apt-get update
apt-get upgrade -y
apt-get dist-upgrade -y

Możemy również zaktualizować ISPConfig.

2. Instalacja Gitlab

Najpierw zainstalujmy zależności wymagane przez Gitlab:

apt-get install -y curl openssh-server ca-certificates

Następnie dodaj repozytorium Gitlab do swojego VPS:

curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | bash

Teraz zainstalujmy Gitlab na porcie 6080 (losowo wybrany port):

EXTERNAL_URL="http://vpsXXXXX.lws-hosting.com:6080" apt-get install gitlab-ee

Instalacja trwa kilka minut, więc możesz napić się herbaty podczas oczekiwania.

Wskazówka: jeśli masz niestabilne połączenie internetowe, możesz użyć ekranu, aby ponownie połączyć się z odłączaną konsolą w przypadku nieoczekiwanego rozłączenia. Dokumentacja dotycząca korzystania z ekranu.

Instalacja nie powiedzie się. Jest to całkowicie normalne. Dzieje się tak, ponieważ Gitlab będzie próbował wprowadzić zmiany w jądrze, ale zmiany te nie są autoryzowane na serwerach LWS VPS ze względu na zastosowaną technologię wirtualizacji. Aby to obejść, należy "dotknąć" (uruchomić polecenie touch) plików konfiguracyjnych jądra poszukiwanych przez Gitlab, aby opróżnić ich zawartość, aby można było kontynuować instalację:

⌨ Polecenie
touch /opt/gitlab/embedded/etc/90-omnibus-gitlab-kernel.sem.conf touch /opt/gitlab/embedded/etc/90-omnibus-gitlab-kernel.shmall.conf touch /opt/gitlab/embedded/etc/90-omnibus-gitlab-kernel.shmmax.conf touch /opt/gitlab/embedded/etc/90-omnibus-gitlab-net.core.somaxconn.conf

Jeśli istnieją inne pliki konfiguracyjne, możesz opróżnić je z zawartości. Następnie uruchom następujące polecenie, aby zregenerować konfiguracje Gitlab:

⌨ Polecenie
gitlab-ctl reconfigure

Teraz musisz zatrzymać GitLab, który, z tego co udało Ci się sprawdzić, w ogóle nie działa:

⌨ Polecenie
gitlab-ctl stop

Problem pochodzi z modułu unicorn, który używa tego samego portu co ISPConfig. Zmienimy więc jego port edytując plik /etc/gitlab/gitlab.rb:

⌨ Polecenie
nano /etc/gitlab/gitlab.rb

i edytuj następującą linię:

Kod
# unicorn['port'] = 8080 unicorn['port'] = 8083

Wcześniej był to komentarz, a wartością było 8080. Teraz odkomentowaliśmy to i ustawiliśmy 8083 jako port. Odtwórzmy pliki konfiguracyjne:

⌨ Polecenie
gitlab-ctl reconfigure

Teraz musimy ponownie uruchomić Gitlab:

⌨ Polecenie
gitlab-ctl restart

Wskazówka: Jeśli unicorn odmawia uruchomienia, istnieją procesy potomne, które nie zostały jeszcze zamknięte. Zamknij je za pomocą gitlab-ctl stop, a następnie spróbuj ponownie.

3. Tworzenie certyfikatu Let's Encrypt SSL

Aby zabezpieczyć dostęp do Gitlab, utworzymy certyfikat Let's Encrypt SSL, który zostanie następnie zainstalowany na odwrotnym serwerze proxy.

Uwaga: Nie zamierzamy instalować certyfikatu SSL w Gitlab. Zamierzamy jedynie zabezpieczyć dostęp do jego odwrotnego serwera proxy. Gitlab będzie dostępny tylko za pośrednictwem odwrotnego serwera proxy, więc możemy zaoszczędzić naszemu VPS dodatkowego wysiłku obliczeniowego, szyfrując ruch, który nie opuści VPS.

Aby to zrobić, musimy najpierw wskazać git.example.com na VPS. Następnie użyjemy certbota:

⌨ Polecenie
certbot certonly --webroot -w /usr/local/ispconfig/interface/acme/ -d git.example.com

Uwaga: ISPConfig (dzięki vhost i .conf dla Apache) bezpośrednio przekierowuje żądania zawierające /.well-known/ do /usr/local/ispconfig/interface/acme/. Tak więc używamy uwierzytelniania webroot i używamy folderu ISPConfig dostarczonego do tego celu. Pozwoli to uniknąć ingerencji w ISPConfig podczas odnawiania.

Jeśli po raz pierwszy tworzysz certyfikat Let's Encrypt SSL na swoim VPS, powinieneś wprowadzić adres e-mail i zaakceptować warunki korzystania z Let's Encrypt.

4. Konfiguracja odwrotnego serwera proxy Apache

Teraz musimy skonfigurować odwrotne proxy z Apache, które będzie współistnieć z ISPConfig i powiązanymi witrynami. Utworzymy więc nowy plik konfiguracyjny :

⌨ Polecenie
nano /etc/apache2/sites-available/gitlab.conf

i będziemy musieli dodać następującą zawartość :

Kod

    ServerName git.exemple.com ServerAdmin root@git.exemple.com RewriteEngine On RewriteRule ^/?(.*) https://%{SERVER_NAME}/$1 [R,L]


    ServerName git.exemple.com ServerAdmin root@git.exemple.com ProxyRequests Off ProxyPreserveHost On ProxyVia Full Require all granted  ProxyPass http://127.0.0.1:6080/ ProxyPassReverse http://127.0.0.1:6080/ ErrorLog ${APACHE_LOG_DIR}/error.log LogLevel warn CustomLog ${APACHE_LOG_DIR}/access.log combined SSLEngine on SSLCertificateFile /etc/letsencrypt/live/git.exemple.com/fullchain.pem SSLCertificateKeyFile /etc/letsencrypt/live/git.exemple.com/privkey.pem SSLCertificateChainFile /etc/letsencrypt/live/git.exemple.com/chain.pem

I aktywujmy ten nowy vhost:

⌨ Polecenie
ln -s /etc/apache2/sites-available/gitlab.conf /etc/apache2/sites-enabled/000-gitlab.conf

Przed ponownym uruchomieniem Apache należy aktywować niezbędne moduły:

⌨ Polecenie
a2enmod proxy a2enmod proxy_http

Teraz należy ponownie uruchomić Apache :

⌨ Polecenie
systemctl restart apache2

I to wszystko. Jeśli przejdziesz do git.example.com, zobaczysz, że Gitlab jest gotowy:

Instalacja GitLab na serwerze Debian 9 VPS + ISPconfig

help.lws.net/a/1352
Czy ten artykuł był pomocny?

Tak

Nie

Przeczytano 16 184 razy

Dziękujemy! Zadawaj pytania dotyczące naszej dokumentacji, jeśli potrzebujesz więcej informacji, i pomóż nam ją ulepszyć.

Podobne artykuły

Masz pytanie dotyczące tego artykułu?

Zadaj je zespołowi LWS i społeczności. Odpowiedź zostanie opublikowana po moderacji.

Zadaj pytanie zespołowi LWS i jego społeczności

RODO: Administrator: LWS-Ligne Web Services. Cel: moderacja i publiczna publikacja pytania, ewentualne powiadomienie o odpowiedzi. Podstawa prawna: zgoda (art. 6 ust. 1 lit. a RODO). Przechowywanie adresów e-mail: 90 dni po powiadomieniu, maksymalnie 12 miesięcy bez odpowiedzi. Aby skorzystać ze swoich praw, zobacz sekcję RODO naszego regulaminu.