A.7. 设置自定义属性

Red Hat Enterprise Virtualization Manager 接受的自定义属性(可以作为参数传递给定制 hook)是通过 engine-config 命令设置的。您需要在 Red Hat Enterprise Virtualization Manager 所在的主机上以 root 用户身份运行这个命令。
UserDefinedVMPropertiesCustomDeviceProperties 这两个配置项被用来保存自定义属性的名称。每个自定义属性的有效值可以使用正则表达式来定义,它们也被保存在这些配置项中。
多个自定义属性可以被分号分隔。请注意,在设置配置项时,这个项的当前值会被覆盖。如需在当前值的基础上添加新的值,在配置命令中需要输入新的值以及当前的值。
当配置项被更新后,新的值在 ovirt-engine 服务被重新启动后才会有效。

例 A.1. 虚拟机属性 - 定义 smartcard 自定义属性

  1. 使用以下命令显示 UserDefinedVMProperties 配置项所定义的自定义属性:
    # engine-config -g UserDefinedVMProperties
    从下面的输出可以看到,自定义属性 memory 已经被定义。其中的正则表达式 ^[0-9]+$ 限定了这个定制属性只能包括数字。
    # engine-config -g UserDefinedVMProperties
    UserDefinedVMProperties:  version: 3.0
    UserDefinedVMProperties:  version: 3.1
    UserDefinedVMProperties:  version: 3.2
    UserDefinedVMProperties:  version: 3.3
    UserDefinedVMProperties : memory=^[0-9]+$ version: 3.2
  2. 因为 memory 自定义属性已经在 UserDefinedVMProperties 配置项中被定义,新的自定义属性(smartcard)就需要添加到它的上面。这个新的自定义属性的值只能是 truefalse
    # engine-config -s UserDefinedVMProperties='memory=^[0-9]+$;smartcard=^(true|false)$' --cver=3.2
  3. 运行以下命令检查 UserDefinedVMProperties 配置项所定义的自定义属性是否已经被正确更新。
    # engine-config -g UserDefinedVMProperties
    UserDefinedVMProperties:  version: 3.0
    UserDefinedVMProperties:  version: 3.1
    UserDefinedVMProperties:  version: 3.2
    UserDefinedVMProperties:  version: 3.3
    UserDefinedVMProperties : memory=^[0-9]+$;smartcard=^(true|false)$ version: 3.2
  4. 最后,重新启动 ovirt-engine 服务来使所做的配置改变有效。
    # service ovirt-engine restart

例 A.2. 设备属性 - 定义 interface 自定义属性

  1. 使用以下命令显示 CustomDeviceProperties 配置项所定义的定制属性:
    # engine-config -g CustomDeviceProperties
    从下面的输出可以看到,没有任何自定义属性被定义。
    # engine-config -g CustomDeviceProperties
    CustomDeviceProperties:  version: 3.0
    CustomDeviceProperties:  version: 3.1
    CustomDeviceProperties:  version: 3.2
    CustomDeviceProperties:  version: 3.3
  2. 因为 interface 自定义属性还不存在,新的自定义属性可以被简单地添加。在这个例子中,speed 属性的有效值是 0 到 99999,duplex 属性的有效值是 fullhalf
    # engine-config -s CustomDeviceProperties="{type=interface;prop={speed=^([0-9]{1,5})$;duplex=^(full|half)$}}" --cver=3.3
  3. 运行以下命令检查 CustomDeviceProperties 配置项已经被正确更新。
    # engine-config -g CustomDeviceProperties
    UserDefinedVMProperties:  version: 3.0
    UserDefinedVMProperties:  version: 3.1
    UserDefinedVMProperties:  version: 3.2
    UserDefinedVMProperties : {type=interface;prop={speed=^([0-9]{1,5})$;duplex=^(full|half)$}} version: 3.3
  4. 最后,重新启动 ovirt-engine 服务来使所做的配置改变有效。
    # service ovirt-engine restart