echo "NOZEROCONF=yes" >> /etc/sysconfig/network
cloud-init
接下来安装cloud-init,cloud-init是虚拟机第一次启动时执行的脚本,主要负责从metadata服务中拉取配置信息,完成虚拟机的初始化工作,比如设置主机名、初始化密码以及注入密钥等。
# yum install -y cloud-init-0.7.6-bzr1.el7.centos.noarch.rpm
yum install -y cloud-init
growpart
虚拟机制作镜像时指定了根分区大小(比如我们设置为10GB),为了使虚拟机能够自动调整为flavor disk指定的根磁盘大小,即自动扩容, 我们需要安装glowpart(老版本叫growroot)并完成以下配置:
yum update -y
yum install -y epel-release
yum install -y cloud-utils-growpart.x86.64
rpm -qa kernel | sed 's/^kernel-//' | xargs -I {} dracut -f /boot/initramfs-{}.img {}
完成以上工作后,我们的镜像配置基本结束,删除一些无用文件,清理history命令后执行关机:
/sbin/shutdown -h now
1.5 移除本地信息
在宿主机上运行以下命名,移除宿主机信息,比如mac地址等。
virt-sysprep -d centos # cleanup tasks such as removing the MAC address references
删除虚拟机,镜像制作完成。
virsh undefine centos # 删除虚拟机
2.1 使用glance命令上传镜像
镜像制作完成,上传centos.qcow2到glance服务中。
glance image-create --file ./centos.qcow2 --disk-format qcow2 \
--container-format bare --name CentOS-7.2 --progress
2.2 通过rbd直接导入镜像
由于镜像通常比较大,上传时如果使用glance API,则通过HTTP上传,由于HTTP协议的限制,导致上传非常慢,非常耗时。 如果Glance使用Ceph作为存储后端,可以通过rbd直接导入(import)方式上传到Ceph中,速度会大幅度提高。
首先需要把镜像转为raw格式:
qemu-img convert -f qcow2 -O raw centos.qcow2 centos.raw
通过glance create创建一个空镜像,并记录uuid(不需要指定文件路径以及其它字段,只是占个坑):
glance image-create
使用rbd命令直接导入镜像并创建快照:
rbd -p glance import centos.raw --image=$IMAGE_ID --new-format --order 24
rbd -p glance snap create $IMAGE_ID@snap
rbd -p glance snap protect $IMAGE_ID@snap
设置glance镜像location url:
FS_ID=`ceph -s | grep cluster | awk '{print $2}'`
glance location-add --url rbd://${FS_ID}/glance/${IMAGE_ID}/snap $IMAGE_ID
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-70970-4.html
在军舰
比较好