Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом кратком руководстве вы создадите учетную запись служба автоматизации Azure и используйте Terraform, чтобы назначить роль читателя учетной записи. Учетная запись службы автоматизации — это облачная служба, которая предоставляет безопасную среду для запуска модулей Runbook, которые являются скриптами, которые автоматизируют процессы. Учетная запись может автоматизировать частые, трудоемкие и подверженные ошибкам задачи, управляемые в облаке. Эта учетная запись службы автоматизации создается в группе ресурсов Azure, которая является контейнером, который содержит связанные ресурсы для решения Azure. Кроме того, роль "Читатель" назначается учетной записи службы автоматизации, предоставляя подписке разрешение на просмотр всех ресурсов в учетной записи службы автоматизации, но не вносит никаких изменений.
Terraform поддерживает определение, предварительный просмотр и развертывание облачной инфраструктуры. С помощью Terraform можно создавать файлы конфигурации с применением синтаксиса HCL. Синтаксис HCL позволяет указать поставщика облачных служб, например Azure, и элементы, составляющие облачную инфраструктуру. После создания файлов конфигурации создается план выполнения, который позволяет предварительно просматривать изменения инфраструктуры до их развертывания. После проверки изменений примените план выполнения для развертывания инфраструктуры.
Вы узнаете, как выполнять следующие задачи:
- Создайте группу ресурсов Azure с уникальным именем.
- Создайте случайную строку для уникального именования ресурсов Azure.
- Создайте учетную запись службы автоматизации и включите доступ к общедоступной сети.
- Получите текущую подписку Azure.
- Получение определения роли для "Читатель".
- Назначьте роль "Читатель" учетной записи службы автоматизации.
- Выводит имена созданной группы ресурсов и учетной записи службы автоматизации.
Необходимые компоненты
Создайте учетную запись Azure с активной подпиской. Вы можете создать учетную запись бесплатно. Параметры новой учетной записи службы автоматизации упорядочены на вкладки на странице "Создание учетной записи службы автоматизации" портал Azure.
Установите и настройте Terraform.
Реализация кода Terraform
Примечание.
Пример кода для этой статьи находится в репозитории Azure Terraform GitHub. Вы можете просмотреть файл журнала, содержащий результаты теста из текущих и предыдущих версий Terraform.
Создайте каталог, в котором необходимо протестировать и запустить пример кода Terraform и сделать его текущим каталогом.
Создайте файл с именем
main.tfи вставьте следующий код:resource "random_pet" "rg_name" { prefix = var.resource_group_name_prefix } resource "azurerm_resource_group" "rg" { location = var.resource_group_location name = random_pet.rg_name.id } resource "random_string" "azurerm_automation_account_name" { length = 13 lower = true numeric = false special = false upper = false } resource "azurerm_automation_account" "example" { name = coalesce(var.automation_account_name, "autoacc-${random_string.azurerm_automation_account_name.result}") resource_group_name = azurerm_resource_group.rg.name location = azurerm_resource_group.rg.location sku_name = "Basic" identity { type = "SystemAssigned" } public_network_access_enabled = true } data "azurerm_subscription" "current" {} data "azurerm_role_definition" "contributor" { name = "Contributor" } resource "azurerm_role_assignment" "example" { scope = data.azurerm_subscription.current.id role_definition_name = "Contributor" principal_id = azurerm_automation_account.example.identity[0].principal_id }Создайте файл с именем
outputs.tfи вставьте следующий код:output "resource_group_name" { value = azurerm_resource_group.rg.name } output "automation_account_name" { value = azurerm_automation_account.example.name }Создайте файл с именем
providers.tfи вставьте следующий код:terraform { required_version = ">=1.0" required_providers { azurerm = { source = "hashicorp/azurerm" version = "~>3.0" } random = { source = "hashicorp/random" version = "~>3.0" } } } provider "azurerm" { features {} }Создайте файл с именем
variables.tfи вставьте следующий код:variable "resource_group_name_prefix" { type = string default = "rg" description = "Prefix of the resource group name that's combined with a random ID so name is unique in your Azure subscription." } variable "resource_group_location" { type = string default = "eastus" description = "Location of the resource group." } variable "automation_account_name" { type = string description = "The name of the Automation Account resource. The value will be randomly generated if blank." default = "" }
Инициализация 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без параметров.
Проверка результатов
Получите имя группы ресурсов Azure.
resource_group_name=$(terraform output -raw resource_group_name)Получите имя учетной записи службы автоматизации.
automation_account_name=$(terraform output -raw automation_account_name)Запустите
az automation account show, чтобы просмотреть учетную запись службы автоматизации.az automation account show --name $automation_account_name --resource-group $resource_group_name
Очистка ресурсов
Если вам больше не нужны ресурсы, созданные через 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.
Следующие шаги
В этом кратком руководстве вы создали учетную запись службы автоматизации. Дополнительные сведения см. в статьях об учетных записях службы автоматизации.
Чтобы использовать управляемые удостоверения с учетной записью службы автоматизации, перейдите к следующим параметрам: