Oto tutorial wideo
Wprowadzenie
Aby użyć nazwy domeny zamiast adresu IP w pliku .gitlab-ci.yml
w GitLab do klonowania repozytoriów, wykonaj poniższe kroki, aby odpowiednio skonfigurować swój system.
Przewodnik Krok po Kroku
Dodawanie Klucza SSH do Sekcji Kluczy SSH Użytkownika w GitLab
Aby zapewnić bezpieczny i poprawny dostęp do repozytorium GitLab, wykonaj te kroki, aby usunąć klucz publiczny ed25519 z sekcji kluczy wdrożeniowych projektu i dodać go do sekcji kluczy SSH użytkownika.
-
Usuń Klucz SSH z Kluczy Wdrożeniowych:
-
Przejdź do Swojego Projektu:
- Zaloguj się do swojego instance GitLab.
- Przejdź do swojego projektu (np.
https://gitlab.sysadmin.homes/developers/taiko
).
-
Uzyskaj Dostęp do Kluczy Wdrożeniowych:
- W lewym pasku nawigacyjnym przejdź do Ustawienia > Repozytorium.
- Przewiń w dół do sekcji Klucze Wdrożeniowe.
-
Usuń Klucz Publiczny:
- Znajdź klucz SSH (ed25519.pub), który chcesz usunąć.
- Kliknij przycisk Usuń obok klucza, aby usunąć go z kluczy wdrożeniowych.
-
-
Dodaj Klucz SSH do Kluczy SSH Użytkownika:
-
Uzyskaj Dostęp do Ustawień Użytkownika:
- Kliknij na swój awatar w prawym górnym rogu interfejsu GitLab.
- Wybierz Ustawienia z menu rozwijanego.
-
Przejdź do Kluczy SSH:
- W menu ustawień użytkownika kliknij na Klucze SSH w lewym pasku bocznym.
-
Dodaj Klucz Publiczny:
- Skopiuj zawartość swojego klucza
ed25519.pub
. Klucz ten można znaleźć na swoim lokalnym komputerze, zazwyczaj w katalogu~/.ssh/
.
1
cat ~/.ssh/id_ed25519.pub
- Wklej skopiowany klucz do pola Klucz.
- Dodaj opisowy Tytuł dla klucza, aby łatwiej było go zidentyfikować później.
- Kliknij przycisk Dodaj klucz, aby zapisać go.
- Skopiuj zawartość swojego klucza
-
-
Zweryfikuj Klucz SSH:
Po dodaniu klucza SSH, zweryfikuj, czy został on poprawnie dodany:
- Wyświetl Listę Kluczy SSH:
- W sekcji Klucze SSH w ustawieniach użytkownika upewnij się, że nowy klucz pojawia się na liście.
- Wyświetl Listę Kluczy SSH:
Usuwając klucz publiczny ed25519 z kluczy wdrożeniowych projektu i dodając go do sekcji kluczy SSH użytkownika GitLab, zwiększasz bezpieczeństwo i zapewniasz, że klucz jest powiązany z konkretnym użytkownikiem, zamiast być dostępny jako klucz wdrożeniowy. Ta metoda jest bezpieczniejsza i daje lepszą kontrolę nad dostępem do repozytoriów.
-
Zainstaluj OpenSSL (jeśli nie jest jeszcze zainstalowany):
Upewnij się, że
openssl
jest zainstalowany na twoim komputerze. Jeśli nie, zainstaluj go za pomocą menedżera pakietów swojej dystrybucji.1 2
sudo apt-get update sudo apt-get install openssl
-
Pobierz Certyfikat:
Użyj polecenia
openssl
, aby połączyć się z serwerem GitLab i pobrać certyfikat. Zamieńgitlab.sysadmin.homes
na domenę swojego serwera GitLab.1
echo -n | openssl s_client -connect gitlab.sysadmin.homes:443 -servername gitlab.sysadmin.homes | openssl x509 > gitlab.crt
To polecenie utworzy plik o nazwie
gitlab.crt
w bieżącym katalogu, zawierający certyfikat serwera. -
Zweryfikuj Certyfikat:
Zweryfikuj pobrany certyfikat za pomocą poniższego polecenia:
1
openssl x509 -in gitlab.crt -text -noout
To polecenie wydrukuje szczegóły certyfikatu, umożliwiając upewnienie się, że jest to prawidłowy certyfikat.
-
Skopiuj Certyfikat do Zaufanego Sklepu:
Przenieś pobrany certyfikat do systemowego katalogu zaufanych certyfikatów i zaktualizuj certyfikaty CA:
1 2
sudo cp gitlab.crt /usr/local/share/ca-certificates/gitlab.crt sudo update-ca-certificates
-
Przetestuj Połączenie z Serwerem GitLab z GitLab Runner:
Z linii poleceń gitlab-runner, przetestuj dostęp SSH, aby upewnić się, że działa poprawnie:
1 2
ssh -i ~/.ssh/id_ed25519 -T git@gitlab.sysadmin.homes ssh -T git@gitlab.sysadmin.homes
-
Wyrejestruj Runnera:
Wyrejestruj runnera GitLab:
1
sudo gitlab-runner unregister --all-runners
-
Przejdź do Swojego Projektu:
- Zaloguj się do swojego instance GitLab.
- Przejdź do swojego projektu (np.
https://gitlab.sysadmin.homes/developers/taiko
).
- Uzyskaj Dostęp do Ustawień CI/CD:
- W lewym pasku nawigacyjnym przejdź do Ustawienia > CI/CD.
- Przewiń w dół do sekcji Runnery.
- Usuń Runnera GitLab:
- W sekcji Runnery, znajdź runnera, którego chcesz usunąć.
- Kliknij przycisk Edytuj obok runnera, aby wyświetlić jego szczegóły.
- Na dole strony szczegółów runnera, kliknij przycisk Usuń, aby usunąć runnera z projektu.
- Dodaj Nowego Runnera:
- W sekcji Dostępne określone runnery zobaczysz przycisk Dodaj Runnera. Kliknij na niego.
- Wypełnij Szczegóły Runnera:
- Pojawi się formularz, w którym musisz podać szczegóły nowego runnera.
- Opis: Wprowadź opis dla runnera (np.
docker-runner
). - Tagi: Dodaj tagi identyfikujące runnera (np.
docker
,linux
). - Uruchamiaj nieoznaczone zadania: Włącz lub wyłącz tę opcję w zależności od preferencji.
- Zablokowany: Wybierz, czy zablokować runnera do bieżącego projektu, czy nie.
- Wygeneruj i Skopiuj Token Rejestracyjny:
- Po wypełnieniu szczegółów, kliknij przycisk Zarejestruj Runnera.
- Wygenerowany zostanie token rejestracyjny. Skopiuj ten token, ponieważ będzie potrzebny do rejestracji runnera.
- Zarejestruj ponownie Runnera:
Po zaufaniu certyfikatowi spróbuj ponownie zarejestrować GitLab runnera:
|
|
- Ponownie zmodyfikuj
config.toml
:
Edytuj plik /etc/gitlab-runner/config.toml
za pomocą poniższego polecenia:
|
|
Upewnij się, że wpis zawiera: tags = ["docker"]
, privileged = true
, oraz services_limit = 1
.
Konfiguracja powinna wyglądać podobnie do tej:
|
|
Podsumowanie
Poprzez pobranie certyfikatu z serwera GitLab i dodanie go do zaufanych certyfikatów systemowych, można rozwiązać problem weryfikacji certyfikatu i pomyślnie zarejestrować GitLab runnera.
Zmodyfikowany plik .gitlab-ci.yml
Zmodyfikowany plik .gitlab-ci.yml
zawiera niezbędne kroki, aby dodać wpis do /etc/hosts
oraz pobrać i zainstalować certyfikat SSL na Alpine Linux w sekcji before_script
.
|
|
W zaktualizowanym pliku .gitlab-ci.yml
, sekcja before_script
zawiera niezbędne kroki, aby dodać wpis do /etc/hosts
oraz pobrać i zainstalować certyfikat SSL dla serwera GitLab na kontenerze opartym na Alpine. Zapewnia to
, że GitLab Runner może poprawnie połączyć się z serwerem GitLab podczas wykonywania zadania. Dodanie [[ -f /.dockerenv ]] && echo -e “Host *StrictHostKeyChecking no” > ~/.ssh/config powinno wyłączyć sprawdzanie kluczy hosta dla połączeń SSH, co może pomóc rozwiązać problem z dostępem.