Samouczek: wdrażanie w usłudze aplikacja systemu Azure przy użyciu narzędzia Jenkins i interfejsu wiersza polecenia platformy Azure

Ważne

Wiele usług platformy Azure ma wtyczki Jenkins. Niektóre z tych wtyczek nie będą obsługiwane od 29 lutego 2024 r. Interfejs wiersza polecenia platformy Azure to obecnie zalecany sposób integracji serwera Jenkins z usługami platformy Azure. Aby uzyskać więcej informacji, zapoznaj się z artykułem Wtyczki serwera Jenkins dla platformy Azure.

Aby wdrożyć aplikację internetową Java na platformie Azure, możesz użyć interfejsu wiersza polecenia platformy Azure w potoku serwera Jenkins. W tym samouczku wykonasz następujące zadania:

  • Tworzenie maszyny wirtualnej usługi Jenkins
  • Konfigurowanie usługi Jenkins
  • Tworzenie aplikacji internetowej na platformie Azure
  • Przygotowywanie repozytorium GitHub
  • Tworzenie potoku Jenkins
  • Uruchamianie potoku i weryfikowanie aplikacji internetowej

Wymagania wstępne

  • Subskrypcja platformy Azure: jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
  • Usługa Jenkins zainstaluj narzędzie Jenkins - na maszynie wirtualnej z systemem Linux
  • Interfejs wiersza polecenia platformy Azure: zainstaluj interfejs wiersza polecenia platformy Azure (wersja 2.0.67 lub nowsza) na serwerze Jenkins.

Konfigurowanie usługi Jenkins

W poniższych krokach pokazano, jak zainstalować wymagany zestaw Java JDK i narzędzie Maven na kontrolerze serwera Jenkins:

  1. Zaloguj się do kontrolera Serwera Jenkins przy użyciu protokołu SSH.

  2. Pobierz i zainstaluj kompilację Zestawu OpenJDK dla platformy Azure Azul Zulu z repozytorium 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. Uruchom następujące polecenie, aby zainstalować narzędzie Maven:

    sudo apt-get install -y maven
    

Dodawanie jednostki usługi platformy Azure do poświadczeń serwera Jenkins

W poniższych krokach pokazano, jak określić poświadczenia platformy Azure:

  1. Upewnij się, że wtyczka Credentials jest zainstalowana.

  2. Na pulpicie nawigacyjnym narzędzia Jenkins wybierz pozycję Poświadczenia —> System ->.

  3. Wybierz pozycję Poświadczenia globalne (bez ograniczeń).

  4. Wybierz pozycję Dodaj poświadczenia, aby dodać jednostkę usługi platformy Microsoft Azure. Upewnij się, że rodzaj poświadczeń to Nazwa użytkownika z hasłem i wprowadź następujące elementy:

    • Nazwa użytkownika: jednostka usługi appId
    • Hasło: jednostka usługi password
    • Identyfikator: identyfikator poświadczeń (na przykład AzureServicePrincipal)

Tworzenie usługi Azure App Service w celu wdrożenia aplikacji internetowej Java

Użyj polecenia az appservice plan create, aby utworzyć plan usługi aplikacja systemu Azure z warstwą cenową BEZPŁATNA:

az appservice plan create \
    --name <app_service_plan> \ 
    --resource-group <resource_group> \
    --sku FREE

Kluczowe punkty:

  • Plan usługi App Service definiuje zasoby fizyczne używane do hostowania aplikacji.
  • Wszystkie aplikacje przypisane do planu usługi appservice współdzielą te zasoby.
  • Plany usługi AppService umożliwiają oszczędność kosztów podczas hostowania wielu aplikacji.

Tworzenie aplikacji internetowej platformy Azure

Użyj polecenia az webapp create , aby utworzyć definicję aplikacji internetowej w myAppServicePlan planie usługi App Service.

az webapp create \
    --name <app_name> \ 
    --resource-group <resource_group> \
    --plan <app_service_plan>

Kluczowe punkty:

  • Definicja aplikacji internetowej zawiera adres URL umożliwiający uzyskanie dostępu do aplikacji i konfiguruje kilka opcji wdrażania kodu na platformie Azure.
  • <app_name> Zastąp symbol zastępczy unikatową nazwą aplikacji.
  • Nazwa aplikacji jest częścią domyślnej nazwy domeny aplikacji internetowej. W związku z tym nazwa musi być unikatowa we wszystkich aplikacjach na platformie Azure.
  • Niestandardowy wpis nazwy domeny można zmapować na aplikację internetową przed udostępnieniem jej użytkownikom.

Konfigurowanie środowiska Java

Użyj polecenia az appservice web config update , aby skonfigurować konfigurację środowiska uruchomieniowego Java dla aplikacji:

az webapp config set \ 
    --name <app_name> \
    --resource-group <resource_group> \ 
    --java-version 1.8 \ 
    --java-container Tomcat \
    --java-container-version 8.0

Przygotowywanie repozytorium GitHub

  1. Otwórz repozytorium prostej aplikacji internetowej Java dla platformy Azure.

  2. Wybierz przycisk Rozwidlenie, aby rozwidlić repozytorium do własnego konta usługi GitHub.

  3. Otwórz plik Jenkinsfile, klikając nazwę pliku.

  4. Wybierz ikonę ołówka, aby edytować plik.

  5. Zaktualizuj identyfikator subskrypcji i identyfikator dzierżawy.

      withEnv(['AZURE_SUBSCRIPTION_ID=<subscription_id>',
            'AZURE_TENANT_ID=<tenant_id>']) 
    
  6. Zaktualizuj odpowiednio grupę zasobów i nazwę aplikacji internetowej w wierszu 22 i 23.

    def resourceGroup = '<resource_group>'
    def webAppName = '<app_name>'
    
  7. Aktualizowanie identyfikatora poświadczeń w wystąpieniu serwera Jenkins

    withCredentials([usernamePassword(credentialsId: '<service_princial>', passwordVariable: 'AZURE_CLIENT_SECRET', usernameVariable: 'AZURE_CLIENT_ID')]) {
    

Tworzenie potoku Jenkins

Wykonaj następujące czynności, aby utworzyć potok serwera Jenkins:

  1. Otwórz stronę serwera Jenkins w przeglądarce internetowej.

  2. Wybierz pozycję New Item (Nowy element).

  3. Wprowadź nazwę zadania.

  4. Wybierz pozycję Potok.

  5. Wybierz przycisk OK.

  6. Wybierz pozycję Potok.

  7. W polu Definition (Definicja) wybierz wartość Pipeline script from SCM (Skrypt potoku z menedżera SCM).

  8. W polu SCM wybierz wartość Git.

  9. Wprowadź adres URL usługi GitHub dla rozwidlenia repozytorium: https:\<forked_repo\>.git

  10. Wybierz pozycję Zapisz

Testowanie potoku

  1. Przejdź do utworzonego potoku

  2. Wybierz pozycję Kompiluj teraz

  3. Po zakończeniu kompilacji wybierz pozycję Dane wyjściowe konsoli, aby wyświetlić szczegóły kompilacji.

Weryfikowanie aplikacji internetowej

Wykonaj następujące czynności, aby sprawdzić, czy plik WAR został pomyślnie wdrożony w aplikacji internetowej:

  1. Przejdź do następującego adresu URL: http://&lt;app_name>.azurewebsites.net/api/calculator/ping

  2. Powinien zostać wyświetlony tekst podobny do następującego:

    Welcome to Java Web App!!! This is updated!
    Today's date
    
  3. Przejdź do następującego adresu URL (zastąp znaki x i y dwiema wartościami do zsumowania): http://< app_name.azurewebsites.net/api/calculator/add?x>=<x>&y=<y>.><><

    Example of running the demo add

Wdrażanie w usłudze aplikacja systemu Azure w systemie Linux

Usługa App Service może również hostować aplikacje internetowe natywnie w systemie Linux na potrzeby obsługiwanych stosów aplikacji. Może również uruchamiać niestandardowe kontenery systemu Linux (nazywane również aplikacją internetową dla kontenerów).

Skrypt można zmodyfikować w celu wdrożenia w usłudze aplikacja systemu Azure w systemie Linux. App Service dla systemu Linux obsługuje platformę Docker. W związku z tym należy podać plik Dockerfile, który pakuje aplikację internetową ze środowiskiem uruchomieniowym usługi do obrazu platformy Docker. Wtyczka kompiluje obraz, wypycha go do rejestru platformy Docker i wdraża obraz w aplikacji internetowej.

  1. Zapoznaj się z tematem Migrowanie oprogramowania niestandardowego do usługi aplikacja systemu Azure Przy użyciu kontenera niestandardowego, aby utworzyć usługę aplikacja systemu Azure w systemie Linux i usłudze 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. Zainstaluj platformę Docker w usłudze Jenkins.

  3. Upewnij się, że wtyczka potoku platformy Docker jest zainstalowana.

  4. W tym samym rozwidleniu prostej aplikacji internetowej Java dla platformy Azure zmodyfikuj plik Jenkinsfile2 w następujący sposób:

    1. Zaktualizuj identyfikator subskrypcji i identyfikator dzierżawy.

       withEnv(['AZURE_SUBSCRIPTION_ID=<mySubscriptionId>',
              'AZURE_TENANT_ID=<myTenantId>']) {
      
    2. Zaktualizuj nazwy grupy zasobów, aplikacji internetowej i usługi ACR (zastępując symbole zastępcze wartościami).

      def webAppResourceGroup = '<resource_group>'
      def webAppName = '<app_name>'
      def acrName = '<registry>'
      
    3. Aktualizowanie <azsrvprincipal\> do identyfikatora poświadczeń

      withCredentials([usernamePassword(credentialsId: '<service_principal>', passwordVariable: 'AZURE_CLIENT_SECRET', usernameVariable: 'AZURE_CLIENT_ID')]) {
      
  5. Utwórz nowy potok narzędzia Jenkins, tak jak podczas wdrażania w aplikacji internetowej platformy Azure w systemie Windows przy użyciu polecenia Jenkinsfile2.

  6. Uruchom nowe zadanie.

  7. Aby sprawdzić, w interfejsie wiersza polecenia platformy Azure uruchom następujące polecenie:

    az acr repository list -n <myRegistry> -o json
    

    Powinny zostać wyświetlone wyniki podobne do następujących:

    [
    "calculator"
    ]
    
  8. Przejdź do http://<app_name>.azurewebsites.net/api/calculator/ping (zastępując symbol zastępczy). Powinny zostać wyświetlone wyniki podobne do następujących:

    Welcome to Java Web App!!! This is updated!
    Today's date
    
  9. Przejdź do http://<app_name>.azurewebsites.net/api/calculator/add?x=<x>&y=<y> (zastępując symbole zastępcze). Wartości określone dla x i y są sumowane i wyświetlane.

Następne kroki