11 mar

Jak zainstalować i skonfigurować GitLab na Ubuntu 16.04

Instalacja i Konfiguracja GitLab na serwerze z Ubuntu 16GitLab CE to aplikacja open source wykorzystywana przede wszystkim do organizacji repozytoriów Git, z dodatkowymi funkcjami, takie jak śledzenie problemów. Został on zaprojektowany w takim sposób, aby można było obsługiwać własną infrastrukturę oraz zapewnić elastyczność podczas wdrażania jako wewnętrzny sklep repozytoriów dla zespołu projektowego. Publicznie udostępnioną funkcjonalnością może być interakcja z użytkownikami poprzez zgłoszenia, albo funkcja organizacji własnych projektów dla autorów.

Wymagania

Zakładamy, że masz dostęp do nowego serwera Ubuntu 16.04. W opublikowanych wymaganiach sprzętowych GitLab zalecane jest użycie serwera z:

  • 2 rdzenie
  • 4 GB pamięci RAM

Chociaż może będziesz w stanie zastąpić pewną przestrzeń wymiany RAM, to nie jest zalecane. W tym tutorialu zakładamy, że masz powyższe zasoby jako minimum.

Aby zacząć, musisz być zalogowany jako użytkownik inny niż root z uprawnieniami sudo. Również dobrym pomysłem jest stosowanie podstawowego firewall, aby zapewnić dodatkową warstwę bezpieczeństwa. Możesz dowiedzieć się więcej o tym w naszym tutorialu Wstępna Konfiguracja serwera z Ubuntu 16.04.

Gdy są spełnione powyższe wymagania, możemy rozpocząć procedurę instalacji.

Instalacja dodatkowych pakietów

Zanim będziemy mogli zainstalować GitLab, ważne jest, aby zainstalować pakiety, które będą wykorzystane podczas instalacji i później. Na szczęście, wymagane oprogramowanie można łatwo zainstalować z repozytoriów pakietów domyślnych Ubuntu.

Ponieważ po raz pierwszy używamy apt podczas tej sesji, możemy zaktualizować lokalny indeks pakietów, a następnie zainstalować zależności wpisując:

sudo apt-get update

sudo apt-get install ca-certificates curl openssh-server postfix

Prawdopodobnie niektóre oprogramowanie już masz zainstalowane. Dla instalacji postfix, wybierz Internet Site, gdy pojawi się odpowiedni komunikat. Na następnym ekranie wpisz nazwę domeny lub adres IP serwera, aby skonfigurować jak system będzie wysyłać wiadomości email.

Instalacja GitLab

Teraz, gdy zależności są na miejscu, możemy zainstalować GitLab. Jest to prosty proces, który wykorzystuje skrypt instalacyjny, aby skonfigurować system z repozytoriów GitLab.

Przejdź do katalogu /tmp, a następnie pobierz skrypt instalacyjny:

cd /tmp

curl -LO https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh

Nie wahaj się sprawdzić pobrany skrypt, aby upewnić się, że zapoznałeś się z działaniami, które będziemy podejmować. Można również znaleźć zamieszczoną wersję skryptu tutaj:

less /tmp/script.deb.sh

Gdy jesteś zadowolony z bezpieczeństwa skryptu, uruchom instalator:

sudo bash /tmp/script.deb.sh

Skrypt skonfiguruje serwer do korzystania z obsługiwanych repozytoriów GitLab. To pozwoli zarządzać GitLab z tych samych narzędzi, które używasz do innych pakietów systemowych. Po wykonaniu tych czynności można zainstalować rzeczywistą aplikację GitLab z apt:

sudo apt-get install gitlab-ce

Spowoduje to zainstalowanie niezbędnych składników w systemie. Zanim będzie można korzystać z aplikacji, trzeba jednak uruchomić polecenie konfiguracji początkowej:

sudo gitlab-ctl reconfigure

To będzie inicjować GitLab, korzystając z informacji, którą może on znaleźć o Twoim serwerze. Jest to całkowicie zautomatyzowany proces, dzięki czemu nie będziesz musiał odpowiadać na wszelkie monity.

Ustawienie Reguł Zapory

Zanim uzyskasz dostęp do GitLab po raz pierwszy, musisz upewnić się, że reguły zapory są dość liberalne w celu umożliwienia normalnego ruchu internetowego.

Zobacz aktualny stan aktywnej zapory, wpisując:

sudo ufw status

Output
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)

Jak widać, obecne reguły dopuszczają ruch przez SSH, ale dostęp do innych usług jest ograniczona. Ponieważ GitLab jest aplikacją internetową, należy umożliwić dostęp HTTP.

Ponieważ protokół mapowania portów dla HTTP jest dostępny w pliku /etc/services, możemy zezwolić ruch na jego nazwę. Jeśli nie masz włączonego ruchu OpenSSH, należy włączyć go teraz:

sudo ufw allow http

sudo ufw allow OpenSSH

Jeśli ponownie sprawdzisz ufw status, powinieneś zobaczyć skonfigurowany dostęp, przynajmniej do tych dwóch usług:

sudo ufw status

Output
Status: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere                  
80                         ALLOW       Anywhere                  
OpenSSH (v6)               ALLOW       Anywhere (v6)             
80 (v6)                    ALLOW       Anywhere (v6)

Teraz powinieneś być w stanie uzyskać dostęp do interfejsu WWW GitLab.

Wykonywanie Wstępnej Konfiguracji przez Interfejs WWW

Teraz, kiedy GitLab działa i dostęp jest dozwolony, możemy wykonać wstępną konfigurację aplikacji poprzez interfejs WWW.

Logowanie po raz pierwszy

Odwiedź nazwę domeny serwera GitLab w przeglądarce internetowej:

http://gitlab_domain_or_IP

Przy pierwszej wizycie, powinieneś zobaczyć początkowy wiersz dla ustawienia hasła dla konta administratora:gitlab_instalacja_hasla

W początkowym monitu wpisz i potwierdź bezpieczne hasło dla konta administracyjnego. Kliknij przycisk Change your password po zakończeniu.

Zostaniesz przekierowany do na zwykłą stronę logowania GitLab:gitlab_pierwsze_logowanie

Tutaj możesz zalogować się za pomocą hasła, które właśnie ustawiłeś. Dane logowania:

  • Username: root
  • Password: [ustawione hasło]

Wprowadź te wartości w polach dla istniejących użytkowników, a następnie kliknij na przycisk Sign in. Będziesz zalogowany do aplikacji i przeniesiony na stronę, która zaoferuje ci przystąpić do dodawania projektów:strona_landing

Teraz możesz zrobić kilka prostych zmian, aby skonfigurować GitLab tak, jak chcesz.

Regulacja Ustawień Profilu

Jedną z pierwszych rzeczy, które należy zrobić po świeżej instalacji, jest uzyskanie Swego profilu w lepszej kondycji. GitLab wybiera niektóre rozsądne wartości domyślne, ale one zwykle nie są  właściwe po rozpoczęciu korzystania z oprogramowania.

Aby wprowadzić niezbędne modyfikacje, kliknij ikonę użytkownika w prawym górnym rogu interfejsu. W wyświetlonym rozwijanym w dół menu, wybierz Profile Settings:profile_settings_przycisk

Zostaniesz przeniesiony do sekcji Profile w ustawieniach:profile_settings

Dostosuj Name i Email address z “Administrator” i “admin@example.com” na coś bardziej dokładne. Nazwa, którą wybierzesz, będzie widoczna dla innych użytkowników, a email będzie używany do wykrywania domyślnego awataru, powiadomień, działań Git poprzez interfejs itp

Kliknij na przycisk Update Profile settings na dole po zakończeniu:

update_profile_settings_przycisk

Email z potwierdzeniem zostanie wysłany na podany adres. Postępuj zgodnie z instrukcjami zawartymi w emailu, aby potwierdzić swoje konto, dzięki czemu można zacząć używać GitLab.

Zmiana Nazwy Konta

Następnie kliknij na pozycję menu Account na górze strony:account_menu

Tutaj można znaleźć swój prywatny API token lub skonfigurować uwierzytelnianie dwuetapowe. Jednak funkcjonalność, która interesuje nas w tej chwili jest sekcja Change username.

Domyślnie pierwsze konto administracyjne jest przypisane do nazwy root. Ponieważ jest to znana nazwa konta, bardziej bezpieczne jest zmienić ją na inną nazwę. Nadal będziesz mieć uprawnienia administratora; jedyną rzeczą, która się zmieni jest nazwa:change_username

Kliknij na przycisk Update username, aby dokonać zmiany:update_username_przycisk

Następnym razem, gdy będziesz logować się do GitLab, należy pamiętać, aby użyć nową nazwę użytkownika.

Dodanie Klucza SSH do Konta

W większości przypadków, będziesz chciał używać kluczy SSH za pomocą polecenia git dla interakcji ze swoimi projektami GitLab. Aby to zrobić, trzeba dodać swój klucz publiczny SSH do konta GitLab.

Jeśli masz już parę kluczy SSH utworzonych na komputerze lokalnym, zwykle można zobaczyć klucz publiczny wpisując:

cat ~/.ssh/id_rsa.pub

Powinieneś zobaczyć duży kawałek tekstu, na przykład:

Output
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 sammy@mydesktop

Skopiuj ten tekst i wróć do strony Profile Settings w interfejsie internetowym użytkownika GitLab.

Jeżeli natomiast pojawi się następujący komunikat, to znaczy że nie masz jeszcze parę kluczy SSH skonfigurowanych na komputerze:

Output
cat: /home/sammy/.ssh/id_rsa.pub: No such file or directory

W takim przypadku możesz utworzyć parę kluczy SSH, wpisując:

ssh-keygen

Zaakceptuj ustawienia domyślne i w razie potrzeby wprowadź hasło w celu zabezpieczenia klucza lokalnie:

Output
Generating public/private rsa key pair.
Enter file in which to save the key (/home/sammy/.ssh/id_rsa): 
Enter passphrase (empty for no passphrase): 
Enter same passphrase again: 
Your identification has been saved in /home/sammy/.ssh/id_rsa.
Your public key has been saved in /home/sammy/.ssh/id_rsa.pub.
The key fingerprint is:
SHA256:I8v5/M5xOicZRZq/XRcSBNxTQV2BZszjlWaIHi5chc0 sammy@gitlab.docsthat.work
The key's randomart image is:
+---[RSA 2048]----+
|          ..%o==B|
|           *.E =.|
|        . ++= B  |
|         ooo.o . |
|      . S .o  . .|
|     . + .. .   o|
|      +   .o.o ..|
|       o .++o .  |
|        oo=+     |
+----[SHA256]-----+

Gdy masz ten problem, można wyświetlić swój klucz publiczny, jak opisane powyżej, przez wpisywanie:

cat ~/.ssh/id_rsa.pub

Output
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDMuyMtMl6aWwqBCvQx7YXvZd7bCFVDsyln3yh5/8Pu23LW88VXfJgsBvhZZ9W0rPBGYyzE/TDzwwITvVQcKrwQrvQlYxTVbqZQDlmsC41HnwDfGFXg+QouZemQ2YgMeHfBzy+w26/gg480nC2PPNd0OG79+e7gFVrTL79JA/MyePBugvYqOAbl30h7M1a7EHP3IV5DQUQg4YUq49v4d3AvM0aia4EUowJs0P/j83nsZt8yiE2JEYR03kDgT/qziPK7LnVFqpFDSPC3MR3b8B354E9Af4C/JHgvglv2tsxOyvKupyZonbyr68CqSorO2rAwY/jWFEiArIaVuDiR9YM5 sammy@mydesktop

Skopiuj blok tekstu, który jest wyświetlany i wróć do Profile Settings w interfejsie WWW GitLab.

Kliknij na pozycji menu SSH Keys w górnym pasku menu:ssh_keys_menu

W wyznaczonym miejscu wklej klucz publiczny, skopiowany z komputera lokalnego. Podaj mu opisowy tytuł, a następnie kliknij przycisk Add key:dodanie_ssh_klucza

Teraz powinieneś być w stanie zarządzać projektami GitLab i repozytoriami z lokalnego komputera bez konieczności podania swoich danych do konta GitLab.

Ograniczenie lub Wyłączenie Publicznej Rejestracji (opcjonalnie)

Prawdopodobnie zauważyłeś, że jest to możliwe dla każdego, aby zarejestrować się do konta podczas odwiedzania strony docelowej GitLab instancji. To może być to, czego potrzebujesz, jeżeli masz zamiar zorganizować publiczny projekt. Jednak w wielu przypadkach, bedą żądane bardziej restrykcyjne parametry.

Aby rozpocząć, należy przejść do obszaru administracyjnego klikając na ikonę klucza w prawym górnym rogu:admin_area_przycisk

Na stronie można zobaczyć przegląd instancji GitLab jako całości. Aby zmienić ustawienia, kliknij ikonę koła zębatego w prawym górnym rogu i wybierz Settings z rozwijanego menu, które się pojawi:admin_settings_przycisk

Zostaniesz przeniesiony do globalnych ustawień dla instancji GitLab. Tutaj można ustawić szereg ustawień, które wpływają, czy nowi użytkownicy mogą się zarejestrować i jaki będzie ich poziom dostępu.

Wyłączenie Rejestracji

Jeśli chcesz całkowicie wyłączyć rejestracje (nadal można ręcznie tworzyć konta dla nowych użytkowników), odwiedź sekcję Sign-up Restrictions.

Usuń zaznaczenie w polu wyboru Sign-up enabled:wylaczanie_sign-ups_enabled

Przewiń w dół i kliknij przycisk Save:save_settings_przycisk

Sekcja rejestracji powinna zostać usunięta ze strony docelowej GitLab.

Wniosek

Teraz powinno mieć pracujący przykład GitLab, umieszczony na własnym serwerze. Możesz zacząć importować lub tworzyć nowe projekty i skonfigurować odpowiedni poziom dostępu dla swojego zespołu.

Zanim przejść dalej, należy skonfigurować szyfrowanie SSL dla serwera GitLab. Bez ochrony SSL, hasła oraz dane osobowe mogą zostać przechwycone przez inne osoby w sieci. Na szczęście, w projektach takich jak Let’s Encrypt, jest stosunkowo proste, aby uzyskać bezpłatny certyfikat SSL zaufany w przeglądarkach.