Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Это важно
Хотя многие службы Azure имеют подключаемые модули Jenkins, большинство этих подключаемых модулей завершили поддержку с 29 февраля 2024 года. Azure CLI — это рекомендуемый в настоящее время способ интеграции Jenkins с службами Azure. Для получения дополнительной информации см. статью плагины Jenkins для Azure.
Чтобы развернуть веб-приложение Java в Azure, можно использовать Azure CLI в конвейере Jenkins. В этом руководстве описаны следующие задачи:
- Создание виртуальной машины Jenkins
- Настройка Jenkins
- Создание веб-приложения в Azure
- Подготовка репозитория GitHub
- Создание конвейера Jenkins
- Запуск конвейера и проверка веб-приложения
Предпосылки
- Подписка Azure. Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем начинать работу.
- Дженкинс - Установка Jenkins на виртуальной машине Linux
- Azure CLI: установите Azure CLI (версия 2.0.67 или более поздней версии) на сервере Jenkins.
Настройка Jenkins
Ниже показано, как установить необходимый JDK Java и Maven на контроллере Jenkins:
Войдите в контроллер Jenkins с помощью SSH.
Скачайте и установите сборку Azul Zulu OpenJDK для Azure из репозитория 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
Выполните следующую команду, чтобы установить Maven:
sudo apt-get install -y maven
Добавление субъекта-службы Azure в учетные данные Jenkins
Ниже показано, как указать учетные данные Azure:
Убедитесь, что плагин «Учетные данные» установлен.
На панели мониторинга Jenkins выберите "Учетные данные" —> "Система".>
Выберите глобальные учетные данные (неограниченные).
Выберите «Добавить учетные данные», чтобы добавить учетную запись службы Microsoft Azure. Убедитесь, что тип учетных данных имеет имя пользователя с паролем и введите следующие элементы:
-
Имя пользователя: основной объект службы
appId
-
Пароль: учетная запись службы
password
-
Идентификатор: идентификатор учетных данных (например
AzureServicePrincipal
)
-
Имя пользователя: основной объект службы
Создание службы приложений Azure для развертывания веб-приложения Java
Используйте az appservice plan create для создания плана службы приложений Azure с ценовой категорией FREE:
az appservice plan create \
--name <app_service_plan> \
--resource-group <resource_group> \
--sku FREE
Основные моменты:
- План службы приложений определяет физические ресурсы, используемые для размещения приложений.
- Все приложения, назначенные плану службы приложений, совместно используют эти ресурсы.
- Планы службы приложений позволяют сэкономить затраты при размещении нескольких приложений.
Создание веб-приложения Azure
Используйте az webapp create для создания определения веб-приложения в плане службы приложений myAppServicePlan
.
az webapp create \
--name <app_name> \
--resource-group <resource_group> \
--plan <app_service_plan>
Основные моменты:
- Определение веб-приложения предоставляет URL-адрес для доступа к приложению и настраивает несколько вариантов развертывания кода в Azure.
- Замените
<app_name>
контейнер уникальным именем приложения. - Имя приложения является частью доменного имени по умолчанию для веб-приложения. Поэтому имя должно быть уникальным для всех приложений в Azure.
- Вы можете сопоставить запись имени личного домена с веб-приложением, прежде чем предоставлять его пользователям.
Настройка Java
Используйте az appservice web config update , чтобы настроить конфигурацию среды выполнения Java для приложения:
az webapp config set \
--name <app_name> \
--resource-group <resource_group> \
--java-version 1.8 \
--java-container Tomcat \
--java-container-version 8.0
Подготовка репозитория GitHub
Откройте простое веб-приложение Java для Репозитория Azure .
Нажмите кнопку Fork, чтобы форкнуть репозиторий в собственную учетную запись GitHub.
Откройте файл Jenkinsfile , щелкнув имя файла.
Щелкните значок карандаша, чтобы изменить файл.
Обновите идентификатор подписки и идентификатор клиента.
withEnv(['AZURE_SUBSCRIPTION_ID=<subscription_id>', 'AZURE_TENANT_ID=<tenant_id>'])
Обновите группу ресурсов и имя веб-приложения в строке 22 и 23 соответственно.
def resourceGroup = '<resource_group>' def webAppName = '<app_name>'
Обновите идентификатор учетных данных в вашей системе Jenkins
withCredentials([usernamePassword(credentialsId: '<service_principal>', passwordVariable: 'AZURE_CLIENT_SECRET', usernameVariable: 'AZURE_CLIENT_ID')]) {
Создание конвейера Jenkins
Сделайте следующее, чтобы создать конвейер Jenkins:
Откройте Jenkins в веб-браузере.
Выберите New Item (Создать элемент).
Введите имя должности.
Выберите Конвейер.
Нажмите ОК.
Выберите Конвейер.
Для определения выберите сценарий конвейера из SCM.
Для SCM выберите Git.
Введите URL-адрес GitHub для вилированного репозитория:
https:\<forked_repo\>.git
Нажмите кнопку "Сохранить"
Тестирование конвейера
Перейдите к созданному конвейеру
Выберите "Создать сейчас"
После завершения сборки выберите "Выходные данные консоли ", чтобы просмотреть сведения о сборке.
Проверка веб-приложения
Выполните следующие действия, чтобы убедиться, что WAR-файл успешно развернут в веб-приложении:
Перейдите по следующему URL-адресу:
http://<app_name>.azurewebsites.net/api/calculator/ping
Вы должны увидеть текст, аналогичный следующему:
Welcome to Java Web App!!! This is updated! Today's date
Перейдите по следующему URL-адресу (замените <x> и <y> на два значения, которые нужно суммировать): http://<app_name>.azurewebsites.net/api/calculator/add?x=<x>&y=<y>.
Развертывание на Службе приложений Azure в среде Linux
Служба приложений также позволяет размещать веб-приложения из поддерживаемых стеков приложений непосредственно на Linux. Он также может запускать пользовательские контейнеры Linux (также известные как веб-приложение для контейнеров).)
Скрипт можно изменить для развертывания в Службе приложений Azure в Linux. Служба приложений в Linux поддерживает Docker. Таким образом, вы предоставляете Dockerfile, который упаковывает ваше веб-приложение вместе с средой выполнения в образ Docker. Подключаемый модуль создает образ, отправляет его в реестр Docker и развертывает образ в веб-приложении.
Дополнительные сведения см. в статье "Миграция пользовательского программного обеспечения в Службу приложений Azure" с помощью пользовательского контейнера для создания службы приложений Azure в Linux и реестра контейнеров 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
Убедитесь, что плагин для Docker Pipeline установлен.
В том же репозитории простого веб-приложения Java для Azure, который вы форкнули, измените файл Jenkinsfile2 следующим образом:
Обновите идентификатор подписки и идентификатор клиента.
withEnv(['AZURE_SUBSCRIPTION_ID=<mySubscriptionId>', 'AZURE_TENANT_ID=<myTenantId>']) {
Обновите имена группы ресурсов, веб-приложения и ACR (заменив заполнители вашими значениями).
def webAppResourceGroup = '<resource_group>' def webAppName = '<app_name>' def acrName = '<registry>'
Обновите
<azsrvprincipal\>
на идентификатор ваших учетных данныхwithCredentials([usernamePassword(credentialsId: '<service_principal>', passwordVariable: 'AZURE_CLIENT_SECRET', usernameVariable: 'AZURE_CLIENT_ID')]) {
Создайте новый конвейер Jenkins так же, как вы создавали его при развертывании в веб-приложении Azure на Windows, используя
Jenkinsfile2
.Запустите новое задание.
Чтобы проверить, в Azure CLI выполните следующую команду:
az acr repository list -n <myRegistry> -o json
Вы увидите результаты, аналогичные следующим:
[ "calculator" ]
Перейдите к
http://<app_name>.azurewebsites.net/api/calculator/ping
(замена заполнителя). У вас должен отобразиться результат, аналогичный следующему:Welcome to Java Web App!!! This is updated! Today's date
Перейдите на
http://<app_name>.azurewebsites.net/api/calculator/add?x=<x>&y=<y>
страницу (замена заполнителей). Заданные значенияx
иy
суммируются и отображаются.