我正在尝试执行下面给出的示例地形计划。
# Configure the Microsoft Azure Provider
provider "azurerm" {
subscription_id = "..."
client_id = "..."
client_secret = "..."
tenant_id = "..."
}
# Create a resource group
resource "azurerm_resource_group" "production" {
name = "production"
location = "West US"
}
# Create a virtual network in the web_servers resource group
resource "azurerm_virtual_network" "network" {
name = "productionNetwork"
address_space = ["10.0.0.0/16"]
location = "West US"
resource_group_name = "${azurerm_resource_group.production.name}"
subnet {
name = "subnet1"
address_prefix = "10.0.1.0/24"
}
subnet {
name = "subnet2"
address_prefix = "10.0.2.0/24"
}
subnet {
name = "subnet3"
address_prefix = "10.0.3.0/24"
}
}`enter code here`
我按照 [1] 通过创建 Active Directory 应用程序生成凭据,并在上述计划中使用了正确的 subscription_id、client_id、client_secret、tenant_id 并对其执行了“terraform plan”。但我遇到了以下错误。
刷新状态时出错:发生 1 个错误:
- 访问 Azure 资源管理器 API 的凭据可能不正确,或者 服务主体无权使用 Azure 服务管理 API。
对此有什么想法吗?
最佳答案
似乎在 terraform 文档中,他们没有包含向服务主体分配角色的步骤。按照以下步骤操作即可。
1) 按照此链接 https://azure.microsoft.com/en-us/documentation/articles/resource-group-authenticate-service-principal-cli/ 通过 Azure CLI 创建服务主体它将角色分配给服务主体 2) 转到Azure RM门户-->Active Directory-->应用程序注册-->创建 key 3) 在 .tf 文件中使用上面的适当值。
然后运行命令 terraform plan。
关于azure - 执行 Terraform 执行计划时凭证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38948910/