问题标签 [terraform-provider-azure]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
11024 浏览

azure - 通过 Terraform 创建 Azure Windows VM

在 Azure 中,我正在尝试使用 Terraform 创建一个 Windows VM。我之前使用 Template.json 文件通过 Powershell 完成了此操作。现在我必须处理 terraform,我对它完全陌生。所以我搜索了一些在 Azure 中创建 VM 的示例脚本并找到了这个

在此链接中,有一个用于旋转 Linux VM 的示例 Terraform 脚本。但我需要从图像中旋转 Windows VM。我应该在哪里提供图像详细信息。我的完整要求是:

  1. 从映像创建 Windows VM(具有资源 ID)
  2. 我已经创建了资源组、虚拟网络、子网。我只需要传递这些值并创建它们。
  3. 我们已经从门户本身定义了子网地址前缀、Vnet 地址空间。所以我必须在脚本中再次给出还是可以跳过它。
  4. 业务要求是任何虚拟机都不应该有公共 IP 和 DNS 名称,所以如果我删除“# Create public IPs”部分,那不会创建公共 IP 吗?

创建Linux机器的脚本在这里,我将其作为参考。

0 投票
1 回答
2414 浏览

azure - 在使用 terraform 在 Azure 中创建网络接口时,使用现有的子网详细信息而不是再次创建

我正在尝试使用以下脚本通过 terraform 在 Azure 中创建网络接口:

此脚本创建子网Subnet1并将其分配Subnet.idipconfiguration.

.tf但是,如果我必须通过另一个具有相同的文件再次创建另一个网络接口Subnet1,我该怎么做才能${azurerm_subnet.internal.id}再次获得该值。

也就是说,如果子网已经存在并且我不想创建它,我如何设置这些值并使用它们?

编辑

我发现,在 powershell 中,这是用于确定子网 id 的脚本:

其中 VNetRG - VNet 的资源组,
VNetName - VNet 的名称,
Subnet1 - 子网的名称。

谁能告诉我 terraform 中的等效脚本是什么?

0 投票
1 回答
358 浏览

permissions - 使用 Terraform 在 appRegistration azure 中赋予所有者角色的问题

我正在使用 Terraform 在 Azure 中创建应用注册。

之后,我尝试将所有者权限授予其他人(我自己),但它不允许我这样做。

我正在使用的命令序列是:

但我收到以下错误消息:

有谁知道如何将所有者角色赋予 ObjectID 8c7b71b3-cf32-4da5-9bbb-5e5dd249c607 的人?

谢谢,胡安拉

0 投票
1 回答
384 浏览

terraform - 我可以在 Terraform 中为自动生成的资源选择名称吗?

我正在使用 Terraform 生成 Azure Kubernetes 服务集群(以及其他东西),当我运行 Terraform 时,它会自动生成 AKS 集群使用的不同资源。我可以在 AKS 群集上选择自定义名称,但自动生成的资源接近随机名称。

有没有办法在 Terraform 中的这些自动生成的资源上选择我自己的自定义名称?

例子:

这会产生:

myCluster- Kubernetes 服务

aks-agentpool-74438003-nsg- 网络安全组

aks-agentpool-74438003-routetable- 路由表

aks-default-74438003-0- 虚拟机

aks-default-74438003-0_OsDisk_1_5d379bc3205545e1bcd3f88ec9605- 磁盘

aks-default-74438003-nic-0- 网络接口

aks-vnet-74438003- 虚拟网络

default-availabilitySet-74438003- 可用性集

例如,我可以选择是否需要那个aks前缀吗?那个重复的数字是多少?我可以基本自定义这些吗?

0 投票
2 回答
585 浏览

azure - Terraform 中的 Azure 单一数据库通用版

所以我需要通过 Terraform 在 Azure 中创建一个单一的数据库。要求是 8vCores/3TB。

我应该在资源参数“azurerm_sql_database”-->“edition”中传递的版本应该是什么?

https://www.terraform.io/docs/providers/azurerm/r/sql_database.html上的文档 说——有效值为:Basic、Standard、Premium 或 DataWarehouse。

但是当我通过门户创建一个类似的数据库并查询数据库时,它说版本是'GeneralPurpose'。

0 投票
1 回答
140 浏览

azure-aks - terraform azurerm_kubernetes_cluster 节点

我在 terraform 中绑定了不同的方法来获取 azurerm_kubernetes_cluster 的虚拟机列表,但没有成功。这里有许多可能的元素:https ://www.terraform.io/docs/providers/azurerm/d/kubernetes_cluster.html但其中没有允许获取 VM 列表的接缝。有办法吗?

0 投票
2 回答
3188 浏览

azure - 通过 Terraform 创建 Azure 自动化启动/停止解决方案

我正在尝试使用新的 Azure 自动化插件(https://docs.microsoft.com/en-us/azure/automation/automation-solution-vm-management)将机器设置为自动启动/停止这是由 Terraform 设置的。

我可以创建自动化帐户,但我不知道如何创建启停功能,有人可以帮忙填空吗?

0 投票
0 回答
424 浏览

terraform-provider-azure - 引用其他资源组中的资源

在 Azure 中,我使用 Terraform 将基础架构部署到资源组 02 (rg02)。我在资源组 01 (rg01) 中有一个 VNet (nvn01) 和子网 (subnet-000),需要在main.tf.

我尝试了三种方法:

方法一

提供子网 ID 作为变量。子网 ID 已从Resource Explorer复制并粘贴。init不会产生任何错误,但是会plan产生:

.tfvars 包含以下行:

我想知道 CaSe 是否存在问题,因为 RG 和 VNet 以大写形式出现。我知道 Azure 有时会引起人们的注意。


方法二

此方法存在错误 #2016,已在未发布的版本 1.17.0 中修复。使用data{},我因此引用子网:

在我的资源中,称之为subnet_id = "${data.azurerm_subnet.shared.id}"

init在上述错误很明显的阶段出现此错误。我试图通过version = "1.17.0"provider{}声明中设置来告诉 TF 使用 1.17.0,但它被忽略了,我最终得到1.16.0.


方法三

我也尝试过方法 2,但没有使用azurerm_subnet; 选择azurerm_virtual_network并使用以下方法调用它:

但是错误与方法 2 相同,我注意到资源组位于错误的位置。我希望 1.17.0 修复了这两个错误。

在ARM模板中,我记得ResourceId('subnetId')在这种情况下必须使用一个,所以我想知道TF中是否有类似的功能。也许我必须为子网 ID 路径添加前缀?

无论如何,由于 Azure 提供程序的例子很少,至少可以说,如果有人有任何指示,如果你能分享,我将不胜感激,在无需自己构建或修复的情况下下载 1.17.0子网标识。

TIA。

0 投票
1 回答
13452 浏览

terraform - IP 地址变量的未知令牌 IDENT 列表错误

我在 .tfvars 变量中将变量定义为

变量.tfvars

构建-windows.tf

在 build-windows.tf 文件中,我收到错误为 Unknow token ident list?

不知道我在这里做错了什么,我什至不明白为什么 terraform 要我使用列表而不是字符串。当我使用字符串时,我在terraform 计划中收到一个错误,指出我必须使用列表。

哪儿也不去。

请协助

0 投票
1 回答
1048 浏览

terraform - 如何引用导入的 terraform 资源

我需要你的帮助。我们创建了一个资源组 ( rg_networking ) 和虚拟网络 ( vnet_preprod ) 以及其中的 5 个子网 ( subnet_ad )、subnet_app、subnet_ctl 等。

我的资源导入工作得很好,但是,我不知道是使用/引用导入的资源吗?

导入的资源如上所示。这些资源现在处于您的 Terraform 状态,今后将由 Terraform 管理。

在我的windows-build-tf文件中

我必须插入上面的代码片段,否则导入将不起作用。

我之前的工作配置,使用 Terraform 创建所有内容而不使用任何导入的资源,如下所示:

变量.tfvars

构建-windows.tf

我的问题是如何引用导入的资源,我更喜欢它们是参数化的,但如果不可能,那么硬编码值将是前进的方式吗?我需要在同一个资源组中创建我的虚拟机吗?

我可以看到它们在状态文件中导入,请指导,因为我对 Azure 和 Terraform 非常陌生。

非常感谢!