Udostępnij za pomocą


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

Uwaga / Notatka

Azure Spring Apps to nowa nazwa usługi Azure Spring Cloud. Mimo że usługa ma nową nazwę, stara nazwa będzie widoczna w niektórych miejscach przez pewien czas, ponieważ pracujemy nad aktualizowaniem zasobów, takich jak zrzuty ekranu, filmy wideo i diagramy.

Usługa Azure Spring Apps to w pełni zarządzane programowanie mikrousług z wbudowanym odnajdywaniem usług i zarządzaniem konfiguracją. Usługa ułatwia wdrażanie aplikacji mikrousług opartych na usłudze Spring Boot na platformie Azure. W tym samouczku pokazano, jak za pomocą interfejsu wiersza polecenia platformy Azure w usłudze Jenkins zautomatyzować ciągłą integrację i ciągłe dostarczanie (CI/CD) dla usługi Azure Spring Apps.

W tym samouczku wykonasz następujące zadania:

  • Przygotuj wystąpienie usługi i uruchom aplikację Spring dla Java
  • Przygotowywanie serwera Jenkins
  • Użyj Azure CLI w potoku Jenkins do tworzenia i wdrażania aplikacji mikrousług

Wymagania wstępne

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

Utwórz instancję usługi i uruchom aplikację Java Spring

Używamy Piggy Metrics jako przykładowej aplikacji usługi firmy Microsoft i wykonujemy te same kroki jak w Szybki start: uruchomienie aplikacji Java Spring za pomocą interfejsu wiersza polecenia Azure, aby przygotować instancję usługi i skonfigurować aplikacje. Jeśli już przeszedłeś ten sam proces, możesz przejść do następnej sekcji. W przeciwnym razie są dostępne następujące polecenia interfejsu wiersza polecenia platformy Azure. Zapoznaj się z przewodnikiem Szybki start: uruchamianie aplikacji Java Spring przy użyciu interfejsu wiersza polecenia platformy Azure , aby uzyskać więcej informacji.

Maszyna lokalna musi spełniać te same wymagania wstępne co serwer kompilacji serwera Jenkins. Upewnij się, że następujące elementy zostały zainstalowane w celu skompilowania i wdrożenia aplikacji mikrousług:

  1. Zainstaluj rozszerzenie Azure Spring Apps:

    az extension add --name spring
    
  2. Utwórz grupę zasobów zawierającą usługę Azure Spring Apps:

    az group create --location eastus --name <resource group name>
    
  3. Skonfiguruj wystąpienie usługi Azure Spring Apps:

    az spring create -n <service name> -g <resource group name>
    
  4. Sforkuj repozytorium Piggy Metrics na własne konto GitHub. Na swoim komputerze lokalnym sklonuj repozytorium do katalogu o nazwie source-code:

    mkdir source-code
    git clone https://github.com/<your GitHub id>/piggymetrics
    
  5. Skonfiguruj serwer konfiguracji. Upewnij się, że identyfikator usługi GitHub< został zastąpiony >poprawną wartością.

    az spring config-server git set -n <your-service-name> --uri https://github.com/<your GitHub id>/piggymetrics --label config
    
  6. Skompiluj projekt:

    cd piggymetrics
    mvn clean package -D skipTests
    
  7. Utwórz trzy mikrousługi: gateway, auth-service i account-service:

    az spring app create --n gateway -s <service name> -g <resource group name>
    az spring app create --n auth-service -s <service name> -g <resource group name>
    az spring app create --n account-service -s <service name> -g <resource group name>
    
  8. Wdróż aplikacje:

    az spring app deploy -n gateway -s <service name> -g <resource group name> --jar-path ./gateway/target/gateway.jar
    az spring app deploy -n account-service -s <service name> -g <resource group name> --jar-path ./account-service/target/account-service.jar
    az spring app deploy -n auth-service -s <service name> -g <resource group name> --jar-path ./auth-service/target/auth-service.jar
    
  9. Przypisz publiczny punkt końcowy do bramy:

    az spring app update -n gateway -s <service name> -g <resource group name> --is-public true
    
  10. Wysłaj zapytanie do aplikacji bramy, aby uzyskać adres URL i sprawdzić, czy aplikacja jest uruchomiona.

    az spring app show --name gateway | grep url
    
  11. Przejdź do adresu URL dostarczonego przez poprzednie polecenie, aby uruchomić aplikację PiggyMetrics.

Przygotowywanie serwera Jenkins

W tej sekcji przygotujesz serwer Jenkins do uruchomienia kompilacji, która jest odpowiednia do testowania. Jednak ze względu na implikację zabezpieczeń należy użyć agenta maszyny wirtualnej platformy Azure lub agenta kontenera platformy Azure , aby uruchomić agenta na platformie Azure w celu uruchamiania kompilacji.

Instalowanie wtyczek

  1. Zaloguj się do serwera Jenkins.

  2. Wybierz pozycję Zarządzaj usługą Jenkins.

  3. Wybierz pozycję Zarządzaj wtyczkami.

  4. Na karcie Dostępne wybierz następujące wtyczki:

    Jeśli te wtyczki nie są wyświetlane na liście, sprawdź kartę Zainstalowane , aby sprawdzić, czy zostały już zainstalowane.

  5. Aby zainstalować wtyczki, wybierz pozycję Pobierz teraz i zainstaluj po ponownym uruchomieniu.

  6. Uruchom ponownie serwer Jenkins, aby ukończyć instalację.

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

  1. Do wdrożenia na platformie Azure potrzebna jest jednostka usługi platformy Azure. Aby uzyskać więcej informacji, zobacz sekcję Tworzenie jednostki usługi w samouczku dotyczącym wdrażania w Azure App Service. Dane wyjściowe z az ad sp create-for-rbac pliku wyglądają mniej więcej tak:

    {
        "appId": "xxxxxx-xxx-xxxx-xxx-xxxxxxxxxxxx",
        "displayName": "xxxxxxxjenkinssp",
        "name": "http://xxxxxxxjenkinssp",
        "password": "xxxxxx-xxx-xxxx-xxx-xxxxxxxxxxxx",
        "tenant": "xxxxxx--xxx-xxxx-xxx-xxxxxxxxxxxx"
    }
    
  2. Na pulpicie Jenkins, wybierz Poświadczenia>System. Następnie wybierz pozycję Poświadczenia globalne (bez ograniczeń).

  3. Wybierz pozycję Dodaj poświadczenia.

  4. Wybierz pozycję Główna jednostka usługi Microsoft Azure jako typ.

  5. Podaj wartości dla następujących pól:

    • Identyfikator subskrypcji: identyfikator subskrypcji platformy Azure
    • Identyfikator klienta: główna usługa appid
    • Klucz tajny klienta: hasło jednostki usługi
    • Identyfikator dzierżawy: identyfikator dzierżawy konta Microsoft
    • Środowisko platformy Azure: wybierz odpowiednią wartość dla danego środowiska. Na przykład użyj Azure dla Azure Global
    • ID: ustaw jako azure_service_principal. Użyjemy tego identyfikatora w późniejszym kroku w tym artykule
    • Opis: Ta wartość jest opcjonalna, ale zalecana z punktu widzenia dokumentacji/konserwacji.

Zainstaluj Maven i rozszerzenie Spring dla Azure CLI

Przykładowa ścieżka używa narzędzia Maven do kompilowania i Azure CLI w celu wdrożenia w wystąpieniu usługi. Po zainstalowaniu usługi Jenkins tworzy konto administratora o nazwie jenkins. Upewnij się, że użytkownik jenkins ma uprawnienia do uruchamiania rozszerzenia spring.

  1. Nawiąż połączenie z kontrolerem Serwera Jenkins za pośrednictwem protokołu SSH.

  2. Zainstaluj narzędzie Maven.

    sudo apt-get install maven
    
  3. Sprawdź, czy interfejs wiersza polecenia platformy Azure jest zainstalowany, wprowadzając polecenie az version. Jeśli interfejs wiersza polecenia platformy Azure nie jest zainstalowany, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure.

  4. Przełącz się do jenkins użytkownika:

    sudo su jenkins
    
  5. Zainstaluj rozszerzenie spring:

    az extension add --name spring
    

Tworzenie pliku Jenkinsfile

  1. We własnym repozytorium https://github.com/your_github_id/piggymetrics — utwórz plik Jenkinsfile w katalogu głównym.

  2. Zaktualizuj plik w następujący sposób. Pamiętaj, aby zastąpić wartości <nazwy> grupy zasobów i <nazwy> usługi. Zastąp azure_service_principal odpowiednim identyfikatorem, jeśli używasz innej wartości podczas dodawania poświadczeń w usłudze Jenkins.

        node {
          stage('init') {
            checkout scm
          }
          stage('build') {
            sh 'mvn clean package'
          }
          stage('deploy') {
            withCredentials([azureServicePrincipal('azure_service_principal')]) {
              // Log in to Azure
              sh '''
                az login --service-principal -u $AZURE_CLIENT_ID -p $AZURE_CLIENT_SECRET -t $AZURE_TENANT_ID
                az account set -s $AZURE_SUBSCRIPTION_ID
              '''  
              // Set default resource group name and service name. Replace <resource group name> and <service name> with the right values
              sh 'az config set defaults.group=<resource group name>'
              sh 'az config set defaults.spring=<service name>'
    
              // Deploy applications
              sh 'az spring app deploy -n gateway --jar-path ./gateway/target/gateway.jar'
              sh 'az spring app deploy -n account-service --jar-path ./account-service/target/account-service.jar'
              sh 'az spring app deploy -n auth-service --jar-path ./auth-service/target/auth-service.jar'
              sh 'az logout'
            }
          }
        }
    
  3. Zapisz i zatwierdź zmianę.

Tworzenie zadania

  1. Na pulpicie nawigacyjnym usługi Jenkins wybierz pozycję Nowy element.

  2. Podaj nazwę Deploy-PiggyMetrics dla zadania i wybierz Pipeline. Kliknij przycisk OK.

  3. Wybierz kartę Pipeline.

  4. W obszarze Definicja wybierz pozycję Skrypt potoku z programu SCM.

  5. W polu SCM wybierz pozycję Git.

  6. Wprowadź adres URL GitHub dla forka repozytorium: https://github.com/&lt;your GitHub id&gt;/piggymetrics.git.

  7. Dla Specyfikatora gałęzi (czarny oznacza 'dowolny'), wybierz /Azure.

  8. W polu Ścieżka skryptu wybierz pozycję Jenkinsfile.

  9. Wybierz Zapisz

Weryfikowanie i uruchamianie zadania

Przed uruchomieniem zadania zmodyfikuj tekst w polu wejściowym logowania, aby wprowadzić identyfikator logowania.

  1. W repozytorium otwórz plik index.html w pliku /gateway/src/main/resources/static/.

  2. enter your login Wyszukaj i zaktualizuj ten tekst na enter login ID.

    <input class="frontforms" id="frontloginform" name="username" placeholder="enter login ID" type="text" autocomplete="off"/>
    
  3. Zapisz i zatwierdź zmianę.

  4. Uruchom zadanie ręcznie w usłudze Jenkins. Na pulpicie nawigacyjnym narzędzia Jenkins wybierz zadanie Deploy-PiggyMetrics , a następnie wybierz pozycję Kompiluj teraz.

Po zakończeniu zadania przejdź do publicznego adresu IP gateway aplikacji i sprawdź, czy aplikacja została zaktualizowana.

Zaktualizowane metryki Piggy

Uprzątnij zasoby

Gdy zasoby utworzone w tym artykule nie będą już potrzebne, usuń je:

az group delete -y --no-wait -n <resource group name>

Dalsze kroki