首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Azure刷新状态的Terraform计划失败

Azure刷新状态的Terraform计划失败
EN

Stack Overflow用户
提问于 2019-08-01 07:36:12
回答 1查看 384关注 0票数 0

成功登录后的Terraform计划返回以下错误。不确定为什么Terraform在刷新状态时会抱怨无效的凭据,即使凭据已成功执行。

代码语言:javascript
复制
    terraform plan
  `[0m[1mRefreshing Terraform state in-memory prior to plan...[0m The refreshed state will be used to calculate this plan, but will not be persisted to local or remote state storage.
[0m
[31m
[1m[31mError: [0m[0m[1mError refreshing state: 1 error occurred:
    * provider.azurerm: Error building AzureRM Client: Error populating Client ID from the Azure CLI: No Authorization Tokens were found - please re-authenticate using `  `az login`.
EN

回答 1

Stack Overflow用户

发布于 2019-08-01 10:47:55

为了在Terraform for Azure中进行身份验证,Azure CLI和Azure服务主体是我们通常使用的两种方式。

要使用Azure CLI,通常我们不会在terraform中设置provider块,或者只像下面这样设置provider:

代码语言:javascript
复制
provider "azurerm" {

  version = "=1.28.0"

}

我建议您不要在Terraform文件中设置提供程序。如果租户有多个订阅,您还可以在通过Azure CLI登录时设置特殊订阅。

要使用Azure服务主体,您需要在terraform中设置提供程序块,如下所示:

代码语言:javascript
复制
provider "azurerm" {

  version = "=1.28.0"

  subscription_id = "00000000-0000-0000-0000-000000000000"
  client_id       = "00000000-0000-0000-0000-000000000000"
  client_secret   = "xxxxxxx"
  tenant_id       = "00000000-0000-0000-0000-000000000000"
}

我认为,该错误可能显示您在Terraform提供程序中设置了客户端Id,并且它与您成功登录的CLI不同。

正如您所说,您已经通过Azure CLI成功登录,所以最简单的方法就是删除Terraform文件中的提供者。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57300090

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档