Instalacja GitLab na Debianie 9 (SSH) z odwrotnym proxy NGINX

Procédure

Potrzebujesz GitLab do zarządzania swoimi projektami? Utwórz własną instancję GitLab na swoim VPS, postępując zgodnie z tym samouczkiem.

Git jest dobry. Gitlab jest lepszy. Gitlab to menedżer repozytoriów Git o otwartym kodzie źródłowym. Opracowany przez GitLab Inc, oferuje intuicyjny interfejs graficzny do zarządzania różnymi projektami przy jednoczesnym zachowaniu kompatybilności z Git. Można tworzyć zgłoszenia funkcji, śledzić błędy itp. w zespole i za pośrednictwem przeglądarki internetowej.

Gitlab jest dostępny w kilku wersjach, zarówno płatnych, jak i darmowych. W poniższym poradniku zainstalujemy GitLab Community Edition (Gitlab CE), darmową wersję Gitlab o otwartym kodzie źródłowym.

Wymagania wstępne

Aby korzystać z GitLab, potrzebujesz co najmniej :

  • 2 rdzenie wirtualne
  • 4 GB pamięci RAM

VPS M z serii LWS Starter będzie idealny dla kilku projektów Gitlab, ale jeśli masz kilku współpracowników i/lub kilka projektów do ukończenia, zalecamy skorzystanie z VPS L lub jednego z VPS z serii Pro.

W tym samouczku rozważymy całkowicie pusty system operacyjny z obrazu systemu Debian 9 + SSH oferowanego 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 samouczek opiera się na instalacji VIRGIN Debiana 9. Jeśli już coś na nim zainstalowałeś, nie możemy zagwarantować, że samouczek będzie skuteczny i / lub że wszystkie inne usługi będą dostępne po instalacji.

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

Podsumowanie samouczka

Oto kroki, które zostaną omówione w tym samouczku:

  1. Aktualizacja systemu operacyjnego
  2. Instalacja Gitlab CE
  3. Konfiguracja odwrotnego serwera proxy NGINX przed Gitlabem
  4. Instalacja certyfikatu Let's Encrypt SSL na odwrotnym serwerze proxy NGINX

Krok 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

Krok 2: Instalacja Gitlab CE

Najpierw zainstalujmy wymagane zależności:

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:

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

Instalacja trwa kilka minut, więc możesz napić się kawy 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.

Po zakończeniu instalacji przejdź do http://vpsXXXXX.lws-hosting.com, aby skonfigurować Gitlab.

Wskazówka: jeśli pojawi się błąd 502, spróbuj ponownie uruchomić Gitlab za pomocą polecenia gitlab-ctl restart, a następnie odczekaj 5 minut przed ponowną próbą(Ctrl + F5).

Jeśli wszystko pójdzie zgodnie z planem, zostaniesz przekierowany na stronę umożliwiającą utworzenie hasła Gitlab.

Instalacja GitLab na Debianie 9 (SSH) z odwrotnym proxy NGINX

Podaj stosunkowo złożone hasło. Możesz również wygenerować losowe hasło.

Gdy to zrobisz, możesz połączyć się z Gitlab za pomocą użytkownika root i podanego hasła.

Instalacja odwrotnego serwera proxy NGINX

Teraz skonfigurujemy odwrotne proxy z NGINX. Umożliwi to hostowanie innych witryn i aplikacji w przyszłości, szczególnie jeśli zdecydowałeś się na serwer Cloud Pro S VPS lub wyższy.

Pierwszym krokiem jest przeniesienie Gitlab na nieużywany port. Na potrzeby tego poradnika wykorzystamy port 6080 (wybrany losowo).

Wskazówka: listę już używanych portów można znaleźć za pomocą polecenia netstat -tunap | grep LISTEN

Aby to zrobić, edytuj plik /etc/gitlab/gitlab.rb za pomocą nano (lub vim, lub innego edytora):

nano /etc/gitlab/gitlab.rb

I edytuj wartość external_url, aby uwzględnić port:

[...]
## GitLab URL
##! URL, pod którym GitLab będzie osiągalny.
##! Więcej szczegółów na temat konfiguracji external_url można znaleźć na stronie:
##! https://docs.gitlab.com/omnibus/settings/configuration.html#configuring-the-external-url-for-gitlab
external_url'http://vpsXXXXX.lws-hosting.com:6080'
[...]

Ctrl+X, Y następnie Enter, aby zapisać plik i zamknąć nano(Esc następnie :wq dla vim).

Aby zastosować tę konfigurację, uruchom następujące polecenie:

gitlab-ctl reconfigure

Zajmie to minutę lub dwie, podczas gdy Gitlab zsynchronizuje swoje ustawienia z aplikacjami, których Gitlab używa domyślnie (NGINX, omnibus itp.).

Gitlab jest teraz na 6080. Teraz musimy zainstalować NGINX. Instalacja NGINX jest podsumowana następującymi wierszami poleceń:

apt-get install -y curl gnupg2 ca-certificates lsb-release
echo "deb http://nginx.org/packages/debian `lsb_release -cs` nginx" | tee /etc/apt/sources.list.d/nginx.list
curl -fsSL https://nginx.org/keys/nginx_signing.key | apt-key add -
apt-get update
apt-get install -y nginx

Teraz nadszedł czas, aby utworzyć plik konfiguracyjny NGINX dla GitLab. Nazwiemy go /etc/nginx/conf.d/000-gitlab.conf. Użyj nano, aby utworzyć ten plik:

nano /etc/nginx/conf.d/000-gitlab.conf

Następnie musimy utworzyć nowy blok server{} i utworzyć odwrotne proxy. Oto sugerowana zawartość :

server {
listen 80;
server_name gitlab.example.com;

location / {
proxy_pass http://localhost:6080;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Protocol $scheme;
proxy_set_header X-Url-Scheme $scheme;
}
}

Wskazówka: Prefiks "000- " jest wymagany, aby plik został załadowany przed default.conf. W przeciwnym razie plik default. conf nadpisze naszą konfigurację.

Aktywuj NGINX podczas uruchamiania:

systemctl enable nginx

Następnie uruchom ponownie nginx za pomocą następującego polecenia:

systemctl restart nginx

Następnie należy wskazać gitlab.example.com na VPS, dodając rekord A do strefy DNS. Jeśli DNS jest zarządzany w przestrzeni klienckiej LWS, oto jak to zrobić:

Instalacja GitLab na Debianie 9 (SSH) z odwrotnym proxy NGINX

Następnie ponownie skonfigurujmy Gitlab, aby akceptował nagłówek X-Forwarded-For w celu znalezienia prawdziwych adresów IP odwiedzających. Odbywa się to poprzez edycję pliku /etc/gitlab/gitlab.rb:

[...]
nginx['real_ip_header'] = 'X-Forwarded-For'
nginx['real_ip_recursive'] = 'on'
[...]

Następnie ponownie zsynchronizuj konfiguracje Gitlab i jego wbudowanych usług:

gitlab-ctl reconfigure

Na tym etapie powinieneś być w stanie połączyć się z http://gitlab.exemple.com.

Instalacja certyfikatu Let's Encrypt SSL na NGINX

Zabezpieczymy teraz nasz dostęp za pomocą certyfikatu Let's Encrypt SSL. Najpierw zainstalujmy certbot :

apt-get install certbot -y

Następnie skonfigurujemy webroot dla uwierzytelniania Let's Encrypt. Aby to zrobić, edytuj plik /etc/nginx/conf.d/000-gitlab.conf i dodaj następujące wiersze po bloku location /:

[...]
location / {
proxy_pass http://localhost:6080;
[...]
}

location ^~ /.well-known/acme-challenge/ {
root /var/www/letsencrypt;
}

}

Utwórz plik :

mkdir -p /var/www/letsencrypt

I zrestartuj NGINX :

systemctl restart nginx

Teraz utwórzmy certyfikat SSL dla gitlab.example.com:

certbot certonly --webroot -w /var/www/letsencrypt/ -d gitlab.example.com

Postępuj zgodnie z instrukcjami wyświetlanymi na ekranie:

  • Wprowadź swój adres e-mail
  • Przeczytaj i zaakceptuj warunki użytkowania
  • Zapisz się (lub nie) do newslettera EFF

Następnie ponownie edytujemy plik /etc/nginx/conf.d/000-gitlab.conf, aby dodać nowy serwer HTTPS/443. Musimy dodać następujące linie na końcu pliku:

[...]
server {
listen 443 ssl;
server_name gitlab.example.com;

ssl_certificate /etc/letsencrypt/live/gitlab.example.com/fullchain.pem;
ssl_certificate_key /etc/letsencrypt/live/gitlab.example.com/privkey.pem;

location / {
proxy_pass http://localhost:6080;
proxy_redirect off;
proxy_set_header Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Forwarded-Protocol $scheme;
proxy_set_header X-Url-Scheme $scheme;
}
}

I uruchom ponownie serwer NGINX:

systemctl restart nginx

Masz teraz gotowy do użycia serwer Gitlab pod adresem https://gitlab.exemple.com.

Oceń ten artykuł :

Ten artykuł był dla Ciebie przydatny ?

Article utileTak

Article non utileNie

MerciMerci ! N'hésitez pas à poser des questions sur nos documentations si vous souhaitez plus d'informations et nous aider à les améliorer.


Vous avez noté 0 étoile(s)

Podobne artykuły


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