GitLab telepítése saját szerverre lépésről lépésre

Ü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 és apt-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 a gitlab-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 a gitlab.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 a sudo 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

Az e-mail címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük