调研结果
经过M版测试发现openstack其实已经支持这部分功能了,现将具体的操作流程做以下记录。
整体操作流程
- 下载ISO镜像并将其上传至glance管理;
- 基于ISO镜像启动一个云主机实例;
- 创建一个空的volume并将其attach到上一步创建的云主机实例;
- 登录到VNC Console完成OS的安装;
- 删除实例,基于volume新建一个云主机实例;
- 登录到新建实例进行必要软件包的安装;
- 信息清除并删除新建实例;
- 基于volume上传image;
- 基于新的image新建云主机实例;
下面仅就一些需要额外注意的步骤做简单说明。
上传ISO镜像
以Ubuntu16.04为例,首先下载ISO,然后将该ISO镜像上传至Glance管理。
openstack上传镜像一般可以通过以下两种方式来完成:
上传镜像CLI命令
openstack image create --disk-format iso --container-format bare --public --file ./ubuntu-16.04.6-server-amd64.iso ubuntu-iso
openstack Horizon界面操作
紧接着基于ISO创建云主机不再赘述,直接跳过到下一步。
新建空卷
新建一个空的volume,注意卷的大小,至少要大于ISO文件的大小。
create_blank_volume.png
然后,把该卷attach到新建的云主机上:
attach_vol.png
登陆VNC安装OS
这一步其实跟我们日常直接用ISO通过制作USB启动介质安装OS或者通过光驱安装OS的过程基本上都是一样的,不过特别注意的也是这一步,因为我们需要特别把OS安装到刚才新建的空的volume里。
登陆VNC Console进入安装OS界面:
os_install.png
如上所提,操作跟正常安装OS一样,再提醒一遍:当OS安装到指定目标盘或分区时,一定要对应到空的新建的volume。当OS完成安装时,此时其实OS已经安装到我们新建的volume里了,而这时的云主机已经没什么用了可直接删掉,紧接着把volume设置成bootable:
# 获取volume的ID
cinder list | grep ubuntu16.04_os
# 设置可启动
cinder set-bootable <volume_id> true
然后,基于该volume再新建一个云主机,登陆到云主机后安装一些通用的软件比如cloud-init、qemu-guest-agent、openssh-server
等,之后删除/etc/udev/rules.d/70-persistent-net.rules
清除网卡网络配置脚本文件MAC、UUID等信息(或者也可以通过virt-sysprep来清理),最后删除云主机。
基于卷上传镜像
image_upload.png image_list.png然后就可以基于image创建云主机了:
vms_list.png
ssh(通过key pair的方式)登陆到云主机:
login_vm.png
登陆ok。
网友评论