Co je Gitlab?
Jak Nasadím Samostatně Spravována GitLab na Cloudových Platformách?
Navrhuji vám přemýšlet o nasazení self-managed GitLabu na cloudových platformách jako o magickém klíči k plné kontrole nad vaším projektem. Toto nasazení vám umožňuje škálovat zdroje přesně podle vašich potřeb, zajistit flexibilitu a efektivní jejich využití. To samozřejmě otevírá široké možnosti pro integraci s jinými službami a infrastrukturou, umožňuje vám přizpůsobit a integrovat GitLab podle vašich potřeb.
A nejlepší na tom je, že sami kontrolujete úroveň bezpečnosti a ochrany vašich dat – což je zvláště důležité pro organizace, které kladou velký důraz na bezpečnost a důvěrnost. Začněme. GitLab lze nainstalovat na platformách Amazon Web Services, Google Cloud Platform, Microsoft Azure a dalších cloudových systémech, které podporují Linux. K tomu existuje několik různých metod, které jsou popsány v článku níže. Najdete zde také potřebné instrukce pro jednoduchou instalaci GitLabu pro společnosti s až 500 uživateli, s ohledem na jejich potřeby a požadavky. Začněme s tím, jaké metody instalace vlastně existují:
Oficiální balíček pro Linux
GitLab doporučuje použití balíčku pro Linux s názvem Omnibus pro efektivní nasazení self-managed verze GitLabu na různých cloudových platformách, jako jsou GCP, AWS, Azure a další. Tato metoda je vhodná pro rozsah až 1000 uživatelů. Pomocí tohoto přístupu získáte rychlé a kvalitní nasazení plnohodnotné DevSecOps platformy pro zdokonalování osvědčených postupů v životním cyklu vývoje softwaru (SDLC). Balíček Omnibus obsahuje všechny potřebné služby a nástroje pro bezproblémový provoz, snadnou administraci a, což je důležité, pravidelné aktualizace.
Reference architectures
GitLab vyvinul a otestoval unikátní referenční architektury, které jsou optimalizované pro doporučené nasazení ve velkém měřítku. GitLab Reference Architecture balíčky mohou úspěšně pracovat s velkým množstvím uživatelů – od 1 000 do 50 000. Pokud však vaše potřeby spočívají v vytvoření prostředí pro menší počet uživatelů (do 3 000), doporučuje se použít alternativní metodu, protože referenční architektura vyžaduje vysokou úroveň dostupnosti, aby každá komponenta systému GitLab mohla efektivně pracovat během výpadků pomocí různých mechanismů. Dosáhnout takové úrovně je složitý úkol a vytvoření potřebného prostředí může trvat značnou dobu a vyžadovat velké úsilí.
GitLab Helm chart (Kubernetes)
Helm Chart obsahuje všechny potřebné součásti pro rychlý spuštění a může se škálovat na velká nasazení. Pokud plánujete instalovat GitLab na platformě OpenShift, doporučuje se použít GitLab Operator. Pro jiné scénáře budete muset ručně konfigurovat bezpečnostní omezení. Nicméně, prostředí pro produkt GitLab se nedoporučuje používat tento přístup, protože rozdepkuje všechny služby GitLabu v rámci clusteru. Pro zajištění ideálního a spolehlivého provozu GitLabu musí komponenty, jako je PostgreSQL nebo Gitaly, pracovat mimo cluster. Tato konfigurace zajišťuje škálovatelnost a spolehlivé zvládání pracovních zátěží v prostředí GitLabu. Pokud používáte Kubernetes, GitLab doporučuje nasadit referenční architekturu pro Kubernetes známou jako “Cloud Native Hybrid”.
Cloud Native Hybrid
Tento přístup využívá referenční architekturu s důležitým rozdílem: ne všechny služby jsou umístěny v rámci jednoho clusteru, aby se zajistila optimální produktivita pracovních procesů. Všechny komponenty pro ukládání dat by měly fungovat mimo cluster. GitLab aktivně vyvíjí infrastrukturu jako kód (IaC), což umožňuje konfigurovat kombinaci Helm Chart s další cloudovou infrastrukturou, jako je Google Kubernetes Engine (GKE) nebo Amazon Elastic Kubernetes Service (EKS), což zajišťuje škálovatelnost a flexibilitu nasazení.
Jak nainstaluji GitLab a provedu minimální nastavení pro plný provoz?
Zastavíme se u nejjednoduššího a nejrozšířenějšího postupu – oficiálním balíčku pro Linux.
GitLab self-managed má dvě typy:
- GitLab CE (Community Edition).
- GitLab EE (Enterprise Edition).
Oba typy mají drobné rozdíly a jsou zdarma do doby, než je zakoupena licence. Hlavním rozdílem je však to, že GitLab CE je bezplatnou verzí, ke které nelze přidat licence. Pokud tedy společnost plánuje využívat placené funkční možnosti, doporučuje se okamžitě nainstalovat GitLab EE, aby se předešlo dalším nákladům na budoucí migraci.
Nejprve musíme vybrat server, na kterém bude náš GitLab nasazen. Zde jsou doporučení od GitLabu pro výběr serveru na platformách AWS, GCP a Azure:
Při zohlednění doporučených hardwarových požadavků od GitLabu a jejich návrhu na přidání 2 GB prostoru SWAP doporučujeme vybrat stroj s minimálně 8 GB operační paměti a přidat 4 GB prostoru SWAP pro bezproblémovou administraci. Při nastavování a aktualizaci systému se může vyskytnout významné zatížení, které může proces zastavit. Na našem názoru se náklady na vyřešení možných problémů vyplatí ve srovnání s cenovým rozdílem strojů. Po vytvoření požadovaného stroje s vybraným operačním systémem, například Ubuntu 22.04, začínáme s instalací a nastavením potřebných závislostí.
Začínáme s instalací a nastavením příslušných závislostí.
sudo apt-get update
sudo apt-get upgrade
sudo apt-get install -y curl openssh-server ca-certificates tzdata perl
Podle doporučení od GitLabu je dalším krokem instalace Postfixu pro odesílání e-mailových upozornění. Nicméně, pokud chcete použít alternativní nástroj, můžete tento krok přeskočit a nastavit externí SMTP server po instalaci GitLabu. V dokumentaci GitLabu naleznete podrobné instrukce pro konfiguraci tohoto parametru.
sudo apt-get install -y postfix
Poté Postfix otevře konfigurační obrazovku, ve které musíme vybrat typ webové stránky:
Poté zadáme doménu našeho GitLabu <gitlab.example.com>:
Pro všechny ostatní dotazy klikněte na tlačítko “OK”, abyste přijali všechny výchozí hodnoty. Provádíme přidání a instalaci repozitáře balíčků GitLab.
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
Pokračujeme s instalací GitLabu.
sudo apt-get install gitlab-ee
Po instalaci bude heslo pro uživatele “root” automaticky vygenerováno a uloženo do souboru /etc/gitlab/initial_root_password po dobu 24 hodin.
Poznámka: Důrazně doporučujeme po instalaci okamžitě změnit heslo. V této fázi budeme nastavovat a aktivovat firewall ve vašem operačním systému, předpokládáme, že používáte Ubuntu 22.04. Pokud již máte nastavený přístup k serveru, můžete tento krok přeskočit.
Nejprve musíme udělit přístupová práva k serveru:
1| sudo ufw allow http
2| sudo ufw allow https
3| sudo ufw allow OpenSSH
Aktivujeme firewall:
sudo ufw enable
Nyní otevíráme konfigurační soubor GitLabu pro úpravy. Soubor s nastavením gitlab.rb se nachází v cestě /etc/gitlab/gitlab/gitlab.rb:
sudo vim /etc/gitlab/gitlab.rb
nebo
sudo nano /etc/gitlab/gitlab.rb
Musíte uvést svou IP adresu v následujícím řádku:
external_url <‘http://51.120.241.152’>
sudo gitlab-ctl reconfigure
Poté musíte počkat na následující zprávu, což může trvat určitou dobu:
Po dokončení tohoto rekonfiguračního procesu přejděte na svou IP adresu a ujistěte se, že je GitLab nainstalován a správně funguje.
Poté se vraťte zpět do konfiguračního souboru gitlab.rb a provedete následující úpravy tím, že odstraníte komentáře z příslušných řádků.
sudo vim /etc/gitlab/gitlab.rb
nebo
sudo nano /etc/gitlab/gitlab.rb
external_url – doména serveru, na kterém je nainstalován GitLab, pečlivě zkontrolujte, aby bylo uvedeno https://
- letsencrypt[‘enable’] = true – použití certifikátu Let’s Encrypt
- letsencrypt[‘contact_emails’] – zadejte e-mailovou adresu pro registraci
- letsencrypt[‘auto_renew’] = true – automatické obnovení certifikátu Let’s Encrypt
- letsencrypt[‘auto_renew_hour’] = “12” – nastavte hodinu pro obnovu
- letsencrypt[‘auto_renew_minute’] = “30” – nastavte minutu pro obnovu
- letsencrypt[‘auto_renew_day_of_month’] = “*/7” – nastavte den v měsíci, kdy se má certifikát obnovit
Ujistěte se, že úpravy v souboru gitlab.rb vypadají následovně. Vzhledem k tomu, že soubor gitlab.rb může být rozsáhlý, různé změny mohou být vzdáleně od sebe umístěny.
external_url ‘https://gitlab.example.com’
letsencrypt[‘enable’] = true
letsencrypt[‘contact_emails’] = [‘example@com’]
letsencrypt[‘auto_renew’] = true
letsencrypt[‘auto_renew_hour’] = “12”
letsencrypt[‘auto_renew_minute’] = “30”
letsencrypt[‘auto_renew_day_of_month’] = “*/7”
Uložte naše změny a pusťte je do akce.
sudo gitlab-ctl reconfigure
Po obdržení tohoto oznámení, které může vyžadovat určitý čas čekání, zejména pokud se vyskytne chyba 502, budete moci úspěšně přihlásit se do systému GitLab. Vygenerované heslo naleznete v příslušném souboru od GitLabu.
sudo cat /etc/gitlab/initial_root_password
Obdržíme následující výstup:
Do pole “Uživatelské jméno nebo e-mail” zadejte uživatele “root” a do pole “Heslo” zadejte heslo, které se nachází v souboru “/etc/gitlab/initial_root_password”. Po úspěšném přihlášení budeme moci přistoupit k našemu účtu GitLab.
Je důležité okamžitě změnit své heslo! K tomu přejděte do svého profilu kliknutím na ikonu avataru v pravém horním rohu obrazovky.
Klikněte na <Upravit profil -> Heslo>:
Na předchozím kroku jsme již provedli potřebné instalace GitLabu. Nyní přejdeme k dalším nastavením. Na příkladu je vidět, že GitLab nabízí možnost zakázat registraci nových účtů pro kohokoli, kdo zná náš doménový název. To znamená, že kdokoli seznámený s naším doménovým názvem bude moci vytvořit účet (avšak administrátor musí takovou registraci stále schválit).
Odstraňujeme zaškrtnutí:
Také můžete okamžitě nastavit povolení registrace s vaší organizací:
Prázdný GitLab vyžaduje následující výpočetní výkon:
Nyní můžete snadno využívat pohodlné funkce GitLabu. Zbývá pouze správně nakonfigurovat SMTP pro příjem oznámení a budete připraveni začít vytvářet své pracovní prostředí. Tímto jste úspěšně dokončili instalaci, která obvykle vyhovuje potřebám většiny firem.
Shrnutí
Volba mezi nasazením self-managed GitLabu na cloudových platformách, jako jsou GCP, AWS, Azure, nebo použitím SaaS verze, závisí na požadavcích a legislativních omezeních daného podniku týkajících se ukládání projektů v cloudovém prostředí. Nicméně, pokud právní omezení nejsou překážkou, preferujeme použití SaaS verze GitLabu. Tento přístup má několik nesporných výhod:
- Snížení nákladů na správu cloudové infrastruktury.
- Úspora času a úsilí potřebného obvykle pro správu systému.
- Absence potřeby složitých konfigurací, které jsou často pracné a nákladné.
- Automatická konfigurace SMTP pro oznámení.
- Získávání aktualizací a dalších výhod po dobu používání.
To však neznamená, že self-managed GitLab není akceptovatelnou volbou. Vyžaduje pouze více pozornosti, úsilí a zdrojů pro efektivní provoz. Self-managed GitLab může být výhodný pro společnosti s konkrétními požadavky, vysokými bezpečnostními standardy nebo potřebou plné kontroly nad svými daty.
GitLab and Cloudfresh
Cloudfresh je certifikovaným partnerem GitLab, který poskytuje služby implementace, migrace, školení, integrace, konzultace a podpory. Pomáháme organizacím využít plný potenciál řešení GitLab, zvyšovat operační efektivitu, zkracovat čas vývoje a snižovat bezpečnostní rizika. Naši odborníci vám pomohou nasadit a spravovat kvalitní technická řešení GitLab. Seznamte se s našimi profesionálními službami na této stránce.
A abyste získali 30denní bezplatnou zkušební verzi self-managed licence GitLab, profesionální adaptaci, konzultace, zkušenosti a technickou podporu od Cloudfresh, klikněte sem.
Pojďme společně urychlit vaši transformaci DevSecOps!