Sdílet prostřednictvím


Kurz: Nasazení do služby Azure App Service pomocí Jenkinse a Azure CLI

Důležité

Zatímco mnoho služeb Azure má plug-iny pro Jenkins, většina z nich ukončí podporu k 29. únoru 2024. 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ření virtuálního počítače Jenkinse
  • Konfigurace Jenkinse
  • Vytvořte webovou aplikaci v Azure
  • Příprava úložiště GitHub
  • Vytvořit Jenkins pipeline
  • Spusťte kanál a ověřte webovou aplikaci

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 nainstalován plugin 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 pro přidání služebního účtu 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: Principál služby 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 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 AppService definuje fyzické prostředky používané k hostování 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.
  • Položku vlastního názvu domény můžete namapovat na webovou aplikaci předtím, 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 jednoduchou webovou aplikaci Java pro úložiště 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_principal>', passwordVariable: 'AZURE_CLIENT_SECRET', usernameVariable: 'AZURE_CLIENT_ID')]) {
    

Vytvořit Jenkins pipeline

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. Jako definici vyberte skript pipeline ze SCM.

  8. V případě SCM vyberte Git.

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

  10. Zvolte Uložit.

Otestujte svůj pipeline

  1. Přejděte na pipeline, kterou jste vytvořili.

  2. Zvolte Spustit sestavení

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

    Příklad spuštění ukázky přidání

Nasazení do Azure App 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 Azure App Service 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 Azure App Service pomocí vlastního kontejneru pro vytvoření služby 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 svůj Jenkins.

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

  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. Aktualizujte <azsrvprincipal\> na ID vašich 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 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> a nahraďte zástupné symboly. Zadané hodnoty x a y sečtou a zobrazí se.

Další kroky