Краткое руководство. Развертывание веб-приложения Linux в Azure с помощью шаблона ARM
Azure DevOps Services
Начните работу с шаблонами Azure Resource Manager (шаблоны ARM), развернув веб-приложение Linux с помощью MySQL. Шаблоны ARM позволяют сохранить конфигурацию в коде. Использование шаблона ARM является примером инфраструктуры как кода и хорошей практикой DevOps.
Шаблон ARM является файлом нотации объектов JavaScript (JSON), определяющими инфраструктуру и конфигурацию вашего проекта. В шаблоне используется декларативный синтаксис. В декларативном синтаксисе вы можете описать предполагаемое развертывание без написания последовательности команд программирования для создания развертывания.
Для развертывания ресурсов Azure можно использовать синтаксис JSON или Bicep . Узнайте больше о различиях между JSON и Bicep для шаблонов.
Предварительные требования
Для этого потребуются следующие компоненты.
- Учетная запись Azure с активной подпиской. Создайте учетную запись бесплатно.
- Активная организация Azure DevOps. Регистрация в Azure Pipelines
- (Для развертываний Bicep) Существующая группа ресурсов. Создайте группу ресурсов с помощью портал Azure, Azure CLI или Azure PowerShell.
Получите код
Создание вилки этого репозитория на GitHub:
https://github.com/Azure/azure-quickstart-templates/tree/master/quickstarts/microsoft.web/webapp-linux-managed-mysql
Изучение шаблона
Шаблон, используемый в этом кратком руководстве, взят из шаблонов быстрого запуска Azure.
Шаблон определяет несколько ресурсов:
- Microsoft.Web/serverfarms
- Microsoft.Web/sites
- Microsoft.DBforMySQL/servers
- Microsoft.DBforMySQL/servers/firewallrules
- Microsoft.DBforMySQL/servers/databases
Создание конвейера и развертывание шаблона
Войдите в свою организацию Azure DevOps и откройте нужный проект. Создайте проект, если у вас его еще нет.
Перейдите в раздел Конвейеры и выберите Создать конвейер.
Выберите GitHub в качестве расположения исходного кода.
Примечание
Вы можете быть перенаправлены на GitHub для входа. Для этого введите учетные данные GitHub.
Когда появится список репозиториев, выберите
yourname/azure-quickstart-templates/
.Примечание
Вы можете быть перенаправлены на сайт GitHub для установки приложения Azure Pipelines. В этом случае выберите Утвердить и установить.
Когда откроется вкладка Настройка, выберите
Starter pipeline
.Замените содержимое конвейера следующим кодом:
trigger: - none pool: vmImage: 'ubuntu-latest'
Создайте три переменные:
siteName
,administratorLogin
иadminPass
.adminPass
должен быть секретной переменной.- Выберите элемент Variables (Переменные).
+
Используйте знак , чтобы добавить три переменные. При созданииadminPass
выберите Сохранить это значение в секрете.- После завершения настройки нажмите Сохранить .
Переменная Значение Секрет? siteName mytestsite
Нет adminUser fabrikam
Нет adminPass Fqdn:5362!
Да Сопоставьте секретную переменную
$(adminPass)
, чтобы она была доступна в задаче развертывания группы ресурсов Azure. В верхней части файла YAML сопоставьте с$(adminPass)
$(ARM_PASS)
.variables: ARM_PASS: $(adminPass) trigger: - none pool: vmImage: 'ubuntu-latest'
Добавьте задачу "Копировать файлы" в ФАЙЛ YAML. Вы будете
101-webapp-linux-managed-mysql
использовать проект . Дополнительные сведения см. в статье Создание веб-приложения в Linux с помощью репозитория Базы данных Azure для MySQL .variables: ARM_PASS: $(adminPass) trigger: - none pool: vmImage: 'ubuntu-latest' steps: - task: CopyFiles@2 inputs: SourceFolder: 'quickstarts/microsoft.web/webapp-linux-managed-mysql/' Contents: '**' TargetFolder: '$(Build.ArtifactStagingDirectory)'
Добавьте и настройте задачу развертывания группы ресурсов Azure .
Задача ссылается как на артефакт, созданный с помощью задачи Копирования файлов, так и на переменные конвейера. Задайте эти значения при настройке задачи.
- Область развертывания (deploymentScope): задайте для область развертывания значение
Resource Group
. Вы можете нацелить развертывание на группу управления, подписку Azure или группу ресурсов. - Подключение azure Resource Manager (azureResourceManagerConnection): выберите подключение службы azure Resource Manager. Чтобы настроить новое подключение к службе, выберите подписку Azure из списка и щелкните Авторизовать. Дополнительные сведения см. в статье Подключение к Microsoft Azure .
- Подписка (subscriptionId): выберите подписку, в которой должно быть развернуто развертывание.
- Действие (действие): задайте значение
Create or update resource group
, чтобы создать новую группу ресурсов или обновить существующую. - Группа ресурсов: задайте значение ,
ARMPipelinesLAMP-rg
чтобы присвоить имя новой группе ресурсов. Если это существующая группа ресурсов, она будет обновлена. - Location(location): расположение для развертывания группы ресурсов. Задайте ближайшее расположение (например, западная часть США). Если группа ресурсов уже существует в вашей подписке, это значение будет игнорироваться.
- Расположение шаблона (templateLocation): задайте для
Linked artifact
значение . Это расположение шаблона и файлов параметров. - Шаблон (csmFile): задайте для
$(Build.ArtifactStagingDirectory)/azuredeploy.json
значение . Это путь к шаблону ARM. - Параметры шаблона (csmParametersFile): задайте для значение
$(Build.ArtifactStagingDirectory)/azuredeploy.parameters.json
. Это путь к файлу параметров для шаблона ARM. - Переопределение параметров шаблона (overrideParameters): задайте значение для
-siteName $(siteName) -administratorLogin $(adminUser) -administratorLoginPassword $(ARM_PASS)
использования ранее созданных переменных. Эти значения заменят параметры, заданные в файле параметров шаблона. - Режим развертывания (deploymentMode): способ развертывания ресурсов. Задайте значение
Incremental
. Добавочное сохранение ресурсов, не хранющихся в шаблоне ARM и выполняющихся быстрее , чемComplete
.Validate
Режим позволяет находить проблемы с шаблоном перед развертыванием.
variables: ARM_PASS: $(adminPass) trigger: - none pool: vmImage: 'ubuntu-latest' steps: - task: CopyFiles@2 inputs: SourceFolder: 'quickstarts/microsoft.web/webapp-linux-managed-mysql/' Contents: '**' TargetFolder: '$(Build.ArtifactStagingDirectory)' - task: AzureResourceManagerTemplateDeployment@3 inputs: deploymentScope: 'Resource Group' azureResourceManagerConnection: '<your-resource-manager-connection>' subscriptionId: '<your-subscription-id>' action: 'Create Or Update Resource Group' resourceGroupName: 'ARMPipelinesLAMP-rg' location: '<your-closest-location>' templateLocation: 'Linked artifact' csmFile: '$(Build.ArtifactStagingDirectory)/azuredeploy.json' csmParametersFile: '$(Build.ArtifactStagingDirectory)/azuredeploy.parameters.json' overrideParameters: '-siteName $(siteName) -administratorLogin $(adminUser) -administratorLoginPassword $(ARM_PASS)' deploymentMode: 'Incremental'
- Область развертывания (deploymentScope): задайте для область развертывания значение
Нажмите кнопку Сохранить и запустить , чтобы развернуть шаблон. Задание конвейера будет запущено, и через несколько минут, в зависимости от агента, в его состоянии должно быть указано
Success
.
Просмотр развернутых ресурсов
Убедитесь, что ресурсы развернуты. Перейдите
ARMPipelinesLAMP-rg
к группе ресурсов в портал Azure и убедитесь, что отображаются ресурсы Служба приложений, план Служба приложений и сервер База данных Azure для MySQL.Вы также можете проверить ресурсы с помощью Azure CLI.
az resource list --resource-group ARMPipelinesLAMP-rg --output table
Перейдите на новый сайт. Если задано значение
siteName
armpipelinetestsite
, сайт находится по адресуhttps://armpipelinetestsite.azurewebsites.net/
.
Очистка ресурсов
Вы также можете использовать шаблон ARM для удаления ресурсов. Измените action
значение в задаче развертывания группы ресурсов Azure на DeleteRG
. Можно также удалить входные данные для templateLocation
, csmFile
, csmParametersFile
, overrideParameters
и deploymentMode
.
variables:
ARM_PASS: $(adminPass)
trigger:
- none
pool:
vmImage: 'ubuntu-latest'
steps:
- task: CopyFiles@2
inputs:
SourceFolder: 'quickstarts/microsoft.web/webapp-linux-managed-mysql/'
Contents: '**'
TargetFolder: '$(Build.ArtifactStagingDirectory)'
- task: AzureResourceManagerTemplateDeployment@3
inputs:
deploymentScope: 'Resource Group'
azureResourceManagerConnection: '<your-resource-manager-connection>'
subscriptionId: '<your-subscription-id>'
action: 'DeleteRG'
resourceGroupName: 'ARMPipelinesLAMP-rg'
location: ''<your-closest-location>'
Дальнейшие действия
Кері байланыс
https://aka.ms/ContentUserFeedback.
Жақында қолжетімді болады: 2024 жыл бойы біз GitHub Issues жүйесін мазмұнға арналған кері байланыс механизмі ретінде біртіндеп қолданыстан шығарамыз және оны жаңа кері байланыс жүйесімен ауыстырамыз. Қосымша ақпаратты мұнда қараңыз:Жіберу және пікірді көру