Inet.sk

01. 01. 2025 o 21:55

Ilustračný obrázok

Prepojenie našich serverov s GitLab

GitLab je komplexná platforma na správu verzií kódu, ktorá umožňuje tímom efektívne spolupracovať na vývoji softvéru. Okrem štandardného verzionovania ponúka aj pokročilé nástroje ako GitLab CI/CD (Continuous Integration/Continuous Deployment), ktoré umožňujú automatizáciu procesov vývoja, testovania a nasadzovania aplikácií. V tomto návode si ukážeme, ako nastaviť GitLab CI/CD na nasadzovanie PHP kódu na náš server pomocou SSH. 

1. Nastavenie SSH kľúčov pre autentifikáciu

Aby ste umožnili bezpečnú autentifikáciu medzi GitLabom a našim serverom, je potrebné vygenerovať SSH kľúče. Pozrite si náš návod o SSH, ak potrebujete vysvetliť základy.

a. Generovanie páru SSH kľúčov

Ak ešte nemáte svoj pár SSH kľúčov, vygenerujte si ich na vašom lokálnom počítači pomocou nasledujúceho príkazu:

ssh-keygen -t rsa -b 4096 -C "vas_email@example.com"

Stlačte Enter pre potvrdenie predvoleného umiestnenia súboru a zadajte prístupovú frázu, ak si želáte.

b. Pridanie súkromného a verejného SSH kľúča do GitLabu

  • Súkromný kľúč: Pridajte súkromný kľúč do CI/CD premenných v GitLabe:
    • Prejdite do Settings > CI / CD > Variables vo vašom GitLab projekte.
    • Vytvorte novú premennú:
      • Key: SSH_PRIVATE_KEY
      • Value: Vložte obsah vášho súkromného kľúča (napr. ~/.ssh/id_rsa).
      • Type: Variable
  • Verejný kľúč: Pridajte verejný kľúč do:
    • Settings > Repository > Deploy Keys: Kliknite na Add New Key, skopírujte obsah súboru ~/.ssh/id_rsa.pub a vložte ho. Zaškrtnite možnosť Write access, ak chcete povoliť zapisovanie.

c. Pridanie verejného SSH kľúča na server a inicializácia repozitára

  • Pridanie SSH kľúča na vzdialený server: Skopírujte váš verejný SSH kľúč do priestoru domény .ssh/authorized_keys
  • Inicializácia Git repozitára na serveri: Prihláste sa na server cez SSH:
    ssh -p2222 vasadomena.sk@inet.sk
    Potom v cieľovom adresári na serveri vykonajte klonovanie repozitára cez SSH:
    git clone git@gitlab.com:vas-username/vas-repozitar.git .
    Týmto sa vzdialený server zapíše medzi povolené hostiteľské kľúče a nasadzovanie bude prebiehať hladko.

2. Konfigurácia .gitlab-ci.yml pre nasadenie

Vytvorte súbor .gitlab-ci.yml v koreňovom adresári vášho repozitára na definovanie CI/CD pipeline pre nasadenie.

stages:
  - deploy

deploy:
  stage: deploy
  script:
    - echo "Nasadzovanie PHP kódu cez SSH"
    - mkdir -p ~/.ssh
    - echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config
    - eval $(ssh-agent -s)
    - echo "$SSH_PRIVATE_KEY" | tr -d '\r' | ssh-add -
    - ssh vasadomena.sk@inet.sk "cd /cesta/k/nasadeniu && git pull"

3. Testovanie CI/CD pipeline

Po pridaní súboru .gitlab-ci.yml do vášho repozitára GitLab automaticky deteguje súbor a spustí CI/CD pipeline pri každom pushnutí zmien. Skontrolujte logy pipeline, aby ste sa uistili, že nasadzovanie cez SSH prebehlo správne.

4. Bezpečnosť

  • Manipulácia so súkromným kľúčom: Uistite sa, že súkromný kľúč je bezpečne uložený v CI/CD premenných GitLabu a nikdy nie je vystavený v logoch alebo v repozitári.
  • StrictHostKeyChecking: Vypnutie overovania hostiteľského kľúča je často bezpečné v kontrolovanom prostredí (CI/CD), ale v produkcii zabezpečte správne overovanie hostiteľských kľúčov.

Tento postup vám umožní automatizovať nasadzovanie PHP aplikácií z GitLabu na váš server pomocou CI/CD pipeline.

TIP: GIT pre začiatočníkov

Kategórie:  FTP a SSH,  Webstránky

Tagy:  Bezpečnosť,  GIT,  Správa servera,  SSH,  Webshell

Sme tu
pre vás

Ak ste nenašli informácie, ktoré ste hľadali, alebo potrebujete poradiť, neváhajte nás kontaktovať, radi vám pomôžeme. Odporúčame vám tiež navštíviť náš Blog alebo sekciu Pomoc, kde nájdete množstvo užitočných článkov a odpovedí na často kladené otázky.

Kontaktujte nás