Sdílet prostřednictvím


Kurz: Nasazení na virtuální počítač s Linuxem 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 pro:

  • 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í). Adding the NodeJS plug-in to Jenkins
  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. Zvolte 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.
    Add a repo to your build
  4. Na kartě Build Triggers (Aktivační události sestavení) vyberte Poll SCM (Cyklicky dotazovat Správce řízení služeb) a zadejte plán H/03 * * * *, který se bude úložiště Git dotazovat na změny každé tři minuty.
  5. Na kartě Prostředí sestavení vyberte Zadat uzel a cestu ke složce NPM a vyberte hodnotu 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 npm install 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. Zvolte přihlašovací údaje pro připojení k prostředí Azure DevOps Services nebo Azure DevOps Serveru:

    • Pokud používáte Azure DevOps Services, nechejte Uživatelské jméno prázdné.
    • Pokud používáte místní verzi Azure DevOps Serveru, zadejte uživatelské jméno a heslo.
      Configuring Jenkins post-build actions
  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. Add a Jenkins endpoint
  2. Zadejte název 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 Vydané verze centra sestavení a vydání, otevřete skupiny nasazení a vyberte + Nový.
  2. Zadejte název skupiny nasazení a volitelný popis. Pak 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í kanálu verze Azure Pipelines

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 Vydané verze v centru Build &Release a vyberte 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 Fáze skupiny nasazení ú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. Do pole Cesta ke skriptu zadejte $(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í. Blahopřejeme!

Řešení potíží s modulem plug-in Jenkins

Pokud narazíte na nějaké chyby s moduly plug-in Jenkins, založte problém v Jenkins JIRA 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 pro kroky sestavení i verze, najdete v tomto tématu.

Pokud chcete zjistit, jak vytvořit kanál CI/CD založený na YAML pro nasazení do virtuálních počítačů, přejděte k dalšímu kurzu.