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
Předplatné Azure: Pokud nemáte předplatné Azure, vytvořte si před zahájením bezplatný účet Azure.
Server Jenkins: Pokud nemáte nainstalovaný server Jenkinse, vytvořte v Azure server Jenkinse.
Poznámka:
Další informace najdete v článku o připojení ke službě Azure DevOps Services.
Potřebujete linuxový virtuální počítač jako cíl nasazení. Další informace najdete v článku o vytvoření a správě linuxových virtuálních počítačů pomocí rozhraní příkazového řádku Azure.
Otevřete příchozí port 80 pro virtuální počítač. Další informace najdete v článku o vytvoření skupin zabezpečení sítě pomocí Azure Portalu.
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ě:
- Nainstaluje Node, Nginx a PM2
- Nakonfiguruje Nginx a PM2
- Spustí aplikaci Node
Konfigurace modulů plug-in Jenkins
Nejprve musíte nakonfigurovat dva moduly plug-in Jenkins: NodeJS a VS Team Services Continuous Deployment.
- Otevřete svůj účet Jenkins a vyberte Manage Jenkins (Spravovat Jenkins).
- Na stránce Manage Jenkins (Spravovat Jenkins) vyberte Manage Plugins (Spravovat moduly plug-in).
- Filtrováním seznamu vyhledejte modul plug-in NodeJS a vyberte možnost Install without restart (Nainstalovat bez restartování).
- Filtrováním seznamu vyhledejte modul plug-in VS Team Services Continuous Deployment a vyberte možnost Install without restart (Nainstalovat bez restartování).
- Přejděte zpět na řídicí panel Jenkins a vyberte Manage Jenkins (Spravovat Jenkins).
- Vyberte Global Tool Configuration (Globální konfigurace nástroje). Najděte NodeJS a vyberte NodeJS installations (Instalace NodeJS).
- Vyberte možnost Install automatically (Nainstalovat automaticky) a pak zadejte hodnotu Name (Název).
- Zvolte Uložit.
Konfigurace projektu Jenkins Freestyle pro Node.js
- Vyberte New Item (Nová položka). Zadejte název položky.
- Vyberte Freestyle project (Projekt Freestyle). Vyberte OK.
- 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.
- 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. - 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).
- 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).
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.
Na kartě Post-build Actions (Akce po sestavení) vyberte Add post-build action (Přidat akci po sestavení). Vyberte Archive the artifacts (Archivovat artefakty).
Do pole Files to archive (Soubory k archivaci) zadejte
**/*
, čímž zahrnete všechny soubory.Pokud chcete vytvořit další akci, vyberte Add post-build action (Přidat akci po sestavení).
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.
Zadejte Název projektu.
Zvolte název pro kanál verze. (Tento kanál verze vytvoříte ve službě Azure DevOps Services později.)
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.
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.
- Ve službě Azure DevOps Services otevřete stránku Služby, otevřete seznam Nový koncový bod služby a vyberte Jenkins.
- Zadejte název připojení.
- 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.
- Zadejte uživatelské jméno a heslo svého účtu Jenkins.
- Výběrem příkazu Ověřit připojení zkontrolujte, že jsou tyto údaje správné.
- 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.
- Otevřete kartu Vydané verze centra sestavení a vydání, otevřete skupiny nasazení a vyberte + Nový.
- Zadejte název skupiny nasazení a volitelný popis. Pak vyberte Vytvořit.
- Zvolte operační systém virtuálního počítače cíle nasazení. Vyberte například Ubuntu 16.04+.
- Vyberte Použít ve skriptu token PAT k ověřování.
- Vyberte odkaz Systémové předpoklady. Nainstalujte tyto předpoklady do operačního systému.
- Výběrem příkazu Zkopírovat skript do schránky skript zkopírujte.
- 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.
- Po instalaci budete vyzváni k zadání značek skupiny nasazení. Přijměte výchozí hodnoty.
- 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:
- Otevřete kartu Vydané verze v centru Build &Release a vyberte Vytvořit kanál verze.
- Zvolte, že chcete začít prázdným procesem a vyberte prázdnou šablonu.
- 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.
- Vyberte tři tečky vedle Prostředí 1. Vyberte Přidat fázi skupiny nasazení.
- Zvolte skupinu nasazení.
- Výběrem symbolu + přidejte do Fáze skupiny nasazení úlohu.
- 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.
- Do pole Cesta ke skriptu zadejte $(System.DefaultWorkingDirectory)/Fabrikam-Node/deployscript.sh.
- Vyberte Upřesnit a povolte Zadat pracovní adresář.
- Do pole Pracovní adresář zadejte $(System.DefaultWorkingDirectory)/Fabrikam-Node.
- 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.
- Výběrem příkazů Uložit a OK kanál verze uložte.
Ruční nasazení nebo nasazení aktivované přes CI
- Vyberte + Vydaná verze a vyberte Vytvořit vydanou verzi.
- Ve zvýrazněném rozevíracím seznamu vyberte dokončené sestavení a pak vyberte Zařadit do fronty.
- Ve vyskakovací zprávě zvolte odkaz na vydanou verzi. Příklad: „Vydaná verze Verze-1 byla vytvořena.“
- Otevřete kartu Protokoly a prohlédněte si výstup konzole vydané verze.
- 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}.
- Přejděte do zdrojového úložiště Gitu a změňte text nadpisu h1 v souboru app/views/index.jade.
- Potvrďte tuto změnu.
- 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.