如何使用Python将DVD驱动器添加到XenServer中的VM

如何使用Python将DVD驱动器添加到XenServer中的VM,python,xen,Python,Xen,我想使用Python将DVD驱动器添加到xenserver上的VM中。我使用Python创建了一个VM,现在我想添加连接到主机的DVD驱动器,以便在VM中也可以访问。所以我也需要为DVD驱动器创建一个VBD。但我无法获取需要在VBD中设置的属性。记录在“附加磁盘”中,我设置了VDI属性,它被附加。但是对于DVD驱动器,我无法确定需要设置哪个属性才能将该CD驱动器连接到XenServer。请在这方面帮助我……我无法直接帮助您使用Python部分,但我将尝试为您提供正确的命令行语句 假设虚拟机已经有

我想使用Python将DVD驱动器添加到xenserver上的VM中。我使用Python创建了一个VM,现在我想添加连接到主机的DVD驱动器,以便在VM中也可以访问。所以我也需要为DVD驱动器创建一个VBD。但我无法获取需要在VBD中设置的属性。记录在“附加磁盘”中,我设置了VDI属性,它被附加。但是对于DVD驱动器,我无法确定需要设置哪个属性才能将该CD驱动器连接到XenServer。请在这方面帮助我……

我无法直接帮助您使用Python部分,但我将尝试为您提供正确的命令行语句

假设虚拟机已经有DVD驱动器,您只需发出以下命令

xe cd-list
xe vm-cd-insert uuid=... cd-name="xs-tools.iso"
xe vm-cd-eject uuid=...

如果您对vbd内容感兴趣,以下命令可以为您获取DVD驱动器的vbd uuid:

从单个VM开始。从XenCenter弹出DVD。现在,在命令行上连接到XenServer主机,并运行:

xe vbd-list vm-uuid=...
如果虚拟机的DVD驱动器为空,其vdi uuid将列为。这将允许您在安装后精确定位vbd的uuid

有关更多信息,请查看此链接:


我在我的网站上写过这件事:

这里,
VM\u ref
指的是我们想要访问的新创建的VM的
uuid
添加DVD驱动器。每个物理DVD驱动器都有其VDI,即 存储在它的属性中,可以获取它并将其作为 用于创建VBD链接DVD驱动器与虚拟机的参数


使用Java将CD驱动器添加到XenServer虚拟机

首先,您必须连接xenserver并获取连接变量

 public VBD makeCDDrive(VM vm) throws Exception    {

    VBD.Record vbdrecord = new VBD.Record();

    vbdrecord.VM = vm;
    vbdrecord.VDI = null;
    vbdrecord.userdevice = "3";
    vbdrecord.mode = Types.VbdMode.RO;
    vbdrecord.type = Types.VbdType.CD;
    vbdrecord.empty = true;

    return VBD.create(connection, vbdrecord);
}

实际上,问题是虚拟机没有连接DVD驱动器。我必须将DVD驱动器连接到虚拟机,我需要一些方法来连接DVD。最后我了解到,在DVD的属性中,它有一个VDI字段,可以使用它并将其提供给VBD,然后将DVD驱动器连接到VM。是的。。。现在一切都正常了。。。也感谢您提出的宝贵建议……:)
 public VBD makeCDDrive(VM vm) throws Exception    {

    VBD.Record vbdrecord = new VBD.Record();

    vbdrecord.VM = vm;
    vbdrecord.VDI = null;
    vbdrecord.userdevice = "3";
    vbdrecord.mode = Types.VbdMode.RO;
    vbdrecord.type = Types.VbdType.CD;
    vbdrecord.empty = true;

    return VBD.create(connection, vbdrecord);
}