gpt4 book ai didi

azure - Terraform - 如何动态创建资源

转载 作者:行者123 更新时间:2023-12-03 01:13:22 25 4
gpt4 key购买 nike

我正在学习如何使用 terraform,目前我正在使用它来创建 Linux 或 Windows 虚拟机。

在我的 main.tf 中,我使用了一些资源,例如

resource "azurerm_linux_virtual_machine" "this" {
name = var.vm_name
location = var.resources_location.name
resource_group_name = azurerm_resource_group.rg.name
network_interface_ids = [azurerm_network_interface.this.id]
size = var.vm_size
admin_username = var.user
admin_password = var.pass
disable_password_authentication = false
...
}

根据我所读到的内容,创建我必须使用的 Windows VM:

resource "azurerm_windows_virtual_machine" "example" {
name = "example-machine"
resource_group_name = azurerm_resource_group.example.name
location = azurerm_resource_group.example.location
size = "Standard_F2"
admin_username = "adminuser"
admin_password = "P@$$w0rd1234!"
network_interface_ids = [
azurerm_network_interface.example.id,
]
}

问题是,如何创建 Linux 机器和 Windows 机器。因此,我想我可以使用一些逻辑,如果我想创建 Linux 虚拟机,可以使用 azurerm_linux_virtual_machine;如果我想创建 Windows 虚拟机,可以使用 azurerm_windows_virtual_machine

不确定这是否是最合适的方式,但你能给我指出正确的方向吗?并告诉我如何在 main.tf 中实现一些逻辑,以便我可以使用我的 main.tf,它已经适用于 Linux 计算机,但也可以将其重新用于 Windows VM。

最佳答案

对于有条件创建的资源,您可以使用 count 。例如,您可以有一个名为“make_linux”的新变量:

variable "make_linux" {
default = true
}


resource "azurerm_linux_virtual_machine" "this" {
count = var.make_linux == true ? 1 : 0
# ...
}

resource "azurerm_windows_virtual_machine" "example" {
count = var.make_linux == true ? 0 : 1
# ...
}

这将基于 var.make_linux 创建 Windows 或 Linux 计算机。

关于azure - Terraform - 如何动态创建资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/76558825/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com