Automatyczna instalacja repozytoriów w UniCloud
Własny serwer GitLab – elastyczność, prostota i prywatność
Pełna kontrola nad repozytoriami Git może być wymagana, jeśli nie chcemy, aby nasze narzędzia obsługiwały firmy zewnętrzne. Własna instalacja GitLab pozwala na większą kontrolę. Można dokonać instalacji całego środowiska na serwerze dedykowanym lub skorzystać z przygotowanego rozwiązania.
Repozytoria Git są ważną częścią procesu rozwoju i dostarczania aplikacji, zazwyczaj obsługiwane przez GitHub czy BitBucket. Poniżej zaprezentujemy, jak
w prosty sposób uruchomić swoją instalację GitLab w chmurze wykorzystując możliwości platformy PaaS. Dzięki jednej aplikacji uzyskamy większą szybkość działania i współbieżny DevOps na cały cykl życia oprogramowania [1]. Takie rozwiązanie odsuwa obawy związane z bezpieczeństwem prywatnego kodu hostowanego w firmie zewnętrznej.
Instalacja przeprowadzona zostanie z wykorzystaniem repozytorium [2], licencjonowanego przez MIT i prowadzonym licznymi forkami. Chmura UniCloud umożliwia rozszerzenie repozytorium o dodatkowe funkcje, takie jak elastyczne udostępnianie zasobów
z automatycznym skalowaniem pionowym, szyfrowanie SSL, wstrzykiwanie dynamicznych zmiennych środowiskowych (nazwa środowiska i domeny, tokeny bezpieczeństwa, hasła) [3]. Wszystkie te opcje pakowane są w z serwerem GitLab w manifest [4] zapewniający automatyzację instalacji w chmurze. Domyślna topologia składa się z dwóch węzłów Docker Engine:
pierwszy zawiera serwer Git i rejestry kontenerów, w drugim zawiera się GitLab Runner.
Rysunek 1: Architektura rozwiązania
Instalacja serwera GitLab
Uruchom pulpit UniCloud [5], znajdź GitLab na Liście gotowych aplikacji i naciśnij Zainstaluj
Rysunek 2: Wybór aplikacji
Można też skorzystać z manifestu [4] i zaimportować go wybierając w panelu przycisk Import.
Rysunek 3: Instalacja aplikacji
Wystarczy wpisać nazwę środowiska i nacisnąć Zainstaluj.
Po zakończeniu instalacji otrzymamy powiadomienie o danych logowania do panelu administracyjnego dostępnego w przeglądarce.
Rysunek 4: Zakończenie instalacji
Skalowanie węzłów w poziomie
Wraz z rozwojem zespołu obciążenie serwera może wzrastać, przydatna wówczas staje się możliwość dodawania kolejnych węzłów bez ręcznego rejestrowania ich na serwerze. Po instalacji mamy dostępny jeden węzeł:
Rysunek 5: Panel serwera po instalacji
Kolejne węzły typu Runner dodaje się w panelu UniCloud [5], zmieniając topologię środowiska:
Rysunek 6: Panel zmiany topologii środowiska
Wybierając kontener Docker-ce, w sekcji Skalowanie poziome można zmienić ilość kontenerów Runner. Zastosuj zmiany.
Rysunek 7: Dodanie kontenerów Docker
Dodaliśmy dwa nowe kontenery Runner
Rysunek 8: Topologia po zmianie ilości węzłów
Zostały one automatycznie zarejestrowane na serwerze Git
Rysunek 9: Panel serwera po rekonfiguracji
Możemy teraz importować nasze projekty z GitHub na własny serwer GitLab, tworzyć nowe projekty, zarządzać zespołem, aktualizować serwer etc.
Aktualizacja serwera GitLab
Pakiet wyposażony jest w procedurę aktualizacji serwera GitLab. Podczas aktualizacji sprawdzana jest dostępność nowej wersji w repozytorium [4]. Aktualizacja dostępna jest w dodatkach panelu UniCloud [5]:
Rysunek 10: Aktualizacja serwera
Info:
[1] GitLab:
https://about.gitlab.com/product/
[2] Repozytorium GitLab:
https://github.com/sameersbn/docker-gitlab
[3] Jelastic, Blog:
https://jelastic.com/blog/private-gitlab-server-auto-installation/
[4] Manifest serwera GitLab:
https://github.com/jelastic-jps/gitlab/blob/master/manifest.jps
[5] Panel UniCloud:
https://app.unicloud.pl
Autor:
Piotr Niemcewicz pracuje jako inżynier w Centrum Danych i Usług Chmurowych Asseco Data Systems S.A., gdzie zajmuje się projektowaniem i wsparciem podczas wdrażania systemów.