Обновите существующий сервис приложений с помощью Terraform - PullRequest
0 голосов
/ 21 сентября 2019

в моей учетной записи Azure a есть некоторые ресурсы.Группы ресурсов, службы приложений, учетные записи хранения ... Я создал эти ресурсы с помощью портала Azure или Powershell.Затем я написал скрипт Terraform для добавления других ресурсов и обновления некоторых из существующих.В частности, я заинтересован в обновлении службы приложений.Я хочу добавить некоторые настройки и управляемую идентичность к нему.Что происходит, так это то, что terraform говорит: «посмотрите, уже есть служба приложений с указанным вами именем».Я пытался использовать «импорт terraform», чтобы привязать существующую службу приложений к моему файлу состояния terrafom, но при этом я теряю настройки, которые я поместил в файл terraform.

Как я могу решить эту проблему?Спасибо.

1 Ответ

1 голос
/ 22 сентября 2019

terraform import это путь.Если у вас есть какие-либо настройки в вашем файле: просто удаляйте их до тех пор, пока вы полностью не импортируете службу приложения.

Полный учебник - с группой ресурсов вместо службы приложения, но принцип тот же: https://azurecitadel.com/automation/terraform/lab6/#lab-importing-resources

  • Создать группу ресурсов:
Grab the ID for the azure resource: id=$(az group show --name deleteme --query id --output tsv)

Создать пустой раздел для ресурса в новом файле import.tf

resource "azurerm_resource_group" "deleteme" {}
  • Запустите команду импорта:
terraform import azurerm_resource_group.deleteme $id
terraform-labs$ terraform import azurerm_resource_group.deleteme $id
Acquiring state lock. This may take a few moments...
azurerm_resource_group.deleteme: Importing from ID "/subscriptions/2d31be49-d999-4415-bb65-8aec2c90ba62/resourceGroups/deleteme"...
azurerm_resource_group.deleteme: Import complete!
  Imported azurerm_resource_group (ID: /subscriptions/2d31be49-d999-4415-bb65-8aec2c90ba62/resourceGroups/deleteme)
azurerm_resource_group.deleteme: Refreshing state... (ID: /subscriptions/2d31be49-d999-4415-bb65-8aec2c90ba62/resourceGroups/deleteme)

Import successful!

The resources that were imported are shown above. These resources are now in
your Terraform state and will henceforth be managed by Terraform.
  • Выполните terraform plan, и вы должны увидеть некоторые ошибки, поскольку наш блок не заполнен
  • Выполнить terraform state show azurerm_resource_group.deleteme
id       = /subscriptions/2d31be49-d999-4415-bb65-8aec2c90ba62/resourceGroups/deleteme
location = westeurope
name     = deleteme
tags.%   = 0
  • Добавьте аргумент имени и местоположение, используя переменную loc
  • Повторите план terraform, и он не должен показывать ошибок и никаких запланированных изменений
  • Ресурс полностью импортирован и находится под контролем Terraform.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...