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/.
1cat ~/.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
openssljest zainstalowany na twoim komputerze. Jeśli nie, zainstaluj go za pomocą menedżera pakietów swojej dystrybucji.1 2sudo apt-get update sudo apt-get install opensslPobierz Certyfikat:
Użyj polecenia
openssl, aby połączyć się z serwerem GitLab i pobrać certyfikat. Zamieńgitlab.sysadmin.homesna domenę swojego serwera GitLab.1echo -n | openssl s_client -connect gitlab.sysadmin.homes:443 -servername gitlab.sysadmin.homes | openssl x509 > gitlab.crtTo polecenie utworzy plik o nazwie
gitlab.crtw bieżącym katalogu, zawierający certyfikat serwera.Zweryfikuj Certyfikat:
Zweryfikuj pobrany certyfikat za pomocą poniższego polecenia:
1openssl x509 -in gitlab.crt -text -nooutTo 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 2sudo cp gitlab.crt /usr/local/share/ca-certificates/gitlab.crt sudo update-ca-certificatesPrzetestuj 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 2ssh -i ~/.ssh/id_ed25519 -T git@gitlab.sysadmin.homes ssh -T git@gitlab.sysadmin.homesWyrejestruj Runnera:
Wyrejestruj runnera GitLab:
1sudo gitlab-runner unregister --all-runnersPrzejdź 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.
Comments