5.238. vms
名称 | 概述 |
---|---|
| 创建新虚拟机。 |
|
5.238.1. 添加 POST
创建新虚拟机。
虚拟机可以通过不同的方式创建:
- 模板中。在这种情况下,必须提供模板的标识符或名称。例如,使用普通 shell 脚本和 XML:
#!/bin/sh -ex url="https://engine.example.com/ovirt-engine/api" user="admin@internal" password="..." curl \ --verbose \ --cacert /etc/pki/ovirt-engine/ca.pem \ --user "${user}:${password}" \ --request POST \ --header "Version: 4" \ --header "Content-Type: application/xml" \ --header "Accept: application/xml" \ --data ' <vm> <name>myvm</name> <template> <name>Blank</name> </template> <cluster> <name>mycluster</name> </cluster> </vm> ' \ "${url}/vms"
- 从快照中。在这种情况下,必须提供快照的标识符。例如,使用纯文本脚本和 XML:
#!/bin/sh -ex url="https://engine.example.com/ovirt-engine/api" user="admin@internal" password="..." curl \ --verbose \ --cacert /etc/pki/ovirt-engine/ca.pem \ --user "${user}:${password}" \ --request POST \ --header "Content-Type: application/xml" \ --header "Accept: application/xml" \ --data ' <vm> <name>myvm</name> <snapshots> <snapshot id="266742a5-6a65-483c-816d-d2ce49746680"/> </snapshots> <cluster> <name>mycluster</name> </cluster> </vm> ' \ "${url}/vms"
从模板创建虚拟机时,或从快照创建虚拟机时,在什么存储域中明确指明为虚拟机创建磁盘通常很有用。如果从模板创建虚拟机,则通过一组 disk_attachment
元素来实现,以指示映射:
<vm> ... <disk_attachments> <disk_attachment> <disk id="8d4bd566-6c86-4592-a4a7-912dbf93c298"> <storage_domains> <storage_domain id="9cb6cb0a-cf1d-41c2-92ca-5a6d665649c9"/> </storage_domains> </disk> <disk_attachment> </disk_attachments> </vm>
从快照创建虚拟机时,这个磁盘集合略有不同,它使用 image_id
属性而不是 id
。
<vm> ... <disk_attachments> <disk_attachment> <disk> <image_id>8d4bd566-6c86-4592-a4a7-912dbf93c298</image_id> <storage_domains> <storage_domain id="9cb6cb0a-cf1d-41c2-92ca-5a6d665649c9"/> </storage_domains> </disk> <disk_attachment> </disk_attachments> </vm>
可以在 XML 描述中指定额外的虚拟机参数,例如,桌面
类型的虚拟机,2 GiB RAM,额外描述可以添加如下请求正文:
<vm> <name>myvm</name> <description>My Desktop Virtual Machine</description> <type>desktop</type> <memory>2147483648</memory> ... </vm>
可以设置可引导 CDROM 设备,如下所示:
<vm> ... <os> <boot dev="cdrom"/> </os> </vm>
为了从 CDROM 引导,您首先需要插入一个磁盘,如 CDROM 服务 所述。然后,可以使用 os.boot.devices
属性指定该 CDROM 启动:
<vm> ... <os> <boot> <devices> <device>cdrom</device> </devices> </boot> </os> </vm>
在所有情况下,创建虚拟机的集群的名称或标识符都是强制的。
名称 | 类型 | 方向 | 概述 |
---|---|---|---|
| In | 指定虚拟机是否应独立于模板。 | |
| In | 指定模板的权限应复制到虚拟机。 | |
| in/Out |
5.238.1.1. 克隆
指定虚拟机是否应独立于模板。
当默认从模板创建虚拟机时,虚拟机的磁盘取决于模板的磁盘,它们将在 写入机制上使用副本,以便只有模板的不同占用实际存储空间。如果指定了此参数,且值为 true
,则创建的虚拟机的磁盘将 克隆,并独立于模板。例如,要创建独立虚拟机,请发送如下请求:
POST /ovirt-engine/vms?clone=true
使用请求正文,如下所示:
<vm> <name>myvm<name> <template> <name>mytemplate<name> </template> <cluster> <name>mycluster<name> </cluster> </vm>
当此参数为 true
时,模板的权限也会被复制,就像使用 clone_permissions=true
一样。
5.238.1.2. clone_permissions
指定模板的权限应复制到虚拟机。
如果提供了此可选参数,其值为 true
,则模板的权限(只有直接参数,而不是继承的参数)将被复制到创建的虚拟机。例如,要从 mytemplate
模板创建虚拟机复制其权限,请发送如下请求:
POST /ovirt-engine/api/vms?clone_permissions=true
使用请求正文,如下所示:
<vm> <name>myvm<name> <template> <name>mytemplate<name> </template> <cluster> <name>mycluster<name> </cluster> </vm>