Azure VM 使用 Terraform 将动态 IP 转换为静态 IP
Azure VM Convert Dynamic IP to Static Using Terraform
我的客户希望使用通过 Azure RM Terraform 提供程序动态分配的地址将动态分配给其 VM NIC 的私有 IP 地址转换为静态地址。我在 ARM 中看到过一些示例,其中静态的 NIC 在嵌套的 ARM 模板中,但如何使用 Terraform 完成?
我们最初尝试将私有 IP 动态地址转换为静态结果,结果我们的 VM 组合创建了两个 NIC,即使使用了 NIC 的先前名称也是如此。
有没有办法不用运行两次合成就可以更新网卡配置?
感谢对此的任何想法。
布莱恩
要将动态私有 IP 地址转换为静态私有 IP 地址,我们可以调用带有 terraform 的脚本来管理它,因为 Azure 在网络接口连接到 运行 虚拟机之前不会分配动态 IP 地址(或其他资源)。
例如,您可以使用 local-exec Provisioner 在创建资源后调用本地可执行文件。
resource "null_resource" "example" {
provisioner "local-exec" {
command = <<EOT
$Nic = Get-AzNetworkInterface -ResourceGroupName ${azurerm_resource_group.main.name} -Name ${azurerm_network_interface.nic.name}
$Nic.IpConfigurations[0].PrivateIpAllocationMethod = "Static"
Set-AzNetworkInterface -NetworkInterface $Nic
EOT
interpreter = ["PowerShell", "-Command"]
}
}
是我 post 在您获得参考之前的答案。
我的客户希望使用通过 Azure RM Terraform 提供程序动态分配的地址将动态分配给其 VM NIC 的私有 IP 地址转换为静态地址。我在 ARM 中看到过一些示例,其中静态的 NIC 在嵌套的 ARM 模板中,但如何使用 Terraform 完成?
我们最初尝试将私有 IP 动态地址转换为静态结果,结果我们的 VM 组合创建了两个 NIC,即使使用了 NIC 的先前名称也是如此。
有没有办法不用运行两次合成就可以更新网卡配置?
感谢对此的任何想法。 布莱恩
要将动态私有 IP 地址转换为静态私有 IP 地址,我们可以调用带有 terraform 的脚本来管理它,因为 Azure 在网络接口连接到 运行 虚拟机之前不会分配动态 IP 地址(或其他资源)。
例如,您可以使用 local-exec Provisioner 在创建资源后调用本地可执行文件。
resource "null_resource" "example" {
provisioner "local-exec" {
command = <<EOT
$Nic = Get-AzNetworkInterface -ResourceGroupName ${azurerm_resource_group.main.name} -Name ${azurerm_network_interface.nic.name}
$Nic.IpConfigurations[0].PrivateIpAllocationMethod = "Static"
Set-AzNetworkInterface -NetworkInterface $Nic
EOT
interpreter = ["PowerShell", "-Command"]
}
}