Skip to content

Nastavení vykládání projektu hostovaného v GitLabu

Adam Schubert edited this page May 28, 2015 · 3 revisions

Toto je jednoduchý návod pro nastavení "vykládky" projektu hostovaného v GitLabu, návod předpokládá že již máte spuštěný a nakonfigurovaný git-deploy jako službu na vašem GitLab serveru.

Konfigurační soubor v kořenu projektu

V kořenu každého projektu který chceme vykládat je třeba vytvořit konfigurační soubor deploy.py s následujícím obsahem:

CONFIG = {
  # Nastaveni cilu vykládky
  'targets': [
    {
      # Nastavení cílové destinace ve formátu URL (protokol://uživatel<:heslo>@doména.tld<:port>/cesta/vykládky) podporované protokoly jsou ftp (zastaralé FTP), ftps (FTP s šifrováním), sftp (SSH (SCP) -doporučeno)
      'uri': 'sftp://user:password@example.com/path/to/deploy',

      # Web hook pro spusteni akce po dokonceni vykladky
      'web_hook': 'http://example.com/your_hook',


      # Povoluje vykladku pro tento cil
      'enabled': True
    }
  ],
  # Nastaveni opravneni relativni k rootu GIT repozitare
  'file_rights': {
    'dir/file/*': 777,
    'dir/file': 775
  }
}

Konfigurace projektu na GitLabu pro aktivaci vykládky

Aktivace Web Hooku v konfiguraci projektu

Je třeba aktivovat Web hook pro push event, v GitLabu toto nastavení nalezneme na: Detail projektu -> Settings -> Web hooks. V této konfiguraci přidáme nový hook pro push který bude odkazovat na běžící git-deploy, defaultně: http://localhost:7416/deploy.json

Přidání/Povolení deploy klíče

Nakonec je potřeba přidat nebo povolit(V případě kdy se git-deploy používá již pro jiný projekt) deploy klíč. Nastavení deploy klíčů pro projekt nalezneme na Detail projektu -> Settings -> Deploy keys.

Povolení deploy klíče

Jednoduše vybereme správný deploy klíč ze seznamu již používaných deploy klíčů a klikneme na "Enable"

Přidání deploy klíče

Pro přidání deploy klíče klikneme na New Deploy Key a vložíme veřejný klíč z páru který používá uživatel pod kterým git-deploy běží na serveru, defaultně je to uživatel git.

Testování

Pro otestování vykládky stačí kliknout na "Test hook" v Detail projektu -> Settings -> Web hooks. Pokud je vše v pořádku, mělo by dojít k vyložení projektu dle specifikované konfigurace v deploy.ini. V případě že GitLab vrátí chybu 500 tak došlo k chybě na straně git-deploy a je třeba zkontrolovat jeho konfiguraci a zda li běží na zadané url.

Tipy a Triky

  • Pokud konfigurujete vykládku pro již vyložený projekt jiným způsobem, je doporučeno vytvořit soubor REVISION v rootu již vyloženého projektu (na cílovém serveru) s obsahem sumu revize posledního commitu napr 344f060488ff303ee5ba322c00ed1e4041287330, tímto zabráníme úvodnímu, zbytečnému a zdlouhavému celkovému vyložení projektu. Vykládány budou pouze změny po tomto commitu.

  • Je doporučeno rozdělit projekt minimálně na dva branche (master, devel) kdy pro branch master je nakonfigurovaná vykládka na live server dostupný zákazníkům a na devel branchi je nakonfigurována vykládka na vývojový server(nebo není nakonfigurována vůbec, parameter deploy = false). Pote stačí pro vyložení na live provést merge branche devel do master atp.