A.7. 设置自定义属性
Red Hat Virtualization Manager 接受的自定义属性(可以作为参数传递给定制 hook)是通过
engine-config
命令设置的。您需要在 Red Hat Virtualization Manager 所在的主机上以 root
用户身份运行这个命令。
UserDefinedVMProperties
和 CustomDeviceProperties
这两个配置项被用来保存自定义属性的名称。每个自定义属性的有效值可以使用正则表达式来定义,它们也被保存在这些配置项中。
多个自定义属性可以被分号分隔。请注意,在设置配置项时,这个项的当前值会被覆盖。如需在当前值的基础上添加新的值,在配置命令中需要输入新的值以及当前的值。
当配置项被更新后,新的值在
ovirt-engine
服务被重新启动后才会有效。
例 A.1. 虚拟机属性 - 定义 smartcard
自定义属性
- 使用以下命令显示
UserDefinedVMProperties
配置项所定义的自定义属性:# engine-config -g UserDefinedVMProperties
从下面的输出可以看到,自定义属性memory
已经被定义。其中的正则表达式^[0-9]+$
限定了这个定制属性只能包括数字。# engine-config -g UserDefinedVMProperties UserDefinedVMProperties: version: 3.6 UserDefinedVMProperties: version: 4.0 UserDefinedVMProperties : memory=^[0-9]+$ version: 4.0
- 因为
memory
自定义属性已经在UserDefinedVMProperties
配置项中被定义,新的自定义属性(smartcard
)就需要添加到它的上面。这个新的自定义属性的值只能是true
或false
。# engine-config -s UserDefinedVMProperties='memory=^[0-9]+$;smartcard=^(true|false)$' --cver=4.0
- 运行以下命令检查
UserDefinedVMProperties
配置项所定义的自定义属性是否已经被正确更新。# engine-config -g UserDefinedVMProperties UserDefinedVMProperties: version: 3.6 UserDefinedVMProperties: version: 4.0 UserDefinedVMProperties : memory=^[0-9]+$;smartcard=^(true|false)$ version: 4.0
- 最后,重新启动
ovirt-engine
服务来使所做的配置改变有效。# systemctl restart ovirt-engine.service
例 A.2. 设备属性 - 定义 interface
自定义属性
- 使用以下命令显示
CustomDeviceProperties
配置项所定义的定制属性:# engine-config -g CustomDeviceProperties
从下面的输出可以看到,没有任何自定义属性被定义。# engine-config -g CustomDeviceProperties CustomDeviceProperties: version: 3.6 CustomDeviceProperties: version: 4.0
- 因为
interface
自定义属性还不存在,新的自定义属性可以被简单地添加。在这个例子中,speed
属性的有效值是 0 到 99999,duplex
属性的有效值是full
或half
。# engine-config -s CustomDeviceProperties="{type=interface;prop={speed=^([0-9]{1,5})$;duplex=^(full|half)$}}" --cver=4.0
- 运行以下命令检查
CustomDeviceProperties
配置项已经被正确更新。# engine-config -g CustomDeviceProperties UserDefinedVMProperties: version: 3.6 UserDefinedVMProperties: version: 4.0 UserDefinedVMProperties : {type=interface;prop={speed=^([0-9]{1,5})$;duplex=^(full|half)$}} version: 4.0
- 最后,重新启动
ovirt-engine
服务来使所做的配置改变有效。# systemctl restart ovirt-engine.service