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.

Konfigurace Jenkinse

Následující kroky ukazují, jak nainstalovat požadovanou jdk Java a Maven na kontroler Jenkins:

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

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

  1. Ujistěte se, že je nainstalovaný modul plug-in Credentials.

  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 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

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

  2. Výběrem tlačítka Fork (Vytvořit fork) vy fork úložiště na vlastní účet GitHub vytvořit fork.

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

  4. Vyberte ikonu tužky a 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 vaší 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

Kanál Jenkinse vytvoříte následujícím způsobem:

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

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

  3. Zadejte název úlohy.

  4. Vyberte Pipeline (Kanál).

  5. Vyberte OK.

  6. Vyberte Pipeline (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 GitHub URL forku vašeho forku:https:\<forked_repo\>.git

  10. Vyberte Uložit.

Test kanálu

  1. Přejděte ke kanálu, který jste vytvořili.

  2. Vyberte Build Now (Sestavit).

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

  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 podobný text:

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

    Příklad spuštění ukázkového přidání

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.

  1. 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:latest
    
  2. Nainstalujte Docker na Jenkinse.

  3. Ujistěte se, že je nainstalovaný modul plug-in Docker Pipeline.

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

    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 (zástupné symboly nahraďte vašimi hodnotami).

      def webAppResourceGroup = '<resource_group>'
      def webAppName = '<app_name>'
      def acrName = '<registry>'
      
    3. Aktualizujte <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 stejně jako při nasazování do webové aplikace Azure v 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 (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 date
    
  9. Př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 a xy , se sečtou a zobrazí.

Další kroky