Üdvözöllek, kedves fejlesztő, rendszergazda vagy éppen lelkes technológiai érdeklődő! Ma egy olyan utazásra indulunk, amelynek végén a saját, független GitLab környezeted büszke tulajdonosa leszel. Elfelejtheted a felhőalapú szolgáltatások korlátait vagy a külső tárolás okozta aggodalmakat – a GitLab telepítése saját szerverre a maximális kontrollt és rugalmasságot adja a kezedbe.
A GitLab nem csupán egy verziókövető rendszer, hanem egy komplett DevOps platform, amely a kódkezeléstől (Git), a CI/CD-n (folyamatos integráció/folyamatos szállítás) át, egészen a projektmenedzsmentig és a biztonsági ellenőrzésekig szinte minden fejlesztési folyamatot lefed. Ha valaha is álmodtál arról, hogy egyetlen platformon belül tartsd a teljes szoftverfejlesztési életciklust, akkor jó helyen jársz. Most megmutatjuk, hogyan építheted fel ezt a robusztus rendszert a saját infrastruktúrádon, lépésről lépésre.
Miért érdemes saját szerverre telepíteni a GitLab-ot?
Sokak számára az első gondolat a felhőalapú GitLab.com használata. Ez kétségkívül kényelmes, de a saját hosztolású GitLab számos előnnyel jár:
- Teljes kontroll: Te döntesz a szerverkonfigurációról, a biztonsági beállításokról, a frissítések időzítéséről.
- Adatvédelem és biztonság: Az adatok a saját szervereden maradnak, ami kulcsfontosságú lehet érzékeny projektek vagy szigorú szabályozások esetén.
- Testreszabhatóság: Szélesebb körű testreszabási lehetőségeket kapsz, beleértve a speciális integrációkat vagy a magas rendelkezésre állású (HA) konfigurációkat.
- Költséghatékonyság: Nagyobb csapatok vagy intenzív CI/CD használat esetén a saját hosztolás hosszú távon olcsóbb lehet, mint a felhőalapú előfizetések.
- Függetlenség: Nem függsz külső szolgáltatók leállásától vagy szolgáltatásmódosításaitól.
Ez az útmutató a GitLab Community Edition (CE) telepítésére fókuszál az Omnibus csomag segítségével, ami a legegyszerűbb és leggyorsabb módja a GitLab üzembe helyezésének Linux alapú rendszereken.
Előkészületek: Mielőtt Belevágnánk
Mielőtt belevetnénk magunkat a parancssorok világába, fontos, hogy a szerverünk készen álljon a feladatra. A sikeres GitLab telepítés alapja a megfelelő előkészület.
Szerverkövetelmények:
A GitLab erőforrás-igényes alkalmazás, különösen, ha CI/CD pipeline-okat futtatsz, vagy sok felhasználó van. Az alábbiak minimum követelmények, de mindig érdemes kicsit túlméretezni, ha teheted:
- Operációs Rendszer: Ubuntu (20.04 LTS vagy újabb), Debian (11 vagy újabb), CentOS (7 vagy 8), RHEL (8 vagy 9), openSUSE (Leap 15.3 vagy újabb). Mi most az Ubuntu 22.04 LTS-re fókuszálunk.
- RAM: Minimum 4 GB RAM, de 8 GB RAM ajánlott 500 felhasználóig. Ha aktív CI/CD-t használsz, vagy nagyobb a csapatod, 16 GB vagy több is indokolt lehet.
- CPU: Legalább 2 mag, de 4 mag vagy több ajánlott.
- Tárhely: Minimum 50 GB szabad tárhely, de 100-250 GB vagy több javasolt a repository-k, adatbázis és logok tárolására. Erős SSD használata erősen ajánlott.
További Előkészületek:
- Domain név: Szükséged lesz egy saját domain névre (pl.
gitlab.sajatceg.hu
), és a hozzá tartozó DNS A rekordnak a szervered IP-címére kell mutatnia. - SSH hozzáférés: Győződj meg róla, hogy van SSH hozzáférésed a szerverhez root vagy sudo jogokkal rendelkező felhasználóként.
- Tűzfal: Engedélyezd a 22 (SSH), 80 (HTTP) és 443 (HTTPS) portokat a tűzfalon.
Ha ezek megvannak, készen is állunk a GitLab telepítés megkezdésére!
1. Lépés: A Szerver Felkészítése
Először is jelentkezz be a szerveredre SSH-n keresztül, és frissítsd a rendszert, majd telepítsd a szükséges függőségeket.
sudo apt update
sudo apt upgrade -y
sudo apt install -y curl ca-certificates apt-transport-https postfix
curl
: Szükséges a GitLab csomagtár GPG kulcsának letöltéséhez.ca-certificates
ésapt-transport-https
: Ezek biztosítják, hogy a rendszer megbízhatóan tudjon HTTPS-en keresztül kommunikálni a csomagtárakkal.postfix
: A GitLab e-mail küldésre használja a felhasználók értesítéséhez (pl. jelszó-visszaállítás, értesítések). A telepítés során válassz a „Local only” vagy „Internet Site” opciók közül, attól függően, hogy hogyan szeretnéd beállítani az e-mail küldést. Egy későbbi lépésben ezt konfigurálhatod külső SMTP szerverre is.
Ezután állítsuk be a tűzfalat (UFW példa):
sudo ufw allow OpenSSH
sudo ufw allow http
sudo ufw allow https
sudo ufw enable
sudo ufw status
A ufw status
paranccsal ellenőrizheted, hogy a portok rendben vannak-e.
2. Lépés: A GitLab Csomagtár Hozzáadása
A GitLab Omnibus csomagját a hivatalos GitLab repository-ból fogjuk telepíteni. Először hozzá kell adnunk ezt a repository-t a rendszerünkhöz.
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ce/script.deb.sh | sudo bash
Ez a parancs letölt és futtat egy scriptet, ami hozzáadja a GitLab CE csomagtárát a rendszerhez, importálja a GPG kulcsot, és frissíti az APT csomagtárlistáját. A script automatikusan felismeri az operációs rendszeredet, és ahhoz igazodva végzi el a beállításokat. Ha valamilyen okból nem akarod a scriptet használni, manuálisan is hozzáadhatod a repository-t, de ez a módszer sokkal kényelmesebb és biztonságosabb.
3. Lépés: GitLab Telepítése
Most, hogy a repository hozzáadva, és a rendszerünk frissítve, készen állunk a GitLab telepítésére. A legfontosabb lépés itt, hogy megadjuk a GitLab-nak, milyen URL-en keresztül lesz elérhető.
sudo EXTERNAL_URL="https://gitlab.sajatceg.hu" apt install gitlab-ce -y
Fontos: Cseréld le a https://gitlab.sajatceg.hu
címet a saját domain nevedre! Ha még nincs SSL tanúsítványod, akkor kezdetben használhatod a http://
előtagot is, de az SSL konfigurációval hamarosan beállítjuk a HTTPS-t. Az EXTERNAL_URL
beállítás kulcsfontosságú, mert a GitLab ezt használja a belső konfigurációjához (pl. linkek generálása az e-mailekben, a CI/CD futtatók kommunikációja).
Ez a parancs letölti és telepíti a GitLab CE Omnibus csomagot, beleértve az összes szükséges komponenst (PostgreSQL adatbázis, NGINX webkiszolgáló, Redis, stb.). Ez eltarthat egy darabig, a szervered sebességétől függően.
4. Lépés: GitLab Konfigurálása és Első Indítása
A telepítés befejezése után a GitLab még nem indul el automatikusan. Először konfigurálnunk kell.
sudo gitlab-ctl reconfigure
Ez a parancs elindítja az Omnibus GitLab konfigurációs folyamatát. Lényegében átnézi a /etc/gitlab/gitlab.rb
fájlban található beállításokat (ez a GitLab fő konfigurációs fájlja), és azok alapján beállítja az összes belső komponenst. Ez magában foglalja az NGINX konfigurálását, az adatbázis inicializálását, a felhasználók létrehozását és az összes szolgáltatás elindítását. Ez a folyamat szintén eltarthat pár percig.
Admin jelszó beállítása:
Az első újrakonfigurálás után a GitLab generál egy ideiglenes jelszót a root
admin felhasználónak. Ezt a jelszót megtalálhatod a logokban, vagy egyszerűbben beállíthatsz egy újat SSH-n keresztül:
sudo gitlab-rails console
User.where(id: 1).first.password = 'IdeJönAzÚjJelszó'
User.where(id: 1).first.password_confirmation = 'IdeJönAzÚjJelszó'
User.where(id: 1).first.save!
exit
Cseréld le az 'IdeJönAzÚjJelszó'
szöveget egy erős, biztonságos jelszóra! Ez a parancs közvetlenül az adatbázisban állítja be a jelszót az első (root) felhasználónak.
Hozzáférés a GitLab-hoz a böngészőből:
Most már megnyithatod a böngésződet, és navigálhatsz a https://gitlab.sajatceg.hu
(vagy amit az EXTERNAL_URL
-nek beállítottál) címre. Látnod kell a GitLab bejelentkezési oldalát. Jelentkezz be a root
felhasználónévvel és az imént beállított jelszóval. Az első bejelentkezés után érdemes azonnal megváltoztatni a jelszót egy még biztonságosabbra, ha az ideiglenes jelszót használtad.
5. Lépés: SSL/TLS Konfiguráció (Let’s Encrypt)
A biztonságos kommunikáció alapja az SSL/TLS, amely titkosítja a szerver és a kliens közötti adatforgalmat. Az Omnibus GitLab beépített támogatással rendelkezik a Let’s Encrypt tanúsítványokhoz, ami rendkívül egyszerűvé teszi a HTTPS beállítását.
Nyisd meg a GitLab fő konfigurációs fájlját:
sudo nano /etc/gitlab/gitlab.rb
Keresd meg az alábbi sorokat, és szüntesd meg a kommentet (töröld a #
karaktert az elejéről), majd állítsd be őket:
# Az 'EXTERNAL_URL' már be van állítva, de győződj meg róla, hogy HTTPS-t használ
external_url 'https://gitlab.sajatceg.hu'
# Engedélyezd a Let's Encrypt-et
letsencrypt['enable'] = true
# Add meg az email címedet az értesítésekhez
letsencrypt['contact_emails'] = ['[email protected]']
# Automatikus megújítás beállítása (opcionális, alapértelmezetten engedélyezve van)
# letsencrypt['auto_renew'] = true
# letsencrypt['auto_renew_hour'] = 12
# letsencrypt['auto_renew_minute'] = 30
# letsencrypt['auto_renew_day_of_month'] = "*/7" # Heti megújítás
Mentsd el a fájlt (Ctrl+O, Enter, Ctrl+X), majd futtasd újra a rekonfigurációs parancsot:
sudo gitlab-ctl reconfigure
Ez a parancs most már a Let’s Encrypt segítségével lekéri és beállítja az SSL tanúsítványt a domain nevedhez, és konfigurálja az NGINX-et a HTTPS forgalom kezelésére. Ha minden rendben ment, a böngésződben már zöld lakatot kell látnod, ami a biztonságos kapcsolatot jelzi.
6. Lépés: Alapvető Beállítások és Felhasználókezelés
Miután sikeresen bejelentkeztél adminisztrátorként, érdemes körülnézni az admin felületen (Admin Area
a felső menüben).
- Jelszóváltás: Ha még nem tetted meg, válts jelszót a
root
felhasználónak. - Felhasználó regisztráció: Az
Admin Area -> Settings -> General
alatt beállíthatod, hogy a felhasználók regisztrálhatnak-e maguktól, vagy csak az adminok hozhatnak létre fiókokat. Biztonsági okokból érdemes lehet kikapcsolni a nyilvános regisztrációt. - SMTP beállítások: Ahhoz, hogy a GitLab képes legyen e-maileket küldeni (pl. jelszó-visszaállítás, értesítések), konfigurálnod kell az SMTP-t. Ezt a
/etc/gitlab/gitlab.rb
fájlban tudod megtenni a következő (példa) sorokkal (ne feledd agitlab-ctl reconfigure
futtatását minden változtatás után):gitlab_rails['smtp_enable'] = true gitlab_rails['smtp_address'] = "smtp.yourcompany.com" gitlab_rails['smtp_port'] = 587 gitlab_rails['smtp_user_name'] = "smtp_user" gitlab_rails['smtp_password'] = "smtp_password" gitlab_rails['smtp_domain'] = "yourcompany.com" gitlab_rails['smtp_authentication'] = "login" gitlab_rails['smtp_enable_starttls_auto'] = true gitlab_rails['smtp_tls'] = false gitlab_rails['gitlab_email_from'] = '[email protected]' gitlab_rails['gitlab_email_display_name'] = 'GitLab'
Karbantartás és Tippek
A GitLab telepítés csak az első lépés. A zökkenőmentes működéshez rendszeres karbantartás szükséges.
- Rendszeres frissítések: A GitLab gyakran ad ki frissítéseket, amelyek hibajavításokat, biztonsági javításokat és új funkciókat tartalmaznak. Mindig tartsd naprakészen a rendszert!
sudo apt update sudo apt upgrade gitlab-ce -y sudo gitlab-ctl reconfigure # Szükséges lehet frissítés után
- Mentés: A GitLab adatok elvesztése katasztrófa lenne. Rendszeresen készíts mentéseket!
sudo gitlab-rake gitlab:backup:create
A mentések alapértelmezetten a
/var/opt/gitlab/backups
könyvtárba kerülnek. Ezt agitlab.rb
fájlban is konfigurálhatod, pl. S3-ra való feltöltéshez. Készíts off-site mentéseket! - Logok ellenőrzése: Rendszeresen nézd át a logokat a
/var/log/gitlab/
könyvtárban, vagy használd asudo gitlab-ctl tail
parancsot az élő logok megtekintéséhez. - Teljesítmény monitorozása: Figyeld a szerver erőforrás-felhasználását (CPU, RAM, diszk I/O), hogy időben észleld az esetleges szűk keresztmetszeteket.
Gyakori Problémák és Hibaelhárítás
Bármilyen komplex rendszer telepítése során felmerülhetnek problémák. Néhány tipp a hibaelhárításhoz:
- Tűzfal problémák: Győződj meg róla, hogy a 80 és 443 portok nyitva vannak. Használd a
telnet gitlab.sajatceg.hu 443
parancsot a teszteléshez. - DNS feloldás: Ellenőrizd, hogy a domain neved helyesen mutat-e a szervered IP-címére (pl.
dig gitlab.sajatceg.hu
). - Erőforrások hiánya: Ha a GitLab lassú, vagy hibákat produkál, ellenőrizd a RAM és CPU kihasználtságát. A kevés RAM különösen gyakori probléma.
- Konfigurációs hibák: A
sudo gitlab-ctl reconfigure
hibaüzenetei gyakran nagyon beszédesek. Olvasd el őket figyelmesen! - GitLab diagnosztika: A
sudo gitlab-rake gitlab:check SANITIZE=true
parancs átfogóan ellenőrzi a GitLab állapotát. - Logok vizsgálata: A
/var/log/gitlab/nginx/gitlab_access.log
,gitlab_error.log
, és a többi szolgáltatás logja (sidekiq
,puma
stb.) rengeteg információt tartalmazhat.
Összefoglalás
Gratulálok! Most már tudod, hogyan kell GitLab-ot telepíteni saját szerverre lépésről lépésre. Ez egy hatalmas lépés a független és kontrollált DevOps infrastruktúra felé. Bár a folyamat kezdetben kihívásnak tűnhet, a végeredmény egy robusztus, rugalmas és teljes körű platform, amely minden szoftverfejlesztési igényedet kielégíti.
Ne feledd, a tanulás és az optimalizálás folyamatos. Fedezd fel a GitLab számtalan funkcióját, integráld más eszközeiddel, és alakítsd a csapatod igényeihez. A saját hosztolású GitLab-bal a kezedben tartod a kulcsot a hatékonyabb és biztonságosabb fejlesztési munkafolyamatokhoz. Sok sikert a projektjeidhez!
Leave a Reply