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.

Konfigurace Jenkinse

Následující kroky ukazují, jak nainstalovat požadované sady Java JDK a Maven do kontroleru Jenkinse:

  1. Přihlaste se k kontroleru Jenkinse pomocí SSH.

  2. 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
    
  3. 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:

  1. Ujistěte se, že je nainstalovaný modul plug-in Přihlašovací údaje.

  2. Na řídicím panelu Jenkinse vyberte Credentials -> System ->.

  3. Vyberte globální přihlašovací údaje (neomezené).

  4. 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)

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

  1. Otevřete úložiště s jednoduchou webovou aplikace v Javě pro Azure.

  2. Vyberte tlačítko Fork a rozvětvte úložiště do vlastního účtu GitHubu.

  3. Kliknutím na název souboru otevřete soubor Jenkinsfile.

  4. Výběrem ikony tužky upravte soubor.

  5. Aktualizujte ID předplatného a ID tenanta.

      withEnv(['AZURE_SUBSCRIPTION_ID=<subscription_id>',
            'AZURE_TENANT_ID=<tenant_id>']) 
    
  6. Aktualizujte skupinu prostředků a název webové aplikace na řádku 22 a 23.

    def resourceGroup = '<resource_group>'
    def webAppName = '<app_name>'
    
  7. 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:

  1. Otevřete Jenkinse ve webovém prohlížeči.

  2. Vyberte New Item (Nová položka).

  3. Zadejte název úlohy.

  4. Vyberte Kanál.

  5. Vyberte OK.

  6. Vyberte Kanál.

  7. V části Definition (Definice) vyberte Pipeline script from SCM (Skript kanálu z SCM).

  8. V části SCM vyberte Git.

  9. Zadejte adresu URL GitHubu pro vaše forkované úložiště: https:\<forked_repo\>.git

  10. Zvolte Uložit.

Test kanálu

  1. Přejděte na kanál, který jste vytvořili.

  2. Výběr možnosti Sestavit

  3. 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:

  1. Přejděte na následující adresu URL: http://&lt;app_name>.azurewebsites.net/api/calculator/ping

  2. Měl by se zobrazit text podobný následujícímu:

    Welcome to Java Web App!!! This is updated!
    Today's date
    
  3. 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>.><><

    Example of running the demo add

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.

  1. 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
    
  2. Nainstalujte Docker na svůj Jenkins.

  3. Ujistěte se, že je nainstalovaný modul plug-in Kanálu Dockeru .

  4. Ve stejném úložišti Simple Java Web App for Azure , které jste forkovali, upravte soubor Jenkinsfile2 následujícím způsobem:

    1. Aktualizujte ID předplatného a ID tenanta.

       withEnv(['AZURE_SUBSCRIPTION_ID=<mySubscriptionId>',
              'AZURE_TENANT_ID=<myTenantId>']) {
      
    2. 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>'
      
    3. Aktualizace <azsrvprincipal\> na ID přihlašovacích údajů

      withCredentials([usernamePassword(credentialsId: '<service_principal>', passwordVariable: 'AZURE_CLIENT_SECRET', usernameVariable: 'AZURE_CLIENT_ID')]) {
      
  5. Vytvořte nový kanál Jenkinse, jak jste to udělali při nasazování do webové aplikace Azure ve Windows pomocí Jenkinsfile2.

  6. Spusťte svou novou úlohu.

  7. 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"
    ]
    
  8. 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
    
  9. Přejděte na ( http://<app_name>.azurewebsites.net/api/calculator/add?x=<x>&y=<y> nahraďte zástupné symboly). Zadané hodnoty x a y sečtou a zobrazí se.

Další kroky