使用Ansible将多个CDROM添加到vSphere中的vm

时间:2019-01-04 13:55:14

标签: ansible vmware vsphere

我正在使用Ansible在球上创建虚拟机。该虚拟机的要求之一是,它具有两个CD驱动器,每个CD驱动器中都有一个磁盘。同时查看vmware_guestvsphere_guest模块,似乎您无法在一项任务中做到这一点,但是我遇到过blogs,它表明在一项任务中创建了两个CD驱动器。使用较旧的vsphere_guest模块。尝试此操作会给我一个错误。

任务:

  -name: create vm
    ...
    vm_hardware:
      memory_mb: 2096
      num_cpus: 2
      osid: centos64Guest
      scsi: paravirtual
      vm_cdrom:
        disk1:
          type: "iso"
          iso_path: "DATASTORE/ISO1.iso"
        disk2:
          type: "iso"
           iso_path: "DATASTORE/ISO2.iso"

错误:

fatal: [hostname -> localhost]: FAILED! => {"changed": false, "msg": "Error on {'disk2': {'type:': 'iso', iso_path': 'DATASTORE/ISO2.iso'}, 'disk1': {'type:': 'iso', iso_path': 'DATASTORE/ISO1.iso'}} definition. cdrom type needs to be specified.

DATASTORE是ISO所在的我的数据存储的名称

这使我相信我无法定义两个磁盘,因为它似乎正在vm_cdrom下寻找cd信息:

我也尝试过:

  -name: create vm
    ...
    vm_hardware:
      ...
      vm_cdrom:
        type: "iso"
        iso_path: "DATASTORE/ISO1.iso"
       vm_cdrom:
         type: "iso"
         iso_path: "DATASTORE/ISO2.iso"

但这(预期)给我一个错误,指出已经定义了两个vm_cdroms,它将使用最后一个值。

还有另一种挂载两个CD的方法吗?还是我SOL?

1 个答案:

答案 0 :(得分:0)

在2.9中添加。 当前仅支持IDE。 您需要创建一个列表,controller_type并映射controller_number和unit_number。

hardware:
        num_cpus: 2
....
cdrom:
        - controller_type: ide
          controller_number: 0
          unit_number: 0 
          iso_path: "DATASTORE/ISO1.iso"
          type: iso

        - controller_type: ide
          controller_number: 0
          unit_number: 1
          iso_path: "DATASTORE/ISO2.iso"
          type: iso