Kurz: nasazení na virtuální počítač se systémem Linux pomocí Jenkinse a Azure DevOps Services

Kontinuální integrace (CI) a průběžné nasazování (CD) tvoří kanál, s jehož pomocí můžete sestavovat, vydávat a nasazovat kód. Azure DevOps Services poskytuje kompletní plnohodnotnou sadu nástrojů pro automatizaci CI/CD umožňující nasazení do Azure. Jenkins je populární serverový nástroj CI/CD od jiného výrobce, který rovněž nabízí automatizaci CI/CD. Kombinací produktů Azure DevOps Services a Jenkins můžete přizpůsobit způsob, jakým dodáváte cloudovou aplikaci nebo službu.

V tomto kurzu použijete Jenkins k sestavení webové aplikace Node.js. Pomocí Azure DevOps ji pak nasadíte

do skupiny nasazení, která obsahuje linuxové virtuální počítače. Získáte informace o těchto tématech:

  • Získání ukázkové aplikace
  • Konfigurace modulů plug-in Jenkins
  • Konfigurace projektu Jenkins Freestyle pro Node.js
  • Konfigurace Jenkins pro integraci Azure DevOps Services
  • Vytvoření koncového bodu služby Jenkins
  • Vytvoření skupiny nasazení pro virtuální počítače Azure
  • vytvořte kanál verze Azure Pipelines.
  • Ruční nasazení nebo nasazení aktivované přes CI

Požadavky

Získání ukázkové aplikace

K nasazení potřebujete nějakou aplikaci uloženou v úložišti Gitu. V tomto kurzu doporučujeme použít tuto ukázkovou aplikaci dostupnou na GitHubu. Tento kurz obsahuje ukázkový skript, který se používá k instalaci Node.js a aplikace. Pokud chcete pracovat se svým vlastním úložištěm, měli byste si nakonfigurovat podobnou ukázku.

Vytvořte fork této aplikace a poznačte si umístění (adresu URL), které použijete později v tomto kurzu. Další informace najdete v článku o vytvoření forku úložiště.

Poznámka

Tato aplikace byla vytvořena přes Yeoman. Používá Express, Bower a Grunt. Jako závislosti také obsahuje několik balíčků npm. Součástí této ukázky je také skript, který nainstaluje Nginx a nasadí tuto aplikaci. Spouští se na virtuálních počítačích. Tento skript konkrétně:

  1. Nainstaluje Node, Nginx a PM2
  2. Nakonfiguruje Nginx a PM2
  3. Spustí aplikaci Node

Konfigurace modulů plug-in Jenkins

Nejprve musíte nakonfigurovat dva moduly plug-in Jenkins: NodeJS a VS Team Services Continuous Deployment.

  1. Otevřete svůj účet Jenkins a vyberte Manage Jenkins (Spravovat Jenkins).
  2. Na stránce Manage Jenkins (Spravovat Jenkins) vyberte Manage Plugins (Spravovat moduly plug-in).
  3. Filtrováním seznamu vyhledejte modul plug-in NodeJS a vyberte možnost Install without restart (Nainstalovat bez restartování). Přidání modulu plug-in NodeJS do Jenkinse
  4. Filtrováním seznamu vyhledejte modul plug-in VS Team Services Continuous Deployment a vyberte možnost Install without restart (Nainstalovat bez restartování).
  5. Přejděte zpět na řídicí panel Jenkins a vyberte Manage Jenkins (Spravovat Jenkins).
  6. Vyberte Global Tool Configuration (Globální konfigurace nástroje). Najděte NodeJS a vyberte NodeJS installations (Instalace NodeJS).
  7. Vyberte možnost Install automatically (Nainstalovat automaticky) a pak zadejte hodnotu Name (Název).
  8. Vyberte Uložit.

Konfigurace projektu Jenkins Freestyle pro Node.js

  1. Vyberte New Item (Nová položka). Zadejte název položky.
  2. Vyberte Freestyle project (Projekt Freestyle). Vyberte OK.
  3. Na kartě Source Code Management (Správa zdrojového kódu) vyberte Git a zadejte podrobnosti o úložišti a větvi, které obsahují kód vaší aplikace.
    Přidání úložiště do sestavení
  4. Na kartě Build Triggers (Aktivační události sestavení) vyberte Poll SCM (Cyklicky dotazovat Správce řízení služeb) a zadejte plán , který se bude úložiště Git dotazovat na změny každé tři minuty.
  5. Na kartě Build Environment (Prostředí sestavení) vyberte Provide Node npm bin/ folder PATH (Zadat cestu ke složce Node a npm bin/) a vyberte hodnotu NodeJS Installation (Instalace NodeJS). Možnost npmrc file (Soubor npmrc) nechejte nastavenou na use system default (použít výchozí nastavení systému).
  6. Na kartě Build (Sestavení) vyberte Execute shell (Spustit prostředí) a zadáním příkazu zajistěte aktualizaci všech závislostí.

Konfigurace Jenkins pro integraci Azure DevOps Services

Poznámka

Zajistěte, aby token PAT, který použijete v následujících krocích, obsahoval ve službě Azure DevOps Services oprávnění k vydání verze (čtení, zápis, spuštění a správa).

  1. Pokud token PAT ještě nemáte, vytvořte ho ve své organizaci služby Azure DevOps Services. Jenkins vyžaduje tyto údaje pro přístup k organizaci služby Azure DevOps Services. Nezapomeňte informace tohoto tokenu uložit pro nadcházející kroky této části.

    Informace o vygenerován tokenu najdete v článku o vytvoření tokenu PAT pro Azure DevOps Services.

  2. Na kartě Post-build Actions (Akce po sestavení) vyberte Add post-build action (Přidat akci po sestavení). Vyberte Archive the artifacts (Archivovat artefakty).

  3. Do pole Files to archive (Soubory k archivaci) zadejte , čímž zahrnete všechny soubory.

  4. Pokud chcete vytvořit další akci, vyberte Add post-build action (Přidat akci po sestavení).

  5. Vyberte Trigger release in TFS/Team Services (Aktivovat vydanou verzi v TFS/Team Services). Zadejte identifikátor URI organizace služby Azure DevOps Services, například https://{název vaší organizace}.visualstudio.com.

  6. Zadejte název projektu.

  7. Zvolte název pro kanál verze. (Tento kanál verze vytvoříte ve službě Azure DevOps Services později.)

  8. vyberte přihlašovací údaje pro připojení k vašemu Azure DevOps Services nebo Azure DevOps Server prostředí:

    • Pokud používáte Azure DevOps Services, nechejte Uživatelské jméno prázdné.
    • Pokud používáte místní verzi Azure DevOps Server, zadejte uživatelské jméno a heslo.
      Konfigurace akcí po sestavení v Jenkins
  9. Uložte projekt Jenkins.

Vytvoření koncového bodu služby Jenkins

Koncový bod služby umožňuje službě Azure DevOps Services připojení k Jenkins.

  1. Ve službě Azure DevOps Services otevřete stránku Služby, otevřete seznam Nový koncový bod služby a vyberte Jenkins. Přidání koncového bodu Jenkinse
  2. Zadejte název tohoto připojení.
  3. Zadejte adresu URL serveru Jenkins a vyberte možnost Přijmout nedůvěryhodné certifikáty SSL. Příklad adresy URL: http://{vaše-adresa-URL-Jenkins}.westcentralus.cloudapp.azure.com.
  4. Zadejte uživatelské jméno a heslo svého účtu Jenkins.
  5. Výběrem příkazu Ověřit připojení zkontrolujte, že jsou tyto údaje správné.
  6. Výběrem tlačítka OK vytvořte koncový bod služby.

Vytvoření skupiny nasazení pro virtuální počítače Azure

Skupinu nasazení potřebujete k registraci agenta služby Azure DevOps Services, aby se kanál verze dal nasadit do virtuálního počítače. Skupiny nasazení usnadňují definování logických skupin cílových počítačů pro nasazení a instalaci požadovaných agentů na jednotlivé počítače.

Poznámka

V následujícím postupu nainstalujte všechno, co je potřeba, a nespouštějte skript s oprávněními sudo.

  1. Otevřete kartu Vydání centra Sestavení a vydání, otevřete Skupiny nasazenía vyberte + Nový.
  2. Zadejte název skupiny nasazení a volitelný popis. Potom vyberte Vytvořit.
  3. Zvolte operační systém virtuálního počítače cíle nasazení. Vyberte například Ubuntu 16.04+.
  4. Vyberte Použít ve skriptu token PAT k ověřování.
  5. Vyberte odkaz Systémové předpoklady. Nainstalujte tyto předpoklady do operačního systému.
  6. Výběrem příkazu Zkopírovat skript do schránky skript zkopírujte.
  7. Přihlaste se k virtuálnímu počítači cíle nasazení a spusťte tento skript. Nespouštějte skript s oprávněními sudo.
  8. Po instalaci budete vyzváni k zadání značek skupiny nasazení. Přijměte výchozí hodnoty.
  9. Ve službě Azure DevOps Services vyhledejte v seznamu Cíle v oblasti Skupiny nasazení nově registrovaný virtuální počítač.

Vytvoření Azure Pipelines verze

Kanál verze určuje proces, který Azure Pipelines používá k nasazení aplikace. V tomto příkladu spustíte skript prostředí.

Kanál verze vytvoříte v Azure Pipelines takto:

  1. Otevřete kartu Vydání centra Build Release (Vydání sestavení) a vyberte Create release pipeline (Vytvořit kanál verze).
  2. Zvolte, že chcete začít prázdným procesem a vyberte prázdnou šablonu.
  3. V části Artefakty vyberte + Přidat artefakt a jako Typ zdroje zvolte Jenkins. Vyberte připojení ke koncovému bodu služby Jenkins. Pak vyberte zdrojovou úlohu Jenkins a vyberte Přidat.
  4. Vyberte tři tečky vedle Prostředí 1. Vyberte Přidat fázi skupiny nasazení.
  5. Zvolte skupinu nasazení.
  6. Výběrem symbolu + přidejte do + úlohu.
  7. Vyberte úlohu Skript prostředí a pak vyberte Přidat. Úloha Skript prostředí zajišťuje konfiguraci skriptu, který má na jednotlivých serverech nainstalovat Node.js a spustit aplikaci.
  8. Jako Cestu ke skriptuzadejte $(System.DefaultWorkingDirectory)/Fabrikam-Node/deployscript.sh.
  9. Vyberte Upřesnit a povolte Zadat pracovní adresář.
  10. Do pole Pracovní adresář zadejte $(System.DefaultWorkingDirectory)/Fabrikam-Node.
  11. Název kanálu verze změňte na název, který jste pro sestavení v Jenkins zadali na kartě Post-build Actions (Akce po sestavení). Služba Jenkins tento název vyžaduje, aby mohla při aktualizaci zdrojových artefaktů aktivovat novou vydanou verzi.
  12. Výběrem příkazů Uložit a OK kanál verze uložte.

Ruční nasazení nebo nasazení aktivované přes CI

  1. Vyberte + Vydaná verze a vyberte Vytvořit vydanou verzi.
  2. Ve zvýrazněném rozevíracím seznamu vyberte dokončené sestavení a pak vyberte Zařadit do fronty.
  3. Ve vyskakovací zprávě zvolte odkaz na vydanou verzi. Příklad: „Vydaná verze Verze-1 byla vytvořena.“
  4. Otevřete kartu Protokoly a prohlédněte si výstup konzole vydané verze.
  5. V prohlížeči otevřete adresu URL jednoho ze serverů, který jste přidali do skupiny nasazení. Zadejte například http://{IP-adresa-vašeho-serveru}.
  6. Přejděte do zdrojového úložiště Gitu a změňte text nadpisu h1 v souboru app/views/index.jade.
  7. Potvrďte tuto změnu.
  8. Po několika minutách uvidíte novou verzi vytvořenou na stránce Vydání v Azure DevOps. Otevřete tuto vydanou verzi a zjistěte, jestli probíhá nasazení. Gratulujeme!

Řešení potíží s plug-inem Jenkinse

Pokud u modulů plug-in Jenkinse narazíte na nějaké chyby, založte problém v jira Jenkinse pro konkrétní komponentu.

Další kroky

V tomto kurzu jste automatizovali nasazení aplikace do Azure pomocí služby Jenkins pro build a služby Azure DevOps Services pro verzi. Naučili jste se:

  • Sestavení aplikace v Jenkins
  • Konfigurace Jenkins pro integraci Azure DevOps Services
  • Vytvoření skupiny nasazení pro virtuální počítače Azure
  • Vytvořte kanál Azure, který nakonfiguruje virtuální počítače a nasadí aplikaci.

Informace o tom, jak používat Azure Pipelines v krocích sestavení i vydání, najdete tady.

Další informace o tom, jak pro nasazení na virtuální počítače vytvářet kanál CI/CD založený na YAML, najdete v dalším kurzu.