Kurz: Nasazení do Azure App Service s využitím Jenkinse a Azure CLI
Důležité
Řada služeb Azure má moduly plug-in Jenkinse. Některé z těchto modulů plug-in nebudou k 29. únoru 2024 podporovat. Azure CLI je aktuálně doporučený způsob integrace Jenkinse se službami Azure. Další informace najdete v článku Moduly plug-in Jenkinse pro Azure.
K nasazení webové aplikace v Javě do Azure můžete použít Azure CLI v kanálu Jenkinse. V tomto kurzu budete provádět následující úlohy:
- Vytvořit virtuální počítač Jenkins
- Konfigurace Jenkinse
- Vytvoření webové aplikace v Azure
- Příprava úložiště GitHub
- Vytvoření kanálu Jenkinse
- Spuštění kanálu a ověření webové aplikace
Požadavky
- Předplatné Azure: Pokud ještě nemáte předplatné Azure, vytvořte si bezplatný účet před tím, než začnete.
- JenkinsInstalace Jenkinse na virtuální počítač s Linuxem
- Azure CLI:Nainstalujte Azure CLI (verze 2.0.67 nebo novější) na server Jenkins.
Konfigurace Jenkinse
Následující kroky ukazují, jak nainstalovat požadovanou jdk Java a Maven na kontroler Jenkins:
Přihlaste se ke kontroleru Jenkinse pomocí SSH.
Stáhněte a nainstalujte sestavení Azul Zulu sady OpenJDK pro Azure z úložiště apt-get:
sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv-keys 0xB1998361219BD9C9 sudo apt-add-repository "deb http://repos.azul.com/azure-only/zulu/apt stable main" sudo apt-get -q update sudo apt-get -y install zulu-8-azure-jdkSpuštěním následujícího příkazu nainstalujte Maven:
sudo apt-get install -y maven
Přidání objektu služby Azure do přihlašovacích údajů Jenkinse
Následující kroky ukazují, jak zadat přihlašovací údaje Azure:
Ujistěte se, že je nainstalovaný modul plug-in Credentials.
Na řídicím panelu Jenkinse vyberte Credentials - System - >.
Vyberte Globální přihlašovací údaje (neomezené).
Vyberte Přidat přihlašovací údaje a přidejte Microsoft Azure služby. Ujistěte se, že druh přihlašovacích údajů je Uživatelské jméno s heslem, a zadejte následující položky:
- Uživatelské jméno:Objekt služby
- Heslo:Objekt služby
- ID:Identifikátor přihlašovacích údajů (například )
Vytvoření služby Azure App Service pro nasazení webové aplikace v Javě
Pomocí příkazu az appservice plan create vytvořte plán Azure App Service s cenovou úrovní FREE:
az appservice plan create \
--name <app_service_plan> \
--resource-group <resource_group> \
--sku FREE
Klíčové body:
- Plán služby App Service definuje fyzické prostředky používané k hostování vašich aplikací.
- Všechny aplikace přiřazené k plánu služby App Service tyto prostředky sdílí.
- Plány služby App Service umožňují šetřit náklady při hostování více aplikací.
Vytvoření webové aplikace Azure
Pomocí příkazu az webapp create vytvořte definici webové aplikace v App Service plánu.
az webapp create \
--name <app_name> \
--resource-group <resource_group> \
--plan <app_service_plan>
Klíčové body:
- Definice webové aplikace poskytuje adresu URL pro přístup k aplikaci a konfiguruje několik možností pro nasazení kódu do Azure.
- Zástupný text
<app_name>nahraďte jedinečným názvem aplikace. - Název aplikace je součástí výchozího názvu domény webové aplikace. Proto musí být název jedinečný ve všech aplikacích v Azure.
- Na webovou aplikaci můžete namapovat vlastní název domény, než ji zpřístupníte uživatelům.
Konfigurace Javy
Pomocí příkazu az appservice web config update nastavte konfiguraci modulu runtime Java pro aplikaci:
az webapp config set \
--name <app_name> \
--resource-group <resource_group> \
--java-version 1.8 \
--java-container Tomcat \
--java-container-version 8.0
Příprava úložiště GitHub
Otevřete úložiště s jednoduchou webovou aplikace v Javě pro Azure.
Výběrem tlačítka Fork (Vytvořit fork) vy fork úložiště na vlastní účet GitHub vytvořit fork.
Kliknutím na název souboru otevřete soubor Jenkinsfile.
Vyberte ikonu tužky a upravte soubor.
Aktualizujte ID předplatného a ID tenanta.
withEnv(['AZURE_SUBSCRIPTION_ID=<subscription_id>', 'AZURE_TENANT_ID=<tenant_id>'])Aktualizujte skupinu prostředků a název vaší webové aplikace na řádku 22 a 23.
def resourceGroup = '<resource_group>' def webAppName = '<app_name>'Aktualizace ID přihlašovacích údajů v instanci Jenkinse
withCredentials([usernamePassword(credentialsId: '<service_princial>', passwordVariable: 'AZURE_CLIENT_SECRET', usernameVariable: 'AZURE_CLIENT_ID')]) {
Vytvoření kanálu Jenkinse
Kanál Jenkinse vytvoříte následujícím způsobem:
Otevřete Jenkinse ve webovém prohlížeči.
Vyberte New Item (Nová položka).
Zadejte název úlohy.
Vyberte Pipeline (Kanál).
Vyberte OK.
Vyberte Pipeline (Kanál).
V části Definition (Definice) vyberte Pipeline script from SCM (Skript kanálu z SCM).
V části SCM vyberte Git.
Zadejte GitHub URL forku vašeho forku:
https:\<forked_repo\>.gitVyberte Uložit.
Test kanálu
Přejděte ke kanálu, který jste vytvořili.
Vyberte Build Now (Sestavit).
Po dokončení sestavení vyberte Výstup konzoly a zobrazte podrobnosti o sestavení.
Ověření webové aplikace
Pokud chcete ověřit úspěšné nasazení souboru WAR do vaší webové aplikace, proveďte následující:
Přejděte na následující adresu URL:
http://<app_name>.azurewebsites.net/api/calculator/pingMěl by se zobrazit podobný text:
Welcome to Java Web App!!! This is updated! Today's datePřejděte na následující adresu URL (nahraďte x a y dvěma hodnotami, které se mají <> sečíst): http:// app_name <><> .azurewebsites.net/api/calculator/add?x= < x >& y= < y > .

Nasazení do Azure App Service v Linuxu
App Service můžete také hostovat webové aplikace nativně v Linuxu pro podporované zásobníky aplikací. Může také spouštět vlastní kontejnery Linuxu (označované také jako Web App for Containers.
Skript můžete upravit tak, aby se nasadil do Azure App Service v Linuxu. App Service v Linuxu podporuje Docker. Jako takové poskytnete soubor Dockerfile, který zabalíčky webové aplikace s modul runtime služby do image Dockeru. Modul plug-in sestaví image, nasadí ji do registru Dockeru a nasadí image do vaší webové aplikace.
Informace o vytvoření vlastního Azure App Service pomocí vlastního kontejneru najdete v tématu Migrace vlastního Azure App Service v Linuxu a Azure Container Registry.
az group create --name myResourceGroup2 --location westus2 az acr create --name myACRName --resource-group myResourceGroup2 --sku Basic --admin-enabled true az appservice plan create --name myAppServicePlan --resource-group myResourceGroup2 --is-linux az webapp create --resource-group myResourceGroup2 --plan myAppServicePlan --name myApp --deployment-container-image-name myACRName.azurecr.io/calculator:latestUjistěte se, že je nainstalovaný modul plug-in Docker Pipeline.
Ve stejném úložiště Simple Java Web App for Azure, které jste fork měli, upravte soubor Jenkinsfile2 následujícím způsobem:
Aktualizujte ID předplatného a ID tenanta.
withEnv(['AZURE_SUBSCRIPTION_ID=<mySubscriptionId>', 'AZURE_TENANT_ID=<myTenantId>']) {Aktualizujte názvy vaší skupiny prostředků, webové aplikace a ACR (zástupné symboly nahraďte vašimi hodnotami).
def webAppResourceGroup = '<resource_group>' def webAppName = '<app_name>' def acrName = '<registry>'Aktualizujte
<azsrvprincipal\>na ID přihlašovacích údajů.withCredentials([usernamePassword(credentialsId: '<service_principal>', passwordVariable: 'AZURE_CLIENT_SECRET', usernameVariable: 'AZURE_CLIENT_ID')]) {
Vytvořte nový kanál Jenkinse stejně jako při nasazování do webové aplikace Azure v Windows pomocí
Jenkinsfile2.Spusťte svou novou úlohu.
Pokud to chcete ověřit, spusťte v Azure CLI následující příkaz:
az acr repository list -n <myRegistry> -o jsonMěly by se zobrazit výsledky podobné následujícímu:
[ "calculator" ]Přejděte na
http://<app_name>.azurewebsites.net/api/calculator/ping(nahraďte zástupný symbol). Měly by se zobrazit podobné výsledky jako následující:Welcome to Java Web App!!! This is updated! Today's datePřejděte na
http://<app_name>.azurewebsites.net/api/calculator/add?x=<x>&y=<y>(nahraďte zástupné symboly). Hodnoty, které zadáte pro axy, se sečtou a zobrazí.