天天看点

关于制作openstack虚拟机镜像的心得

ubuntu镜像相关

1、系统安装好,根据实际情况设定自己的配置之后那么继续往下做

2、清除/tmp 目录

3、清除日志

4、清除history 命令历史记录

history -c && shutdown -h now

5、清除网络相关硬件生成信息

操作系统会在/etc/sysconfig/network-scripts/ifcfg-eth0 和 /etc/udev/rules.d/70-persistent-net.rules 这类文件记录下网卡MAC地址。

但是,虚拟机的网卡MAC地址在每次虚拟机创建的时候都会不同,因此这些信息必须从配置文件删除掉。

目前有 virt-sysprep 工具可以完成清理虚拟机镜像内的 MAC 地址相关的信息。

安装这个工具

sudo apt-get install libguestfs-tools

查看虚拟机列表 

sudo virsh list --all

开始清理虚拟机镜像内的 MAC 地址相关的信息 (把{vmname替换成自己的虚拟机名称})

virt-sysprep -d {vmname}    #这个工具用了之后导致ssh服务有问题,连接不上。请慎用

取消libvirt虚拟机域

现在你可以上传虚拟机镜像到镜像服务了,所以不再需要 libvirt 来管理虚拟机镜像,使用 virsh undefine vm-image 命令来完成。

# virsh undefine {vmname}

压缩镜像 

virt-sparsify --compress /tmp/centos-6.5.qcow2 centos-6.5-cloud.qcow2

 镜像准备完成

前面你使用 qemu-img create 命令创建的镜像已经准备好可以上传了,你可以上传 /tmp/trusty.qcow2 文件到 Openstack 镜像服务。

如果需要把某些文件放到虚拟机里面可以使用

virt-copy-in 命令

本文转自 TtrToby 51CTO博客,原文链接:http://blog.51cto.com/freshair/1927433