Udostępnij za pomocą


Przewodnik: Wdrażanie do usługi Azure App Service przy użyciu narzędzia Jenkins oraz Azure CLI

Ważne

Podczas gdy wiele usług platformy Azure ma wtyczki Jenkins, większość z tych wtyczek zakończyła wsparcie 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 usługi Azure.

Aby wdrożyć aplikację internetową Java na platformie Azure, możesz użyć Azure CLI w Jenkins Pipeline. W tym samouczku wykonasz następujące zadania:

  • Tworzenie maszyny wirtualnej serwera Jenkins
  • Konfigurowanie usługi Jenkins
  • Tworzenie aplikacji internetowej na platformie Azure
  • Przygotowywanie repozytorium GitHub
  • Utworzenie potoku Jenkins
  • Uruchom potok i zweryfikuj aplikację internetową

Wymagania wstępne

  • Subskrypcja platformy Azure: jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.

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
    

Dodaj administratora systemu Azure do poświadczeń 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 opcję Dodaj poświadczenia, aby dodać jednostkę usługi 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: główny dostęp usługi password
    • ID: Identyfikator poświadczeń (na przykład AzureServicePrincipal)

Tworzenie usługi Azure App Service na potrzeby wdrażania aplikacji internetowej Java

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

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

Kluczowe punkty:

  • Plan usługi appservice 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 planie usługi App Service.

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

Kluczowe punkty:

  • Definicja aplikacji internetowej udostępnia adres URL umożliwiający uzyskiwanie 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.
  • Przed udostępnieniem go użytkownikom możesz zamapować wpis niestandardowej nazwy domeny na aplikację internetową.

Konfigurowanie języka Java

Użyj polecenia az appservice web config update, aby skonfigurować środowisko uruchomieniowe 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 Simple Java Web App for Azure .

  2. Wybierz przycisk Fork, aby zforkować repozytorium do własnego konta 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. Zaktualizuj identyfikator poświadczeń w wystąpieniu Jenkins.

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

Utworzenie potoku Jenkins

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

  1. Otwórz usługę Jenkins w przeglądarce internetowej.

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

  3. Wprowadź nazwę zadania.

  4. Wybierz pozycję Potok.

  5. Kliknij przycisk OK.

  6. Wybierz pozycję Potok.

  7. W obszarze Definicja wybierz pozycję Skrypt potoku z systemu SCM.

  8. W polu SCM wybierz pozycję Git.

  9. Wprowadź adres URL GitHub dla forka repozytorium: https:\<forked_repo\>.git

  10. Wybierz Zapisz

Testowanie potoku

  1. Przejdź do utworzonego potoku danych

  2. Wybierz 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 <x> i <y> dwiema wartościami do zsumowania): http://<app_name>.azurewebsites.net/api/calculator/add?x=<x>&y=<y>.

    Przykład uruchamiania dodatku demonstracyjnego

Wdrażanie na platformie Azure App Service na 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 Azure App Service w systemie Linux. Usługa App Service w systemie 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 artykułem Migrowanie oprogramowania niestandardowego do usługi Azure App Service przy użyciu kontenera niestandardowego , aby utworzyć usługę Azure App Service w systemie Linux i rejestrze kontenerów platformy Azure.

        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 Docker Pipeline jest zainstalowana.

  4. W rozwidlonym przez ciebie repozytorium Simple Java Web App for Azure edytuj plik Jenkinsfile2 tak, jak poniżej:

    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. Zaktualizuj <azsrvprincipal\> na Twój identyfikator 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 swoje 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.

Dalsze kroki