执行 Terraform 执行计划时出现凭据失败
Posted
技术标签:
【中文标题】执行 Terraform 执行计划时出现凭据失败【英文标题】:Credential Failure while executing Terraform execution plan 【发布时间】:2016-12-21 07:04:09 【问题描述】:我正在尝试执行下面给出的示例地形计划。
# 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 应用程序生成凭据,并在上述计划中使用了正确的订阅 ID、客户端 ID、客户端秘密、租户 ID,并针对它执行了“terraform 计划”。但我遇到了错误。
错误刷新状态:发生 1 个错误:
访问 Azure 资源管理器 API 的凭据可能不正确,或者 服务主体无权使用 Azure 服务管理 API。[1]https://azure.microsoft.com/en-us/documentation/articles/resource-group-create-service-principal-portal/
对此有什么想法吗?
【问题讨论】:
您需要自动部署权限,并不是因为您可以在门户中创建虚拟机才能使用 terraform。您需要先访问它。 【参考方案1】:似乎在 terraform 文档中,他们没有包括将角色分配给服务主体的步骤。按照以下步骤操作即可。
1) 通过 Azure CLI 访问此链接 https://azure.microsoft.com/en-us/documentation/articles/resource-group-authenticate-service-principal-cli/ 创建服务主体,该链接还将角色分配给服务主体 2) 转到 Azure RM 门户-->活动目录-->应用注册-->创建密钥 3) 在 .tf 文件中使用上述适当的值。
然后运行命令 terraform plan。
【讨论】:
现在好像已经更新了,一步一步来就可以了。terraform.io/docs/providers/azurerm/r/virtual_machine.html 对不起,是这个链接。 terraform.io/docs/providers/azurerm/index.html以上是关于执行 Terraform 执行计划时出现凭据失败的主要内容,如果未能解决你的问题,请参考以下文章