我在运行"terraform计划"时遇到此错误。我通过CLI向Azure验证了terraform。我已设置帐户订阅。如何解决此问题?错误:构建AzureRM客户端:请确保已安装Azure CLI版本2.0.79或更高版本。从Azure CLI分析JSON结果时出错:正在启动Azure CLI:执行:"az":在%PATH %中找不到可执行文件。
hec6srdp1#
错误提示未找到az。因此,对于这种类型的错误,简单的解决方法是登录Azure,如下所示:
az login
然后错误出现:
然后,您可以检查您的订阅一次如下:
az account list
和以下登录步骤,我得到了解决我的问题。并检查您是否使用最新的Azure Cli版本。并尝试以下命令:
az account get-access-token
参考文献摘自:
flseospp2#
Terraform云需要Azure访问权限,因为您的计划在云上运行。首先,您需要为azure创建一个服务主体
az ad sp create-for-rbac --role="Contributor" --scopes="/subscriptions/SUBSCRIPTION_ID"
请参阅本教程:https://developer.hashicorp.com/terraform/tutorials/azure-get-started/azure-build创建服务主体后,您将得到以下响应:
{ "appId": "...", - client_id "displayName": "...", "password": "...", - client_secret "tenant": "..." - tenant_id }
然后,您可以使用以下方法之一为terraform提供Azure访问:1.通过地形云GUI添加工作空间变量。它们将被视为环境变量。
ARM_CLIENT_ID="..." ARM_CLIENT_SECRET="..." ARM_SUBSCRIPTION_ID="..." ARM_TENANT_ID="..."
1.或者将它们包含在. tf文件中。
provider "azurerm" { features {} subscription_id = '...' client_id = '...' client_secret = '...' tenant_id = '...' }
然而,在config中设置敏感数据并不是一个好主意。这就是为什么你可以使用方法#3:1.在. tf文件中声明变量并通过命令行传递
provider "azurerm" { features {} subscription_id = var.subscription-id client_id = var.client-id client_secret = var.secret tenant_id = var.tenant-id }
terraform apply -var client-id='...' -var tenant-id='...' -var...
有关详细信息,请参见此答案:https://discuss.hashicorp.com/t/using-the-azure-provider-with-terraform-cloud/18177/2
2条答案
按热度按时间hec6srdp1#
错误提示未找到az。因此,对于这种类型的错误,简单的解决方法是登录Azure,如下所示:
然后错误出现:
然后,您可以检查您的订阅一次如下:
和以下登录步骤,我得到了解决我的问题。并检查您是否使用最新的Azure Cli版本。并尝试以下命令:
参考文献摘自:
flseospp2#
Terraform云需要Azure访问权限,因为您的计划在云上运行。
首先,您需要为azure创建一个服务主体
请参阅本教程:https://developer.hashicorp.com/terraform/tutorials/azure-get-started/azure-build
创建服务主体后,您将得到以下响应:
然后,您可以使用以下方法之一为terraform提供Azure访问:
1.通过地形云GUI添加工作空间变量。它们将被视为环境变量。
1.或者将它们包含在. tf文件中。
然而,在config中设置敏感数据并不是一个好主意。这就是为什么你可以使用方法#3:
1.在. tf文件中声明变量并通过命令行传递
有关详细信息,请参见此答案:https://discuss.hashicorp.com/t/using-the-azure-provider-with-terraform-cloud/18177/2