Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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.
- Jenkins: instalowanie narzędzia Jenkins na maszynie wirtualnej z systemem Linux
- Konto usługi GitHub: jeśli nie masz konta usługi GitHub, 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:
- Git
- JDK 8
- Maven 3.0 lub nowszy
- Zainstalowany interfejs wiersza polecenia platformy Azure w wersji 2.0.67 lub nowszej
Zainstaluj rozszerzenie Azure Spring Apps:
az extension add --name springUtwórz grupę zasobów zawierającą usługę Azure Spring Apps:
az group create --location eastus --name <resource group name>Skonfiguruj wystąpienie usługi Azure Spring Apps:
az spring create -n <service name> -g <resource group name>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>/piggymetricsSkonfiguruj 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 configSkompiluj projekt:
cd piggymetrics mvn clean package -D skipTestsUtwó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>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.jarPrzypisz publiczny punkt końcowy do bramy:
az spring app update -n gateway -s <service name> -g <resource group name> --is-public trueWysłaj zapytanie do aplikacji bramy, aby uzyskać adres URL i sprawdzić, czy aplikacja jest uruchomiona.
az spring app show --name gateway | grep urlPrzejdź 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
Zaloguj się do serwera Jenkins.
Wybierz pozycję Zarządzaj usługą Jenkins.
Wybierz pozycję Zarządzaj wtyczkami.
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.
Aby zainstalować wtyczki, wybierz pozycję Pobierz teraz i zainstaluj po ponownym uruchomieniu.
Uruchom ponownie serwer Jenkins, aby ukończyć instalację.
Dodawanie poświadczeń jednostki usługi platformy Azure w magazynie poświadczeń serwera Jenkins
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-rbacpliku 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" }Na pulpicie Jenkins, wybierz Poświadczenia>System. Następnie wybierz pozycję Poświadczenia globalne (bez ograniczeń).
Wybierz pozycję Dodaj poświadczenia.
Wybierz pozycję Główna jednostka usługi Microsoft Azure jako typ.
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.
Nawiąż połączenie z kontrolerem Serwera Jenkins za pośrednictwem protokołu SSH.
Zainstaluj narzędzie Maven.
sudo apt-get install mavenSprawdź, 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.Przełącz się do
jenkinsużytkownika:sudo su jenkinsZainstaluj rozszerzenie spring:
az extension add --name spring
Tworzenie pliku Jenkinsfile
We własnym repozytorium
https://github.com/your_github_id/piggymetrics— utwórz plik Jenkinsfile w katalogu głównym.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' } } }Zapisz i zatwierdź zmianę.
Tworzenie zadania
Na pulpicie nawigacyjnym usługi Jenkins wybierz pozycję Nowy element.
Podaj nazwę Deploy-PiggyMetrics dla zadania i wybierz Pipeline. Kliknij przycisk OK.
Wybierz kartę Pipeline.
W obszarze Definicja wybierz pozycję Skrypt potoku z programu SCM.
W polu SCM wybierz pozycję Git.
Wprowadź adres URL GitHub dla forka repozytorium:
https://github.com/<your GitHub id>/piggymetrics.git.Dla Specyfikatora gałęzi (czarny oznacza 'dowolny'), wybierz /Azure.
W polu Ścieżka skryptu wybierz pozycję Jenkinsfile.
Wybierz Zapisz
Weryfikowanie i uruchamianie zadania
Przed uruchomieniem zadania zmodyfikuj tekst w polu wejściowym logowania, aby wprowadzić identyfikator logowania.
W repozytorium otwórz plik
index.htmlw pliku/gateway/src/main/resources/static/.enter your loginWyszukaj i zaktualizuj ten tekst naenter login ID.<input class="frontforms" id="frontloginform" name="username" placeholder="enter login ID" type="text" autocomplete="off"/>Zapisz i zatwierdź zmianę.
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.
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>