我有一个 main.tf 文件,它创建了我的 Azure VM 和一个用于配置 Azure VM 的 Virtualbox Ubuntu VM。
data "azurerm_public_ip" "vm-publicip" {
name = azurerm_public_ip.public.name
resource_group_name = azurerm_resource_group.main.name
}
output "vm-publicip" {
value = data.azurerm_public_ip.vm-publicip.ip_address
}
您能否建议如何自动将 Azure VM 的公共 IP 地址传递给 Virtualbox VM 上的 Ansible,以便它可以自动配置 Azure VM?
我想一个可行的解决方案可能是在 Ubuntu VM 上运行 Terraform,但是有没有可以使用的选项?
terraform_data
资源。然后你会做类似以下的事情:
data "azurerm_public_ip" "vm-publicip" {
name = azurerm_public_ip.public.name
resource_group_name = azurerm_resource_group.main.name
}
resource "terraform_data" "ansible" {
provisioner "local-exec" {
command = "echo ${data.azurerm_public_ip.vm-publicip.ip_address} >> /etc/ansible/hosts"
}
}
output "vm-publicip" {
value = data.azurerm_public_ip.vm-publicip.ip_address
}