2016-08-15 79 views
2

我正在尝试执行下面给出的示例terraform计划。执行Terraform执行计划时的凭据失败

# 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]以产生凭证和所使用的正确subscription_id,CLIENT_ID,client_secret,tenant_id在上述计划和执行的“terraform计划”反对。但是我收到了错误。

错误刷新状态:1个错误发生:

  • 凭据acessing在Azure资源管理器API很可能是不正确,或 服务主体没有使用Azure的服务管理权限 API。

[1] https://azure.microsoft.com/en-us/documentation/articles/resource-group-create-service-principal-portal/

在此任何想法?

+0

您需要自动部署权限,这不是因为您可以在可以使用terraform的门户中创建VM。您需要首先访问它。 –

回答

1

看起来在terraform文档中,他们没有包括将角色分配给服务主体的步骤。按照这些步骤,它的工作原理。

1)通过Azure CLI通过以下链接https://azure.microsoft.com/en-us/documentation/articles/resource-group-authenticate-service-principal-cli/创建服务主体,该链接将角色分配给服务主体 2)转到Azure RM门户 - > Active Directory - >应用程序注册 - >创建密钥 3)在.tf文件中使用上面的相应值。

然后运行命令terraform plan。

+0

好像现在已经更新,只需按照下面的步骤操作即可.https://www.terraform.io/docs/providers/azurerm/r/virtual_machine.html – Vikram

+0

对不起,这是这个链接。 https://www.terraform.io/docs/providers/azurerm/index.html – Vikram