Terraform Plan 停留在 Terraform:ADO 管道中的计划任务

Pal*_*lab 2 azure azure-web-app-service azure-devops azure-pipelines terraform-provider-azure

在此输入图像描述我尝试按照以下链接通过 Azure Dev Ops Pipeline 使用 Terraform 部署应用程序服务

Azure开发运营实验室

我的地形文件如下:

网络应用程序.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
}
Run Code Online (Sandbox Code Playgroud)

变种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" {}
Run Code Online (Sandbox Code Playgroud)

实际值在管道变量中给出

我直接使用开源 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:
Run Code Online (Sandbox Code Playgroud)

小智 6

从非交互式管道中运行 Terraform 时,您必须添加该标志-input=false,否则 Terraform 将挂起等待用户输入。

请参阅此处的文档:https ://www.terraform.io/cli/commands/plan#input-false