使用 ISO 镜像启动实例¶
从 ISO 镜像启动实例¶
OpenStack 支持使用 ISO 镜像启动实例。但在使这些实例正常运行之前,请使用以下参数的 openstack server create 命令来启动实例
$ openstack server create --image ubuntu-14.04.2-server-amd64.iso \
--nic net-id = NETWORK_UUID \
--flavor 2 INSTANCE_NAME
+--------------------------------------+--------------------------------------------+
| Field | Value |
+--------------------------------------+--------------------------------------------+
| OS-DCF:diskConfig | MANUAL |
| OS-EXT-AZ:availability_zone | nova |
| OS-EXT-SRV-ATTR:host | - |
| OS-EXT-SRV-ATTR:hypervisor_hostname | - |
| OS-EXT-SRV-ATTR:instance_name | instance-00000004 |
| OS-EXT-STS:power_state | 0 |
| OS-EXT-STS:task_state | scheduling |
| OS-EXT-STS:vm_state | building |
| OS-SRV-USG:launched_at | - |
| OS-SRV-USG:terminated_at | - |
| accessIPv4 | |
| accessIPv6 | |
| adminPass | ZaiYeC8iucgU |
| config_drive | |
| created | 2015-06-01T16:34:50Z |
| flavor | m1.small (2) |
| hostId | |
| id | 1e1797f3-1662-49ff-ae8c-a77e82ee1571 |
| image | ubuntu-14.04.2-server-amd64.iso |
| key_name | - |
| metadata | {} |
| name | INSTANCE_NAME |
| os-extended-volumes:volumes_attached | [] |
| progress | 0 |
| security_groups | default |
| status | BUILD |
| tenant_id | ccef9e62b1e645df98728fb2b3076f27 |
| updated | 2014-05-09T16:34:51Z |
| user_id | fef060ae7bfd4024b3edb97dff59017a |
+--------------------------------------+--------------------------------------------+
在此命令中,ubuntu-14.04.2-server-amd64.iso 是 ISO 镜像,INSTANCE_NAME 是新实例的名称。 NETWORK_UUID 是您系统中有效的网络 ID。
创建可启动卷,以便在关机后实例驻留在其上。
创建卷
$ openstack volume create \ --size <SIZE_IN_GB> \ --bootable VOLUME_NAME
将实例附加到卷
$ openstack server add volume INSTANCE_NAME \ VOLUME_NAME \ --device /dev/vda
注意
您需要块存储服务来在关机后保留实例。使用旧版 nova boot 的 --block-device 参数将无法与 OpenStack openstack server create 命令一起使用。相反,openstack volume create 和 openstack server add volume 命令创建持久存储。
实例成功启动后,使用远程控制台连接到实例,并按照说明安装系统,就像在普通计算机上使用 ISO 镜像一样。安装完成后并重新启动系统,实例会再次要求您安装操作系统,这意味着您的实例无法使用。如果您在创建镜像时遇到问题,请参考 虚拟机镜像指南。
使从 ISO 镜像启动的实例正常运行¶
现在完成以下步骤,使使用 ISO 镜像创建的实例真正正常运行。
使用以下命令删除实例。
$ openstack server delete INSTANCE_NAME
删除实例后,您使用 ISO 镜像安装的系统仍然存在,因为设置了参数
shutdown=preserve,因此运行以下命令。$ openstack volume list +--------------------------+-------------------------+-----------+------+-------------+ | ID | Name | Status | Size | Attached to | +--------------------------+-------------------------+-----------+------+-------------+ | 8edd7c97-1276-47a5-9563- |dc01d873-d0f1-40b6-bfcc- | available | 10 | | | 1025f4264e4f | 26a8d955a1d9-blank-vol | | | | +--------------------------+-------------------------+-----------+------+-------------+
您将获得一个包含系统中所有卷的列表。在此列表中,您可以找到附加到您的 ISO 创建实例的卷,其可启动属性为 false。
将卷上传到 glance。
$ openstack image create --volume SOURCE_VOLUME IMAGE_NAME $ openstack image list +-------------------+------------+--------+ | ID | Name | Status | +-------------------+------------+--------+ | 74303284-f802-... | IMAGE_NAME | active | +-------------------+------------+--------+
SOURCE_VOLUME是附加到您的 ISO 创建实例的卷的 UUID 或名称,IMAGE_NAME是您为新镜像指定的名称。镜像成功上传后,您可以使用新镜像启动实例。
使用此镜像启动的实例包含您使用 ISO 镜像刚刚安装的系统。