我正在使用 Terraform 部署从 AWS 导出的虚拟机。
流程如下:
我使用 Packer 在 AWS 中构建 AMI
然后使用 terraform 将 ami 以 vmdk 格式导出到 VMware(使用从 s3 存储桶克隆到数据存储)
之前创建了一个模板,并使用 terraform 重新使用该模板来创建一个虚拟机,该模板没有附加磁盘,创建虚拟机时附加了磁盘。
当虚拟机启动时失败并出现以下错误:
由于给定的原因,不支持自定义来宾操作系统:GuestOS 中未安装工具。请安装最新版本的 open-vm-tools 或 VMware Tools 以启用 GuestCustomization。
如果我删除虚拟机(不删除磁盘,使用从清单中删除命令)并重新运行 terraform apply 命令,它会启动虚拟机并且可以毫无问题地进行自定义。
resource "vsphere_virtual_machine" "vm" {
name = "test_machine_vm_01"
resource_pool_id = data.vsphere_compute_cluster.cluster.resource_pool_id
datastore_id = data.vsphere_datastore.datastore.id
folder = "test"
num_cpus = data.vsphere_virtual_machine.template.num_cpus
memory = data.vsphere_virtual_machine.template.memory
guest_id = "rhel7_64Guest"
scsi_type = data.vsphere_virtual_machine.template.scsi_type
tools_upgrade_policy = "upgradeAtPowerCycle"
run_tools_scripts_after_power_on = true
run_tools_scripts_after_resume = true
run_tools_scripts_before_guest_shutdown = true
run_tools_scripts_before_guest_standby = true
network_interface {
network_id = data.vsphere_network.network.id
adapter_type = data.vsphere_virtual_machine.template.network_interface_types[0]
}
disk {
attach = true
path = var.VMDK_PATH_DISK_1
label = "disk.0"
datastore_id = data.vsphere_datastore.datastore.id
}
disk {
attach = true
path = var.VMDK_PATH_DISK_2
label = "disk.1"
datastore_id = data.vsphere_datastore.datastore.id
unit_number = 1
}
clone {
template_uuid = data.vsphere_virtual_machine.template.id
customize {
linux_options {
host_name = "rhel7-image"
domain = "mipa.med.ds.osd.mil"
}
network_interface {
ipv4_address = "myip"
ipv4_netmask = 24
}
ipv4_gateway = "mygateway"
}
}
}
在我用 packer 创建的镜像中,我在关闭它之前以 root 身份使用以下命令
systemctl enable vmtoolsd
systemctl start vmtoolsd
systemctl status vmtoolsd
任何帮助将不胜感激。
我也面临同样的问题,请问解决了吗?