I я пытаюсь перейти по ссылке ниже, чтобы развернуть службу приложений с помощью Terraform через Azure Dev Ops Pipeline.
Мои файлы terraform приведены ниже:
webapp.tf
terraform {
required_version = "~> 1.0"
backend "azurerm" {
storage_account_name = "__terraformstorageaccount__"
container_name = "terraform"
key = "terraform.tfstate"
}
}
provider "azurerm" {
tenant_id = var.tenant_id
client_id = var.client_id
client_secret = var.client_secret
subscription_id = var.subscription_id
features {}
}
resource "azurerm_resource_group" "dev" {
name = var.resource_group_name
location = var.resource_group_location
}
resource "azurerm_app_service_plan" "dev" {
name = var.appserviceplan
location = var.resource_group_location
resource_group_name = var.resource_group_name
sku {
tier = "Free"
size = "F1"
}
depends_on = [
azurerm_resource_group.dev
]
}
resource "azurerm_app_service" "dev" {
name = var.appservicename
location = azurerm_app_service_plan.dev.location
resource_group_name = azurerm_app_service_plan.dev.location
app_service_plan_id = azurerm_app_service_plan.dev.id
}
вар.tf
variable "client_id" {}
variable "client_secret" {}
variable "tenant_id" {}
variable "subscription_id" {}
variable "appserviceplan" {}
variable "appservicename" {}
variable "resource_group_name" {}
variable "resource_group_location" {}
Фактические значения указаны в переменных конвейера.
Я развернул ту же службу приложений напрямую, используя terraform с открытым исходным кодом, и все работало нормально.
Но шаг «Terraform:Plan» застрял в конвейере выпуска, как показано на снимке экрана. Любая идея, почему это происходит, и план не завершается должным образом
Я отключил Terraform Init и включил отладку. Но Terraform Apply по-прежнему не работает, и я вижу следующие журналы. Задача никогда не заканчивается
Задача применения Terraform
Exit code 0 received from tool 'C:\hostedtoolcache\windows\terraform\1.1.5\x64\terraform.exe'
STDIO streams have closed for tool 'C:\hostedtoolcache\windows\terraform\1.1.5\x64\terraform.exe'
provider=azurerm
commandOptions=-auto-approve
workingDirectory=C:\hostedtoolcache\windows\terraform
environmentServiceNameAzureRM=a8ee372e-0734-4e50-aa5a-e19d9e5f2a62
which 'terraform'
found: 'C:\hostedtoolcache\windows\terraform\1.1.5\x64\terraform.exe'
which 'C:\hostedtoolcache\windows\terraform\1.1.5\x64\terraform.exe'
found: 'C:\hostedtoolcache\windows\terraform\1.1.5\x64\terraform.exe'
C:\hostedtoolcache\windows\terraform\1.1.5\x64\terraform.exe arg: apply
C:\hostedtoolcache\windows\terraform\1.1.5\x64\terraform.exe arg: -auto-approve
a8ee372e-0734-4e50-aa5a-e19d9e5f2a62 auth param serviceprincipalid = ***
a8ee372e-0734-4e50-aa5a-e19d9e5f2a62 auth param serviceprincipalkey = ***
a8ee372e-0734-4e50-aa5a-e19d9e5f2a62 data subscriptionid = xxxx-xxxx-xxxx
a8ee372e-0734-4e50-aa5a-e19d9e5f2a62 auth param tenantid = xxxx-xxxxxx
a8ee372e-0734-4e50-aa5a-e19d9e5f2a62 auth param serviceprincipalid = ***
a8ee372e-0734-4e50-aa5a-e19d9e5f2a62 auth param serviceprincipalkey = ***
exec tool: C:\hostedtoolcache\windows\terraform\1.1.5\x64\terraform.exe
arguments:
При запуске Terraform из неинтерактивного конвейера вы должны добавить флаг -input=false
, иначе Terraform зависнет в ожидании пользовательского ввода.
См. документацию здесь: https://www.terraform.io/cli/commands/plan#input-false
Хорошо, после добавления input=false все заработало. Большое спасибо за твою помощь.
Я получаю это сообщение сейчас после того, как указал -input=false в дополнительных аргументах команды в задаче terraform:plan