<link href = "// fonts.googleapis.com/css?family=Roboto+Slab:700%7CRoboto:700%7CRoboto:normal" rel = "stylesheet">

Kontinuální integrace: Konkurzní CI na Ubuntu 16.04


Systém nepřetržité integrace

Prostor CI je jednoduchý a škálovatelný kontinuální integrační systém, jehož konečným cílem je poskytnout systém s co nejmenším počtem pohyblivých částí. Při přechodu ze systému CI na jiný existuje mnoho rizik, zejména kvůli velkému počtu proměnných, které by se mohly náhodně změnit ručně kliknutím v uživatelském rozhraní nového systému.

K omezení tohoto rizika používá Concourse CI deklarativní syntax. Díky tomu je možné modelovat jakýkoli plynovod, od jednoduchého (jednotka, integrace, nasazení, loď) až po komplexní (testy na více infrastrukturách atd.).

V tomto tutoriálu uvidíme, jak nainstalovat Concourse CI na server Ubuntu 16.04, pomocí PostgreSQL v backendu.

Začínáme - nainstalujte PostgreSQL

Nejdříve na server nainstalujte PostgreSQL. Kolektor CI jej bude používat k ukládání dat potrubí. Proveďte následující příkaz:

#apt-get install postgresql postgresql-contrib

Dále vytvořte uživatele PostgreSQL, který bude spravovat data v rámci databáze. Provedete to takto:

$ sudo -u postgres createuser concourseusr

Ve výchozím nastavení hledá Concourse (a pokusí se připojit) databázi pojmenovanou ATC.

Vytvořit novou databázi:

$ sudo -u postgres createdb --owner = concourse atc

Nainstalujte nepřetržitou integraci

Ke stažení kompilované spustitelné soubory pro Linux. V / Tmp proveďte následující příkaz:

# curl -LO https://github.com/concourse/concourse/releases/download/v3.3.2/concourse_linux_amd64

Další, vždy v / Tmp, stáhnout nejnovější dostupné létat klient příkazového řádku:

# curl -LO https://github.com/concourse/concourse/releases/download/v3.3.2/fly_linux_amd64

Přesuňte oba soubory do / usr / local / bin, přejmenováním, provedením příkazu:

# mv concourse * / usr / local / bin / concourse # mv fly * / usr / local / bin / fly

Podívejte se, zda vše proběhlo v pořádku, když se podíváte na obě verze:

$ concourse - konverze $ fly --version

Měli by být 3.3.2 v době, kdy píšeme.

Konfigurace sestavy CI

Vytvořte konfigurační adresář:

# mkdir / etc / concourse

Generování šifrovacích klíčů

Všechny související komponenty, které tvoří Concourse CI, musí vzájemně bezpečně komunikovat, zejména TSA a pracovník. Abychom se ujistili, že se to stane, musíme vytvořit tři sady klíčů:

  • Klíče pro pracovníka
  • klíče pro TSA
  • relace podepisování klíče podepsat tokeny

Tyto klávesy se použijí automaticky při spuštění komponenty, takže je důležité, abyste heslo nepoužívali k zamykání klíčů. Po provedení následujících příkazů vygenerujeme požadované klíče:

# ssh-keygen -t rsa -q -N '' -f / etc / concourse / worker_key # ssh-keygen -t rsa -q -N '' -f / etc / concourse / tsa_key # ssh-keygen -t rsa - q -N '' -f / etc / concourse / session_key

TSA rozhodne, kteří pracovníci jsou oprávněni se připojit k systému, a tak autorizovat veřejný klíč pracovníka. V našem případě stačí spustit příkaz:

# cp /etc/concourse/worker_key.pub / etc / concourse / authorized_worker_keys

Konfigurace prostředí

Spustitelný spustitelný soubor nečte žádný konfigurační soubor, ale to neznamená, že jej samozřejmě nelze konfigurovat. Ve skutečnosti bere své hodnoty z proměnných prostředí předaných na začátku procesu.

Vytvořit nový soubor pro web konfigurace procesu:

# $ EDITOR / etc / concourse / web_env

V tomto souboru vložte následující obsah:

CONCOURSE_SESSION_SIGNING_KEY =/ etc / concourse / session_key
CONCOURSE_TSA_HOST_KEY =/ etc / concourse / tsa_key
CONCOURSE_TSA_AUTHORIZED_KEYS =/ etc / concourse / authorized_worker_keys
CONCOURSE_POSTGRES_SOCKET =/ var / run / postgresql

# Shoda s prostředím CONCOURSE_BASIC_AUTH_USERNAME = jméno_uživatele CONCOURSE_BASIC_AUTH_PASSWORD = strong_pwd CONCOURSE_EXTERNAL_URL = http: // server_IP: 8080

Uložte, zavřete a vytvořte nový soubor pracovník:

# $ EDITOR / etc / concourse / worker_env

Zde vložte následující obsah:

CONCOURSE_WORK_DIR = / var / lib / concourse CONCOURSE_TSA_WORKER_PRIVATE_KEY = / etc / concourse / worker_key CONCOURSE_TSA_PUBLIC_KEY = / etc / concourse / tsa_key.pub CONCOURSE_TSA_HOST = 127.0.0.1

Upravte oprávnění souborů prostředí:

# chmod 600 / etc / concourse / w * _env

Vytvořit uživatele

Vytvořit nového uživatele ke spuštění web proces. Tento uživatel by měl odpovídat uživatelskému jménu PostgreSQL, které bylo vytvořeno dříve.

# adduser --system - group concourseusr

Poskytnout tomuto uživateli vlastnictví prostřednictvím konfiguračního adresáře CI:

chown -R hala: hala / etc / concourse

Vytvořte soubory jednotek Systemd

Vytvořit concourse-web.service soubor v rámci / etc / systemd / system adresář:

# $ EDITOR /etc/systemd/system/concourse-web.service

Vložte následující obsah:

[Jednotka] Popis = Webový proces v prostoru (ATC a TSA) After = postgresql.service [Služba] Uživatel = concourse Restart = on-failure EnvironmentFile = / etc / concourse / web_env ExecStart = / usr / local / bin / webový server [web] Instalovat] WantedBy = multi-user.target

Uložit a zavřít. Vytvořit soubor pro pracovník proces:

# $ EDITOR /etc/systemd/system/concourse-worker.service

V tomto souboru vložte:

[Jednotka] Popis = Pracovník CI v pracovním procesu Po = concourse-web.service [Služba] Uživatel = root Restart = on-failure EnvironmentFile = / etc / concourse / worker_env ExecStart = / usr / local / bin / concourse pracovník

[Instalovat] WantedBy = multi-user.target

Nakonfigurujte UFW

Hala web proces naslouchá připojení na portu 8080, takže otevřete přístup k tomuto portu provedením následujícího postupu ufw příkaz:

# ufw povolit 8080

Pro pracovník musíme povolit přesměrování, takže:

# ufw default povolit směrování

Spuštění služeb

V tomto okamžiku spusťte obě služby:

# systemctl start concourse-worker concourse-web

Povolit spuštění v době spuštění serveru:

# systemctl umožnit hlídač-pracoviště-web

závěr

Od této chvíle je server připraven provést všechny funkce kontinuální integrace, které poskytuje Concourse CI na systému Ubuntu 16.04. Užívat si!

Příspěvek Kontinuální integrace: Konkurzní CI na Ubuntu 16.04 se objevil nejprve na Unixmen.

Napsat komentář