Краткое руководство. Развертывание первого ресурса Azure с помощью поставщика AzAPI Terraform
Статья проверена со следующими версиями Terraform и поставщика Terraform:
Terraform поддерживает определение, предварительный просмотр и развертывание облачной инфраструктуры. С помощью Terraform можно создавать файлы конфигурации с применением синтаксиса HCL. Синтаксис HCL позволяет указать поставщика облачных служб, например Azure, и элементы, составляющие облачную инфраструктуру. После создания файлов конфигурации создается план выполнения, который позволяет предварительно просматривать изменения инфраструктуры до их развертывания. После проверки изменений примените план выполнения для развертывания инфраструктуры.
В этой статье вы узнаете, как использовать поставщик AzAPI Terraform для управления службой Azure, которая в настоящее время не поддерживается поставщиком AzureRM. Она azapi_resource
будет использоваться для управления учетной записью Служб лабораторий Azure, а также лабораторией.
- Определите и настройте поставщиков AzureRM и AzAPI.
- Создание группы ресурсов Azure с помощью поставщика AzureRM
- Использование поставщика AzureRM для регистрации поставщика Microsoft.LabServices в подписке
- Создание ресурсов Служб лабораторий Azure с помощью поставщика AzAPI
Примечание.
Пример кода в этой статье находится в репозитории Azure Terraform на GitHub.
Необходимые компоненты
- Подписка Azure. Если у вас нет подписки Azure, создайте бесплатную учетную запись, прежде чем начинать работу.
Настройка Terraform: если вы еще этого не сделали, настройте Terraform с помощью одного из следующих вариантов:
Реализация кода Terraform
Создайте каталог для тестирования примера кода Terraform и сделайте его текущим каталогом.
Создайте файл с именем
providers.tf
и вставьте следующий код:terraform { required_providers { azapi = { source = "azure/azapi" version = "=0.1.0" } azurerm = { source = "hashicorp/azurerm" version = "=3.0.2" } } } provider "azapi" { default_location = "eastus" default_tags = { team = "Azure deployments" } } provider "azurerm" { features {} }
Создайте файл с именем
main.tf
и вставьте следующий код:resource "azurerm_resource_group" "qs101" { name = "rg-qs101" location = "westus2" }
Создайте файл с именем
main-generic.tf
и вставьте следующий код:# Provision a Lab Service Account and a Lab that are in public preview resource "azapi_resource" "qs101-account" { type = "Microsoft.LabServices/labaccounts@2018-10-15" name = "qs101LabAccount" parent_id = azurerm_resource_group.qs101.id body = jsonencode({ properties = { enabledRegionSelection = false } }) } resource "azapi_resource" "qs101-lab" { type = "Microsoft.LabServices/labaccounts/labs@2018-10-15" name = "qs101Lab" parent_id = azapi_resource.qs101-account.id body = jsonencode({ properties = { maxUsersInLab = 10 userAccessMode = "Restricted" } }) }
Инициализация Terraform
Запустите terraform init, чтобы инициализировать развертывание Terraform. Эта команда скачивает поставщик Azure, необходимый для управления ресурсами Azure.
terraform init -upgrade
Основные моменты:
- Параметр
-upgrade
обновляет необходимые подключаемые модули поставщика до последней версии, которая соответствует ограничениям версии конфигурации.
Создание плана выполнения Terraform
Чтобы создать план выполнения, выполните terraform plan.
terraform plan -out main.tfplan
Основные моменты:
- Команда
terraform plan
создает план выполнения, но не выполняет его. Вместо этого она определяет, какие действия необходимы для создания конфигурации, заданной в файлах конфигурации. Этот шаблон позволяет проверить, соответствует ли план выполнения вашим ожиданиям, прежде чем вы начнете вносить изменения в фактические ресурсы. - Необязательный параметр
-out
позволяет указать выходной файл для плана. Использование параметра-out
гарантирует, что проверяемый план полностью соответствует применяемому.
Применение плана выполнения Terraform
Выполните terraform apply, чтобы применить план выполнения к вашей облачной инфраструктуре.
terraform apply main.tfplan
Основные моменты:
- В примере
terraform apply
команды предполагается, что вы ранее выполнили.terraform plan -out main.tfplan
- Если для параметра
-out
указано другое имя файла, используйте то же имя в вызове кterraform apply
. - Если вы не использовали параметр
-out
, вызовитеterraform apply
без параметров.
Проверка результатов
- Убедитесь, что ключи указаны в результате применения terraform.
Очистка ресурсов
Если вам больше не нужны ресурсы, созданные через Terraform, выполните следующие действия:
Выполните команду terraform plan и укажите флаг
destroy
.terraform plan -destroy -out main.destroy.tfplan
Основные моменты:
- Команда
terraform plan
создает план выполнения, но не выполняет его. Вместо этого она определяет, какие действия необходимы для создания конфигурации, заданной в файлах конфигурации. Этот шаблон позволяет проверить, соответствует ли план выполнения вашим ожиданиям, прежде чем вы начнете вносить изменения в фактические ресурсы. - Необязательный параметр
-out
позволяет указать выходной файл для плана. Использование параметра-out
гарантирует, что проверяемый план полностью соответствует применяемому.
- Команда
Выполните команду terraform apply, чтобы применить план выполнения.
terraform apply main.destroy.tfplan
Устранение неполадок с Terraform в Azure
Устранение распространенных проблем при использовании Terraform в Azure