Nasazování na virtuální počítače Azure s využitím skupin nasazení ve službě Azure Pipelines
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
V dřívějších verzích Azure Pipelines vyžadovaly aplikace, které je potřeba nasadit na více serverů, značné množství plánování a údržby. Vzdálené komunikace Windows PowerShellu se musely povolit ručně, musely být otevřené porty a agenti nasazení nainstalovaní na každém ze serverů. Kanály pak musely být spravovány ručně, pokud bylo potřeba zavést nasazení.
Všechny výše uvedené výzvy byly bez problémů vyvinuty se zavedením skupin nasazení.
Skupina nasazení nainstaluje agenta nasazení na každý z cílových serverů v nakonfigurované skupině a dává kanálu verze pokyn, aby aplikaci postupně nasadila na tyto servery. Pro zavádění nasazení je možné vytvořit několik kanálů, aby bylo možné doručovat nejnovější verzi aplikace fázovaným způsobem do více skupin uživatelů za účelem ověření nově zavedených funkcí.
Poznámka:
Skupiny nasazení jsou konceptem používaným v klasických kanálech. Pokud používáte kanály YAML, přečtěte si téma Prostředí.
V tomto kurzu získáte informace o těchto tématech:
- Zřizování infrastruktury virtuálních počítačů do Azure pomocí šablony
- Vytvoření skupiny nasazení Azure Pipelines
- Vytvoření a spuštění kanálu CI/CD pro nasazení řešení se skupinou nasazení
Požadavky
- Účet Microsoft Azure.
- Organizace Azure DevOps.
Pomocí azure DevOps Demo Generator zřiďte projekt kurzu ve vaší organizaci Azure DevOps.
Nastavení prostředí nasazení Azure
V Azure se zřídí následující prostředky pomocí šablony ARM:
- Šest webových serverů virtuálních počítačů s nakonfigurovanou službou IIS
- Virtuální počítač s SQL Serverem (databázový server)
- Azure Network Load Balancer
Kliknutím na odkaz Nasadit do Azure níže zahájíte zřizování prostředků. Zadejte všechny potřebné informace a vyberte Koupit. Můžete použít libovolnou kombinaci povolených uživatelských jmen a hesel pro správu, protože se v tomto kurzu znovu nepoužívají. Předpona env má předponu všech názvů prostředků, aby se zajistilo, že se tyto prostředky generují s globálně jedinečnými názvy. Zkuste použít něco osobního nebo náhodného, ale pokud se během ověřování nebo vytváření zobrazí chyba konfliktu pojmenování, zkuste tento parametr změnit a spustit znovu.
Poznámka:
Dokončení nasazení trvá přibližně 10 až 15 minut. Pokud se zobrazí nějaké chyby konfliktu pojmenování, zkuste změnit parametr, který zadáte pro název předpony Env.
Po dokončení nasazení můžete pomocí webu Azure Portal zkontrolovat všechny prostředky vygenerované v zadané skupině prostředků. Výběrem virtuálního počítače se serverem DB s sqlSrv v názvu zobrazíte jeho podrobnosti.
Poznamenejte si název DNS. Tato hodnota se vyžaduje v pozdějším kroku. Pomocí tlačítka kopírování ho můžete zkopírovat do schránky.
Vytvoření a konfigurace skupiny nasazení
Azure Pipelines usnadňuje uspořádání serverů potřebných k nasazení aplikací. Skupina nasazení je kolekce počítačů s agenty nasazení. Každý počítač komunikuje se službou Azure Pipelines a koordinuje nasazení aplikace.
Vzhledem k tomu, že kanál buildu nevyžaduje žádnou změnu konfigurace, aktivuje se sestavení automaticky po zřízení projektu. Když později zařadíte do fronty verzi, použije se tento build.
Přejděte do projektu Azure DevOps vytvořeného generátorem ukázek.
V části Kanály přejděte do skupin nasazení.
Vyberte Přidat skupinu nasazení.
Zadejte název skupiny nasazení verze a vyberte Vytvořit. Vygeneruje se registrační skript. Cílové servery můžete zaregistrovat pomocí skriptu, který jste zadali, pokud pracujete sami. V tomto kurzu se ale cílové servery automaticky zaregistrují jako součást kanálu verze. Definice verze používá fáze k nasazení aplikace na cílové servery. Fáze je logické seskupení úloh, které definují cíl modulu runtime, na kterém se budou úlohy spouštět. Každá fáze skupiny nasazení provádí úlohy na počítačích definovaných ve skupině nasazení.
V části Pipelines přejděte do části Vydané verze. Vyberte kanál verze s názvem Skupiny nasazení a vyberte Upravit.
Výběrem karty Úkoly zobrazíte úlohy nasazení v kanálu. Úlohy jsou uspořádány jako tři fáze označované jako fáze agenta, fáze skupiny nasazení a fáze nasazení služby IIS.
Vyberte fázi agenta. V této fázi jsou cílové servery přidružené ke skupině nasazení pomocí úlohy nasazení skupiny prostředků Azure. Ke spuštění musí být definován fond a specifikace agenta. Vyberte fond Azure Pipelines a nejnovější specifikaci windows.
Vyberte úlohu nasazení skupiny prostředků Azure. Nakonfigurujte připojení služby k předplatnému Azure použitému dříve k vytvoření infrastruktury. Po autorizaci připojení vyberte skupinu prostředků vytvořenou pro tento kurz.
Tato úloha se spustí na virtuálních počítačích hostovaných v Azure a bude se muset připojit zpět k tomuto kanálu, aby bylo možné dokončit požadavky na skupinu nasazení. K zabezpečení připojení budou potřebovat token PAT (Personal Access Token). V rozevíracím seznamu Uživatelská nastavení otevřete osobní přístupové tokeny na nové kartě. Většina prohlížečů podporuje otevření odkazu na nové kartě pomocí místní nabídky po kliknutí pravým tlačítkem myši nebo kombinace kláves Ctrl a kliknutí.
Na nové kartě vyberte Nový token.
Zadejte název a vyberte obor úplného přístupu . Výběrem možnosti Vytvořit vytvořte token. Po vytvoření token zkopírujte a zavřete kartu prohlížeče. Vrátíte se do editoru azure Pipeline.
V části Připojení ke službě Azure Pipelines vyberte Nový.
Zadejte adresu URL Připojení ion pro aktuální instanci Azure DevOps. Tato adresa URL je něco jako
https://dev.azure.com/[Your account]
. Vložte dříve vytvořený osobní přístupový token a zadejte název připojení služby. Vyberte Ověřit a uložit.Poznámka:
Pokud chcete zaregistrovat agenta, musíte být členem role Správa istrator ve fondu agentů. Identita správce fondu agentů je nutná pouze v době registrace. Identita správce se v agentovi neuchová a nepoužívá se v následné komunikaci mezi agentem a Azure Pipelines. Po registraci agenta není nutné obnovovat osobní přístupový token, protože se vyžaduje jenom v době registrace.
Vyberte aktuální týmový projekt a skupinu nasazení vytvořenou dříve.
Vyberte fázi fáze skupiny nasazení. Tato fáze provádí úlohy na počítačích definovaných ve skupině nasazení. Tato fáze je propojená se značkou SQL-Svr-DB . V rozevíracím seznamu zvolte skupinu nasazení.
Vyberte fázi fáze nasazení služby IIS. Tato fáze nasadí aplikaci na webové servery pomocí zadaných úloh. Tato fáze je propojená se značkou WebSrv . V rozevíracím seznamu zvolte skupinu nasazení.
Vyberte úlohu Odpojit Azure Network Load Balancer. Vzhledem k tomu, že jsou cílové počítače připojené k vyrovnávání zatížení sítě, tento úkol odpojí počítače od služby NLB před nasazením a po nasazení je znovu připojí ke službě NLB. Nakonfigurujte úlohu tak, aby používala připojení Azure, skupinu prostředků a nástroj pro vyrovnávání zatížení (měla by existovat jenom jedna).
Vyberte úlohu Spravovat webovou aplikaci IIS. Tato úloha běží na cílových počítačích nasazení zaregistrovaných ve skupině nasazení nakonfigurované pro úlohu nebo fázi. Vytvoří webovou aplikaci a fond aplikací místně s názvem PartsUnlimited spuštěným pod portem 80.
Vyberte úlohu Nasazení webové aplikace IIS. Tato úloha běží na cílových počítačích nasazení zaregistrovaných ve skupině nasazení nakonfigurované pro úlohu nebo fázi. Nasadí aplikaci na server služby IIS pomocí nasazení webu.
Vyberte Připojení úlohu Azure Network Load Balanceru. Nakonfigurujte úlohu tak, aby používala připojení Azure, skupinu prostředků a nástroj pro vyrovnávání zatížení (měla by existovat jenom jedna).
Vyberte kartu Proměnné a zadejte hodnoty proměnných, jak je uvedeno níže.
Název proměnné Hodnota proměnné DatabaseName PartsUnlimited-Dev DBPassword P2ssw0rd@123 DBUserName sqladmin Výchozí Připojení ionString Zdroj dat=[YOUR_DNS_NAME]; Initial Catalog=PartsUnlimited-Dev; ID uživatele=sqladmin; Password=P2ssw0rd@123; MultipleActiveResultSets=False; časový limit Připojení ion=30; ServerName localhost Důležité
Nezapomeňte nahradit název DNS sql serveru (který jste si poznamenali dříve z webu Azure Portal) v proměnné Default Připojení ionString.
Výchozí Připojení ionString by měl být podobný tomuto řetězci po nahrazení SQL DNS:
Data Source=cust1sqljo5zndv53idtw.westus2.cloudapp.azure.com;Initial Catalog=PartsUnlimited-Dev;User ID=sqladmin;Password=P2ssw0rd@123;MultipleActiveResultSets=False;Connection Timeout=30;
Konečný seznam proměnných by měl vypadat přibližně takto:
Poznámka:
Může se zobrazit chyba, že
DefaultConnectionString
proměnná musí být uložena jako tajný kód. Pokud k tomu dojde, vyberte proměnnou a klikněte na ikonu visacího zámku, která se zobrazí vedle její hodnoty, abyste ji ochránili.
Vytvoření fronty vydané verze a kontrola nasazení
Vyberte Uložit a potvrďte.
Vyberte Vytvořit verzi a potvrďte. Dokončením tohoto vydání postupujte podle pokynů. Nasazení je pak připraveno ke kontrole.
Na webu Azure Portal otevřete jeden z webových virtuálních počítačů ve vaší skupině prostředků. Můžete vybrat libovolnou z
websrv
názvů.Zkopírujte DNS virtuálního počítače. Azure Load Balancer distribuuje příchozí provoz mezi instancemi, které jsou v pořádku definované v sadě s vyrovnáváním zatížení. V důsledku toho je DNS všech instancí webového serveru stejné.
Otevřete novou kartu prohlížeče pro DNS virtuálního počítače. Ověřte, že je nasazená aplikace spuštěná.
Shrnutí
V tomto kurzu jste nasadili webovou aplikaci do sady virtuálních počítačů Azure pomocí Azure Pipelines a skupin nasazení. I když tento scénář zahrnoval několik počítačů, můžete proces snadno škálovat až na stovky nebo dokonce tisíce počítačů pomocí prakticky jakékoli konfigurace.
Vyčištění prostředků
Tento kurz vytvořil projekt Azure DevOps a některé prostředky v Azure. Pokud tyto prostředky nebudete dál používat, odstraňte je pomocí následujícího postupu:
Odstraňte projekt Azure DevOps vytvořený generátorem ukázek Azure DevOps.
Všechny prostředky Azure vytvořené během tohoto kurzu byly přiřazeny ke skupině prostředků zadané během vytváření. Odstraněním této skupiny odstraníte prostředky, které obsahují. Toto odstranění je možné provést prostřednictvím rozhraní příkazového řádku nebo portálu.