GitLab to kompleksowa platforma DevOps, która zapewnia szeroką gamę funkcji do kontroli wersji, ciągłej integracji, wdrażania i zarządzania projektami. Integruje różne etapy cyklu życia DevOps w jedną aplikację, umożliwiając zespołom współpracę i wydajną pracę. GitLab Community Edition (CE) to wersja GitLab o otwartym kodzie źródłowym, oferująca potężne narzędzia do zarządzania repozytoriami, śledzenia problemów i automatyzacji potoków CI/CD.
Aby zainstalować GitLab CE na Debian 12 lub 11, możesz użyć oficjalnego skryptu powłoki GitLab, aby skonfigurować repozytorium APT GitLab CE, a następnie zainstalować i skonfigurować oprogramowanie. Ten przewodnik przeprowadzi Cię przez cały proces, zapewniając solidną konfigurację GitLab w systemie Debian.
Zaktualizuj Debiana przed instalacją Gitlab
Aktualizowanie systemu operacyjnego Debian ma kluczowe znaczenie dla utrzymania jego stabilności i bezpieczeństwa. Aby mieć pewność, że wszystkie istniejące pakiety w systemie Debian są aktualne, zaleca się wykonanie aktualizacji w celu dostarczenia najnowszych aktualizacji zabezpieczeń i poprawek błędów, zapewniając stabilność i niezawodność systemu.
Możesz łatwo zaktualizować swój system operacyjny Debian, uruchamiając następujące polecenie:
sudo apt update && sudo apt upgrade
Zainstaluj wymagane pakiety dla GitLab
Zapewnienie zainstalowania wszystkich zależności dla GitLab jest krytycznym krokiem w procesie instalacji. Zależności te są niezbędnymi komponentami, na których GitLab polega, aby działać poprawnie. Na szczęście instalacja tych zależności jest prostym procesem.
Możesz je łatwo zainstalować, otwierając terminal i uruchamiając następujące polecenie:
sudo apt install curl ca-certificates apt-transport-https tzdata perl
Importuj repozytorium GitLab CE APT
Domyślnie GitLab nie jest dostępny w domyślnych repozytoriach Debiana. Oznacza to, że musisz ręcznie utworzyć repozytorium, aby zainstalować GitLab. Jednak GitLab udostępnia skrypt APT, który pomaga w tym procesie, ułatwiając użytkownikom instalację platformy. Za pomocą tego skryptu możesz utworzyć repozytorium GitLab, które umożliwi instalację GitLaba przy użyciu standardowego menedżera pakietów APT.
Aby pobrać skrypt, wpisz w terminalu następującą komendę:
curl -s https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
Po wykonaniu tego polecenia skrypt pobierze i doda repozytorium GitLab do twojego systemu Debian. Zaktualizuje także listę pakietów, umożliwiając instalację GitLaba przy użyciu standardowego menedżera pakietów APT.
Zakończ instalację GitLab za pomocą polecenia APT
Następnym krokiem jest instalacja GitLaba. Pamiętaj, że skrypt użył już polecenia „apt update” do synchronizacji nowo utworzonego i zmodyfikowanego repozytorium. Po wykonaniu tej czynności możesz teraz przystąpić do wykonania polecenia instalacyjnego, uruchamiając następujące polecenie:
sudo apt install gitlab-ce
To polecenie zainstaluje GitLab Community Edition (CE), bezpłatną wersję GitLab o otwartym kodzie źródłowym. Proces instalacji może zająć trochę czasu, w zależności od szybkości Internetu i specyfikacji systemu.
Przykładowe wyjście, jeśli instalacja GitLab przebiegła pomyślnie na Debianie:
Skonfiguruj GitLaba
Aby skonfigurować GitLab na Debianie, należy dokładnie wykonać kilka kroków. W tej sekcji opisano krok po kroku proces, w tym konfigurowanie nazwy hosta, konfigurowanie zapory ogniowej i konfigurowanie ustawień poczty e-mail.
Skonfiguruj nazwę hosta
Aby uzyskać dostęp do instancji GitLab, ważne jest skonfigurowanie nazwy hosta dla serwera GitLab, więc wybierz nazwę łatwą do zapamiętania i łatwo dostępną. Wykonaj poniższe kroki, aby skonfigurować nazwę hosta:
Otwórz plik konfiguracyjny GitLab za pomocą edytora tekstu:
sudo nano /etc/gitlab/gitlab.rb
Znajdź ustawienie external_url i zastąp przykładowy adres URL żądaną nazwą hosta:
external_url 'https://gitlab.example.com'
Zapisz plik i wyjdź z edytora tekstu.
Teraz ponownie skonfiguruj GitLab, aby zastosować zmiany:
sudo gitlab-ctl reconfigure
Skonfiguruj zaporę UFW dla Gitlab
GitLab domyślnie używa portu 80 dla HTTP i portu 443 dla HTTPS. Bardzo ważne jest skonfigurowanie zapory ogniowej tak, aby zezwalała na ruch na tych portach i upewnienie się, że instancja GitLab jest dostępna.
Wykonaj poniższe kroki, aby skonfigurować zaporę:
Najpierw zainstaluj zaporę UFW, ponieważ nie jest ona domyślnie instalowana w Debianie, za pomocą następującego polecenia:
sudo apt install ufw
Następnie po zakończeniu instalacji włącz zaporę UFW za pomocą następującego polecenia:
sudo ufw enable
Otwórz plik konfiguracyjny zapory sieciowej za pomocą edytora tekstu:
sudo nano /etc/ufw/applications.d/gitlab
Skopiuj i wklej następujące wiersze do pliku:
[GitLab]
title=GitLab
description=GitLab application
ports=80,443/tcp
Zapisz plik i wyjdź z edytora tekstu.
Włącz aplikację GitLab w zaporze sieciowej:
sudo ufw app update GitLab
sudo ufw allow GitLab
Skonfiguruj ustawienia poczty e-mail
GitLab używa powiadomień e-mail, aby informować użytkowników o działaniach w projekcie, takich jak nowe problemy, prośby o połączenie i komentarze.
Wykonaj poniższe kroki, aby skonfigurować ustawienia poczty e-mail:
Otwórz plik konfiguracyjny GitLab za pomocą edytora tekstu:
sudo nano /etc/gitlab/gitlab.rb
Znajdź ustawienie gitlab_rails['smtp_enable'] i ustaw je na true:
gitlab_rails['smtp_enable'] = true
Dodaj następujące wiersze do pliku, aby skonfigurować ustawienia serwera SMTP dla Twojego dostawcy poczty e-mail, takiego jak Gmail:
gitlab_rails['smtp_address'] = "smtp.gmail.com"
gitlab_rails['smtp_port'] = 587
gitlab_rails['smtp_user_name'] = "example@gmail.com"
gitlab_rails['smtp_password'] = "your_password"
gitlab_rails['smtp_domain'] = "smtp.gmail.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
Zapisz plik i wyjdź z edytora tekstu.
Skonfiguruj ponownie GitLab, aby zastosować zmiany:
sudo gitlab-ctl reconfigure
Należy zauważyć, że po wykonaniu polecenia „gitlab-ctl reconfigure” można zauważyć, że dane wyjściowe terminala kończą się następującym komunikatem:
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.
Aby wyświetlić hasło roota (GitLab), wykonaj w terminalu następujące polecenie:
sudo cat /etc/gitlab/initial_root_password
Wykonanie tego polecenia wyświetli hasło roota w terminalu. Ważne jest, aby chronić to hasło i nie udostępniać go nieupoważnionym użytkownikom.
Jeśli chcesz zresetować hasło roota, możesz użyć następującego polecenia:
sudo gitlab-rake "gitlab:password:reset[root]"
Po wykonaniu tego polecenia hasło roota zostanie zresetowane do losowego ciągu wyświetlanego na wyjściu terminala. Należy pamiętać, że zresetowanie hasła roota unieważni wszystkie istniejące i osobiste tokeny dostępu, dlatego użytkownicy muszą utworzyć nowe po zresetowaniu hasła.
Ze względów bezpieczeństwa zaleca się zmianę hasła roota na silne i unikalne tak szybko, jak to możliwe po wstępnej konfiguracji i unikanie używania hasła domyślnego. Możesz zmienić hasło roota logując się do interfejsu internetowego GitLab, przechodząc do „Ustawienia użytkownika”> „Konto” i wybierając opcję „Zmień hasło”.
Uzyskaj dostęp do interfejsu użytkownika GitLab
Po zakończeniu konfiguracji backendu nadszedł czas na zalogowanie się i uzyskanie dostępu do GitLab. Aby to osiągnąć należy w pliku konfiguracyjnym otworzyć ścieżkę domeny przypisaną do GitLaba.
https://gitlab.example.com
Następnie zaloguj się do GitLab używając nazwy użytkownika „root” i hasła otrzymanego podczas instalacji. Jak wspomniano w wydruku hasła w poprzedniej sekcji, hasło przewodnika na obrazku brzmiało „4zB2mbBLCcRLRAkv3qHfmSZULJ/6ocJNe2XK8zNx9nU=”.
Pomyślnie zalogowałeś się jako konto root i dotarłeś do domyślnej strony docelowej.
Dodatkowe wskazówki
Poniżej znajduje się kilka zaleceń dotyczących zabezpieczania, dostosowywania lub inne ogólne wskazówki dotyczące pierwszego logowania się do interfejsu użytkownika GitLab:
- Zmień domyślne hasło: Aby zwiększyć bezpieczeństwo instancji GitLab, kluczowa jest zmiana domyślnego hasła użytkownika root. Zaloguj się do GitLab przy użyciu domyślnej nazwy użytkownika i hasła, przejdź do „Ustawienia użytkownika”> „Hasło” i wprowadź nowe hasło.
- Skonfiguruj uwierzytelnianie dwuskładnikowe (2FA): Dodanie do procesu logowania czynnika uwierzytelniającego, takiego jak kod wysłany na telefon lub wygenerowany przez aplikację, to dodatkowa warstwa bezpieczeństwa zapewniana przez 2FA. Aby włączyć 2FA w GitLab, przejdź do „Ustawienia użytkownika”> „Konto”> „Uwierzytelnianie dwuskładnikowe” i postępuj zgodnie z instrukcjami.
- Utwórz projekt: Aby utworzyć nowy projekt w GitLabie, przejdź do strony „Projekty” i kliknij przycisk „Nowy projekt”. Możesz utworzyć pusty projekt lub zaimportować istniejący projekt z repozytorium Git.
- Dostosuj interfejs użytkownika: GitLab umożliwia kilka opcji dostosowywania, takich jak zmiana motywu, dodanie niestandardowego logo i konfiguracja paska nawigacyjnego. Przejdź do „Obszar administracyjny”> „Ustawienia” i wybierz odpowiednie opcje, aby dostosować interfejs użytkownika.
- Skonfiguruj kontrolę dostępu: Potężne funkcje kontroli dostępu GitLab pozwalają kontrolować, kto może uzyskać dostęp do Twoich projektów i co mogą zrobić. Przejdź do „Ustawienia projektu”> „Członkowie” i dodaj lub usuń członków z różnymi poziomami dostępu, aby skonfigurować kontrolę dostępu.
- Użyj GitLaba CI/CD: Potężne możliwości CI/CD GitLaba automatyzują testowanie i wdrażanie Twojego kodu. Skonfiguruj potoki CI/CD, tworząc plik „.gitlab-ci.yml” w katalogu głównym projektu i definiując etapy i zadania potoku.
- Skonfiguruj moduł uruchamiający GitLab: GitLab Runner to lekki agent, który uruchamia zadania CI/CD i wysyła wyniki z powrotem do GitLab. Postępuj zgodnie z instrukcjami zawartymi w dokumentacji GitLab, aby zainstalować i skonfigurować GitLab Runner w systemie Debian.
- Utwórz kopię zapasową instancji GitLab: Regularnie twórz kopie zapasowe instancji GitLab, aby zapobiec utracie danych w przypadku awarii sprzętu lub innych katastrof. Uruchom polecenie „gitlab-rake gitlab:backup:create” w swoim terminalu, aby utworzyć kopię zapasową instancji GitLab.
Utwórz Cronjob dla automatycznej kopii zapasowej GitLab
Skonfigurowanie zadania cron dla automatycznego tworzenia kopii zapasowych GitLab w Debianie jest niezbędne, aby zapewnić bezpieczeństwo Twoich danych. Zadanie cron to zaplanowane zadanie, które automatycznie uruchamia się w określonych odstępach czasu w celu wykonania kopii zapasowej instancji GitLab. Wykonaj poniższe kroki, aby utworzyć zadanie cron do automatycznego tworzenia kopii zapasowych GitLab w Debianie.
Utwórz skrypt kopii zapasowej Gitlab
Pierwszym krokiem jest utworzenie skryptu kopii zapasowej w celu wykonania kopii zapasowej instancji GitLab. Wykonaj następujące kroki:
Za pomocą edytora tekstu utwórz nowy plik skryptu kopii zapasowej. Oto przykład:
sudo nano /usr/local/bin/gitlab-backup.sh
Wklej następujący kod do pliku:
#!/bin/bash
BACKUP_DIR=/var/opt/gitlab/backups
TIMESTAMP=$(date +%s)
sudo gitlab-rake gitlab:backup:create
sudo cp ${BACKUP_DIR}/$(ls -t ${BACKUP_DIR} | head -1) ${BACKUP_DIR}/gitlab_backup_${TIMESTAMP}.tar
- Zapisz plik i wyjdź z edytora tekstu.
Ten skrypt wygeneruje kopię zapasową instancji GitLab poprzez uruchomienie polecenia gitlab-rake gitlab:backup:create. Po utworzeniu kopii zapasowej zduplikuje najnowszą kopię zapasową do nowego pliku ze znacznikiem czasu w nazwie pliku.
Ustawianie uprawnień i własności
Kolejnym krokiem jest ustalenie odpowiednich uprawnień i własności skryptu kopii zapasowej, aby mieć pewność, że zadanie cronjob będzie mogło go wykonać. Wykonaj następujące kroki:
Ustaw właściciela skryptu kopii zapasowej na użytkownika powiązanego z GitLabem:
sudo chown git:git /usr/local/bin/gitlab-backup.sh
Ustaw uprawnienia skryptu kopii zapasowej, aby umożliwić jego wykonanie:
sudo chmod +x /usr/local/bin/gitlab-backup.sh
Tworzenie Cronjoba
Następnym krokiem jest utworzenie cronjob, aby zaplanować regularne uruchamianie skryptu kopii zapasowej. Wykonaj następujące kroki:
Aby otworzyć plik konfiguracyjny crontab dla użytkownika GitLab, wykonaj następujące kroki:
sudo crontab -u git -e
Aby zaplanować uruchamianie skryptu kopii zapasowej codziennie o godzinie 1:00, dodaj następujący wiersz do pliku konfiguracyjnego crontab dla użytkownika GitLab:
0 1 * * * /path/to/backup/script.sh
Zapisz plik i wyjdź z edytora tekstu.
To zadanie cron automatycznie wykona skrypt kopii zapasowej codziennie o godzinie 1:00, co spowoduje utworzenie nowego pliku kopii zapasowej ze znacznikiem czasu w nazwie pliku.
Testowanie Cronjoba
Możesz sprawdzić poprawność działania cronjob, ręcznie wykonując skrypt kopii zapasowej i upewniając się, że plik kopii zapasowej zostanie wygenerowany bez błędów. Aby wykonać ten test, wpisz w terminalu następujące polecenie:
sudo /usr/local/bin/gitlab-backup.sh
To polecenie wygeneruje nowy plik kopii zapasowej w katalogu „/var/opt/gitlab/backups”. Nazwa pliku będzie zawierać znacznik czasu wskazujący, kiedy utworzono kopię zapasową.
Polecenia terminala GitLab
GitLab-ctl to narzędzie wiersza poleceń do zarządzania GitLab w Debianie. Zawiera zestaw poleceń terminalowych służących między innymi do uruchamiania, zatrzymywania, ponownego uruchamiania i zarządzania usługami GitLab. Oto szczegółowa sekcja dotycząca poleceń terminala GitLab-ctl, wraz z przykładowymi poleceniami i wynikami z objaśnieniami.
Uruchamianie i zatrzymywanie usług GitLab
Aby uruchomić i zatrzymać usługi GitLab, użyj następujących poleceń:
Uruchom wszystkie usługi GitLab:
sudo gitlab-ctl start
Zatrzymaj wszystkie usługi GitLab:
sudo gitlab-ctl stop
Uruchom ponownie wszystkie usługi GitLab:
sudo gitlab-ctl restart
Załaduj ponownie usługi GitLab:
sudo gitlab-ctl reload
Te polecenia uruchomią, zatrzymają, zrestartują lub przeładują wszystkie usługi GitLab. Dane wyjściowe wskażą, które usługi są uruchamiane lub zatrzymywane oraz czy operacja zakończyła się pomyślnie.
Sprawdzanie statusu usług GitLab
Aby sprawdzić status usług GitLab użyj następującego polecenia:
sudo gitlab-ctl status
Te polecenia uruchomią, zatrzymają, zrestartują lub przeładują wszystkie usługi GitLab. Po wykonaniu polecenia dane wyjściowe pokażą, których usług dotyczy problem i czy operacja się powiodła.
Tworzenie kopii zapasowych i przywracanie danych GitLab
Możesz utworzyć kopię zapasową danych GitLab za pomocą następującego polecenia:
Utwórz kopię zapasową danych GitLab:
sudo gitlab-rake gitlab:backup:create
Podane polecenie utworzy plik kopii zapasowej zawierający wszystkie dane GitLab, takie jak repozytoria, dane użytkowników i pliki konfiguracyjne. Plik kopii zapasowej zostanie zapisany w katalogu: „/var/opt/gitlab/backups”.
Przywróć kopię zapasową danych GitLab:
sudo gitlab-rake gitlab:backup:restore BACKUP=<backup_file>
Za pomocą tego polecenia możesz przywrócić kopię zapasową danych GitLab z określonego pliku kopii zapasowej. Plik kopii zapasowej musi znajdować się w katalogu „var/opt/gitlab/backups” lub możesz wskazać pełną ścieżkę do pliku kopii zapasowej.
Sprawdzanie konfiguracji GitLab
Aby sprawdzić konfigurację GitLaba, możesz użyć następującego polecenia:
sudo gitlab-rake gitlab:check
To polecenie może skanować w poszukiwaniu błędów lub ostrzeżeń w konfiguracji GitLab, w tym nieaktualnych wersji, brakujących zależności i błędnie skonfigurowanych ustawień. Dane wyjściowe będą podsumowaniem wyników skanowania i szczegółowymi informacjami o wszelkich wykrytych problemach.
Sprawdzanie logów GitLaba
Oto jak sprawdzić dzienniki GitLab za pomocą następujących poleceń:
Zobacz logi GitLaba:
sudo gitlab-ctl tail gitlab-rails/production.log
Możesz użyć poniższego polecenia, aby wyświetlić ostatnie dziesięć wierszy dziennika produkcyjnego GitLab, które zawierają szczegółowe informacje o działaniach użytkownika, ostrzeżeniach i błędach.
Wyświetl dzienniki GitLab NGINX:
sudo gitlab-ctl tail nginx/gitlab_access.log
To polecenie wyświetli ostatnie dziesięć wierszy dziennika dostępu GitLab NGINX, który zawiera szczegółowe informacje dotyczące żądań i odpowiedzi HTTP.
Zobacz logi GitLab PostgreSQL:
sudo gitlab-ctl tail postgresql/current
To polecenie wyświetli ostatnie dziesięć wierszy dziennika GitLab PostgreSQL, który zawiera informacje o zapytaniach i transakcjach do bazy danych.
Wniosek
Po pomyślnym zainstalowaniu GitLab CE w systemie Debian przy użyciu oficjalnego skryptu instalacyjnego, możesz w pełni wykorzystać jego potężne możliwości DevOps. Ta metoda gwarantuje, że masz najnowszą wersję i łatwy dostęp do aktualizacji. Regularnie konserwuj i aktualizuj swoją instancję GitLab, aby korzystać z najnowszych funkcji i ulepszeń bezpieczeństwa. Ciesz się bezproblemową integracją i narzędziami współpracy, które GitLab CE oferuje dla Twoich projektów programistycznych.