【问题标题】:Guest OS customization using Terraform - fail on first boot使用 Terraform 自定义来宾操作系统 - 首次启动失败
【发布时间】:2023-02-21 13:38:39
【问题描述】:

我正在使用 Terraform 部署从 AWS 导出的虚拟机。

过程如下:

  • 我使用 Packer 在 AWS 中构建 AMI

  • 然后使用 terraform 将 ami 以 vmdk 格式导出到 VMware(使用从 s3 存储桶克隆到数据存储区)

  • 之前创建了一个模板,并使用 terraform 重新使用该模板来创建一个虚拟机,该模板没有附加磁盘,创建虚拟机时附加了磁盘。

启动 vm 时失败并出现以下错误:

来宾操作系统的自定义不受支持,原因如下: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

任何帮助,将不胜感激。

【问题讨论】:

    标签: terraform vmware vsphere terraform-provider-vsphere


    【解决方案1】:

    我也面临同样的问题,请问解决了吗?

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-13
    • 2019-07-18
    • 2022-08-03
    相关资源
    最近更新 更多