Я пытаюсь запустить поставщика удаленного исполнения на ресурсе виртуальной машины vsphere, в котором IP-адрес назначается через DHCP, а не через статический IP-адрес на сетевом адаптере (из-за проблем TF в Ubuntu 18.04).
Я обнаружил, что при попытке запустить средство обеспечения «remote-exec» происходит сбой, поскольку он не может найти IP-адрес.Я пробовал несколько вещей, и в настоящее время пытаюсь установить для свойства «host» объекта соединения значение «self.default_ip_address» в надежде, что он будет использовать IP-адрес, который автоматически назначается виртуальной машине через DHCP при подключениик моей сети ... К сожалению, мне все еще не повезло заставить это работать.
Ниже приведен пример объявления моего ресурса, есть ли лучший способ для запуска remote-exec при использовании DHCP, который япросто не в курсе о пропавшем?Кажется, я даже не могу правильно вывести IP после того, как все построено, даже если я не запускаю провайдера.Спасибо за помощь!
resource "vsphere_virtual_machine" "vm-nginx-2" {
resource_pool_id = "${data.vsphere_resource_pool.pool.id}"
name = "vm-nginx-2"
datastore_id = "${data.vsphere_datastore.datastore.id}"
folder = "${var.vsphere_vm_folder}"
enable_disk_uuid = true
wait_for_guest_net_timeout = 0
num_cpus = 2
memory = 2048
guest_id = "${data.vsphere_virtual_machine.template.guest_id}"
scsi_type = "${data.vsphere_virtual_machine.template.scsi_type}"
#scsi_type = "${data.vsphere_virtual_machine.template.scsi_type}"
network_interface {
network_id = "${data.vsphere_network.network.id}"
}
disk {
label = "vm-nginx-2-disk"
size = "${data.vsphere_virtual_machine.template.disks.0.size}"
}
clone {
template_uuid = "${data.vsphere_virtual_machine.template.id}"
customize {
timeout = 0
linux_options {
host_name = "vm-nginx-2"
domain = "adc-corp.com"
}
network_interface {}
ipv4_gateway = "192.168.0.1"
}
}
provisioner "remote-exec" {
inline = [
"sudo apt-get update -y",
"sudo apt-get install -y nginx"
]
connection {
host = "${self.default_ip_address}"
type = "ssh"
user = "ubuntu"
private_key = "${file("files/adc-prod.pem")}"
}
}
}
#This also fails to print out an IP
output "vm-nginx-1-ip" {
value = "${vsphere_virtual_machine.vm-nginx-1.default_ip_address}"
}