Kurz: Nasazení do služby Aplikace Azure pomocí Jenkinse a Azure CLI
Důležité
Mnoho služeb Azure má moduly plug-in Jenkinse. Některé z těchto modulů plug-in budou od 29. února 2024 mimo podporu. Azure CLI je aktuálně doporučený způsob integrace Jenkinse se službami Azure. Další informace najdete v článku Moduly plug-in Jenkins pro Azure.
K nasazení webové aplikace v Javě do Azure můžete použít Azure CLI v kanálu Jenkinse. V tomto kurzu provedete 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.
- Instalace Jenkinse - na virtuální počítač s Linuxem
- Azure CLI: Nainstalujte Azure CLI (verze 2.0.67 nebo vyšší) na server Jenkinse.
Konfigurace Jenkinse
Následující kroky ukazují, jak nainstalovat požadované sady Java JDK a Maven do kontroleru Jenkinse:
Přihlaste se k kontroleru Jenkinse pomocí SSH.
Stáhněte a nainstalujte build Azul Zulu 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-jdk
Spuštěním následujícího příkazu nainstalujte Maven:
sudo apt-get install -y maven
Přidání instančního objektu 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 Přihlašovací údaje.
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 instanční objekt Microsoft Azure. Ujistěte se, že je druh přihlašovacích údajů uživatelské jméno s heslem , a zadejte následující položky:
- Uživatelské jméno: Instanční objekt
appId
- Heslo: Instanční objekt
password
- ID: Identifikátor přihlašovacích údajů (například
AzureServicePrincipal
)
- Uživatelské jméno: Instanční objekt
Vytvoření služby Azure App Service pro nasazení webové aplikace v Javě
Pomocí příkazu az appservice plan create vytvořte plán služby Aplikace Azure 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í.
- Tyto prostředky sdílí všechny aplikace přiřazené k plánu služby AppService.
- Plány služby AppService umožňují uš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 myAppServicePlan
plánu služby App Service.
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.
<app_name>
Zástupný text nahraďte jedinečným názvem aplikace.- Název aplikace je součástí výchozího názvu domény pro webovou aplikaci. Proto musí být název jedinečný pro všechny aplikace 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.
Vyberte tlačítko Fork a rozvětvte úložiště do vlastního účtu GitHubu.
Kliknutím na název souboru otevřete soubor Jenkinsfile.
Výběrem ikony tužky 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 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
Následujícím postupem vytvořte kanál Jenkinse:
Otevřete Jenkinse ve webovém prohlížeči.
Vyberte New Item (Nová položka).
Zadejte název úlohy.
Vyberte Kanál.
Vyberte OK.
Vyberte Kanál.
V části Definition (Definice) vyberte Pipeline script from SCM (Skript kanálu z SCM).
V části SCM vyberte Git.
Zadejte adresu URL GitHubu pro vaše forkované úložiště:
https:\<forked_repo\>.git
Zvolte Uložit.
Test kanálu
Přejděte na kanál, který jste vytvořili.
Výběr možnosti Sestavit
Po dokončení sestavení vyberte Výstup konzoly a zobrazte podrobnosti o sestavení.
Ověření webové aplikace
Následujícím postupem ověřte, že je soubor WAR úspěšně nasazený do vaší webové aplikace:
Přejděte na následující adresu URL:
http://<app_name>.azurewebsites.net/api/calculator/ping
Měl by se zobrazit text podobný následujícímu:
Welcome to Java Web App!!! This is updated! Today's date
Př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 služby Aplikace Azure Service v Linuxu
App Service může také hostovat webové aplikace nativně v Linuxu pro podporované zásobníky aplikací. Může také spouštět vlastní linuxové kontejnery (označované také jako Web App for Containers.)
Skript můžete upravit tak, aby se nasadil do služby Aplikace Azure v Linuxu. App Service v Linuxu podporuje Docker. Jako takové zadáte soubor Dockerfile, který zabalí webovou aplikaci s modulem runtime služby do image Dockeru. Modul plug-in sestaví image, odešle ji do registru Dockeru a nasadí image do webové aplikace.
Informace o migraci vlastního softwaru do služby Aplikace Azure Service pomocí vlastního kontejneru pro vytvoření služby Aplikace Azure Service v Linuxu a službě 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:latest
Ujistěte se, že je nainstalovaný modul plug-in Kanálu Dockeru .
Ve stejném úložišti Simple Java Web App for Azure , které jste forkovali, 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 (nahraďte zástupné symboly hodnotami).
def webAppResourceGroup = '<resource_group>' def webAppName = '<app_name>' def acrName = '<registry>'
Aktualizace
<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, jak jste to udělali při nasazování do webové aplikace Azure ve 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 json
Měly by se zobrazit výsledky podobné následujícímu:
[ "calculator" ]
Přejděte na (
http://<app_name>.azurewebsites.net/api/calculator/ping
nahrazení zástupného symbolu). Měly by se zobrazit podobné výsledky jako následující:Welcome to Java Web App!!! This is updated! Today's date
Přejděte na (
http://<app_name>.azurewebsites.net/api/calculator/add?x=<x>&y=<y>
nahraďte zástupné symboly). Zadané hodnotyx
ay
sečtou a zobrazí se.