Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
Azure Spring Apps — это новое имя службы Azure Spring Cloud. Хотя служба имеет новое имя, вы увидите старое имя в некоторых местах на некоторое время, так как мы работаем над обновлением ресурсов, таких как снимки экрана, видео и схемы.
Azure Spring Apps — это полностью управляемая разработка микрослужб с встроенным обнаружением служб и управлением конфигурацией. Служба упрощает развертывание приложений микрослужб на основе Spring Boot в Azure. В этом руководстве показано, как использовать Azure CLI в Jenkins для автоматизации непрерывной интеграции и доставки (CI/CD) для Azure Spring Apps.
При работе с этим руководством вы выполните следующие задачи:
- Подготовка экземпляра службы и запуск приложения Java Spring
- Подготовка сервера Jenkins
- Использование Azure CLI в конвейере Jenkins для создания и развертывания приложений микрослужб
Предпосылки
- Подписка Azure. Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем начинать работу.
- Jenkins: установка Jenkins на виртуальной машине Linux
- Учетная запись GitHub: если у вас нет учетной записи GitHub, создайте бесплатную учетную запись перед началом работы.
Подготовка экземпляра службы и запуск приложения Java Spring
Мы используем Piggy Metrics в качестве примера приложения службы Microsoft и следуем тем же шагам, что и в Быстром старте: Запуск приложения Java Spring с помощью Azure CLI для подготовки экземпляра службы и настройки приложений. Если вы уже прошли тот же процесс, перейдите к следующему разделу. В противном случае приведены команды Azure CLI. Дополнительные сведения см. в кратком руководстве: Запуск приложения Java Spring с использованием Azure CLI.
Локальный компьютер должен соответствовать тому же предварительным требованиям, что и сервер сборки Jenkins. Убедитесь, что установлены следующие компоненты для сборки и развертывания приложений микрослужб:
- Git
- JDK 8
- Maven 3.0 или более поздней версии
- Установлен Azure CLI версии 2.0.67 или более поздней
Установите расширение Azure Spring Apps:
az extension add --name springСоздайте группу ресурсов для хранения службы Azure Spring Apps:
az group create --location eastus --name <resource group name>Подготовьте экземпляр Azure Spring Apps:
az spring create -n <service name> -g <resource group name>Сделайте форк репозитория Piggy Metrics в вашу собственную учетную запись GitHub. На локальном компьютере клонируйте репозиторий в каталоге с именем
source-code:mkdir source-code git clone https://github.com/<your GitHub id>/piggymetricsНастройте сервер конфигурации. Замените <идентификатор> GitHub правильным значением.
az spring config-server git set -n <your-service-name> --uri https://github.com/<your GitHub id>/piggymetrics --label configСоздайте проект:
cd piggymetrics mvn clean package -D skipTestsСоздайте три микрослужбы: шлюз, auth-service и 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>Развертывание приложений:
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Назначьте общедоступную конечную точку шлюзу.
az spring app update -n gateway -s <service name> -g <resource group name> --is-public trueЗапросите приложение шлюза, чтобы получить URL-адрес, чтобы убедиться, что приложение запущено.
az spring app show --name gateway | grep urlПерейдите по URL-адресу, предоставленному предыдущей командой, чтобы запустить приложение PiggyMetrics.
Подготовка сервера Jenkins
В этом разделе описана подготовка сервера Jenkins к выполнению сборки, которая подходит для тестирования. Однако из-за последствий безопасности следует использовать агент виртуальной машины Azure или агент контейнеров Azure для создания агента в Azure для запуска сборок.
Установка плагинов
Войдите на сервер Jenkins.
Выберите "Управление Jenkins".
Выберите "Управление подключаемыми модулями".
На вкладке "Доступно" выберите следующие подключаемые модули:
Если эти подключаемые модули не отображаются в списке, перейдите на вкладку "Установленные ", чтобы узнать, уже ли они установлены.
Чтобы установить подключаемые модули, нажмите кнопку "Скачать сейчас" и установите после перезагрузки.
Перезапустите сервер Jenkins, чтобы завершить установку.
Добавьте учетные данные служебного субъекта Azure в хранилище учетных данных Jenkins
Для развертывания в Azure требуется учетная запись службы Azure. Дополнительные сведения см. в разделе "Создание субъекта-службы" в руководстве по развертыванию в Службе приложений Azure. Выходные данные из
az ad sp create-for-rbacвыглядят примерно так:{ "appId": "xxxxxx-xxx-xxxx-xxx-xxxxxxxxxxxx", "displayName": "xxxxxxxjenkinssp", "name": "http://xxxxxxxjenkinssp", "password": "xxxxxx-xxx-xxxx-xxx-xxxxxxxxxxxx", "tenant": "xxxxxx--xxx-xxxx-xxx-xxxxxxxxxxxx" }На панели мониторинга Jenkins выберите "Система учетных> данных". Затем выберите глобальные учетные данные (неограниченные).
Выберите "Добавить учетные данные".
Выберите сервисный принципал Microsoft Azure как тип.
Укажите значения для следующих полей:
- Идентификатор подписки: идентификатор подписки Azure
- Идентификатор клиента: идентификатор приложения главного участника
- Секрет клиента: пароль служебной учётной записи
- Идентификатор клиента: идентификатор клиента Майкрософт
- Среда Azure. Выберите соответствующее значение для вашей среды. Например, используйте Azure для Глобальной службы Azure
-
Идентификатор: задать как
azure_service_principal. Этот идентификатор используется на следующем шаге в этой статье - Описание. Это значение является необязательным, но рекомендуется с точки зрения документации или обслуживания.
Установка расширения Maven и Azure CLI spring
Пример конвейера использует Maven для сборки и Azure CLI для развертывания на экземпляре службы. При установке Jenkins создается учетная запись администратора с именем jenkins. Убедитесь, что у пользователя jenkins есть разрешение на запуск расширения spring.
Подключитесь к контроллеру Jenkins через SSH.
Установите Maven.
sudo apt-get install mavenУбедитесь, что Azure CLI установлен путем ввода
az version. Если Azure CLI не установлен, см. статью "Установка Azure CLI".Перейдите к
jenkinsпользователю:sudo su jenkinsУстановите расширение Spring:
az extension add --name spring
Создайте Jenkinsfile
В собственном репозитории —
https://github.com/your_github_id/piggymetrics, создайте файл Jenkinsfile в корневой папке.Обновите файл следующим образом. Замените значения <имени> группы ресурсов и <имени> службы. Замените azure_service_principal правильным идентификатором, если при добавлении учетных данных в 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' } } }Сохраните и зафиксируйте изменение.
Создание задания
На панели мониторинга Jenkins выберите новый элемент.
Укажите имя, Deploy-PiggyMetrics для задания и выберите Pipeline. Нажмите кнопку "OК".
Перейдите на вкладку "Конвейер".
Для определения выберите сценарий конвейера из SCM.
Для SCM выберите Git.
Введите URL-адрес вашего форкнутого репозитория на GitHub:
https://github.com/<your GitHub id>/piggymetrics.gitДля спецификатора ветви (чёрный для обозначения 'любая') выберите /Azure.
Для пути к скрипту выберите Jenkinsfile.
Нажмите кнопку "Сохранить"
Проверка и запуск задания
Перед выполнением задания измените текст в поле ввода входа, чтобы ввести идентификатор входа.
В вашем репозитории откройте
index.htmlв/gateway/src/main/resources/static/.Найдите
enter your loginи обновите этот текст наenter login ID.<input class="frontforms" id="frontloginform" name="username" placeholder="enter login ID" type="text" autocomplete="off"/>Сохраните и зафиксируйте изменение.
Запустите задание в Jenkins вручную. На панели мониторинга Jenkins выберите задание
Deploy-PiggyMetricsи нажмите кнопку "Создать сейчас".
После завершения задания перейдите к общедоступному gateway IP-адресу приложения и убедитесь, что приложение обновлено.
Очистите ресурсы
При отсутствии необходимости удалите ресурсы, созданные в этой статье:
az group delete -y --no-wait -n <resource group name>