1.准备工作:
准备你想要封装的各种镜像的iso,完整版本最简单版本都ok,只要能出虚拟机就行,这个大家去官网下载自己要的iso就可以,我这里用centos6.4最简版本,因为分给我的活让做这个的....
支持虚拟化的centos7机器一台,vm里的就可以,但是你要开cpu支持虚拟化选项了
有一些要求的就比如/要多大空间,/home要多大空间等等的也是可以做的,但是估计你用vm在自己电脑上分出来的小虚拟机这资源上就扛不住了,如果有一台比较专门装了centos的物理机这样最好
2.正式开始:
yum install virt-install virt-sparsify -y
mkdir /openstack-images
cd /openstack-images
把你的iso镜像扔这里吧,其实放哪里都可以,就是自己记住路径就好
qemu-img create -f qcow2 centos6.4.qcow2 20G(最后封装完成后不会这么大,现在只是这么意思意思#35)
chown qemu:qemu /openstack-images -R
systemctl start libvirtd
virt-install -n vm1 -r 1024 --cpu host -c /openstack-images/CentOS-6.4-x86_64-minimal.iso --disk path=/openstack-images/centos6.4.qcow2,device=disk,bus=virtio,size=20,format=qcow2 --vnc --vncport=5900 --vnclisten=0.0.0.0 -v(创建完成后ssh会空住,可以在打开个ssh)
virsh list你会看见刚才刚才创建的虚拟机vm1在run
如果有错误需要删除虚拟机
virsh destroy vm1
virsh undefine vm1
然后你就可以用vncviewer连接你的物理机的5900端口来操作这台虚拟机,我不喜欢用vnc,所以直接在图形界面打开了,如果端口被占用换一个端口就好
virt-manager(会打开管理窗口,你刚才创建的vm1就在这里,在运行,双击它就打开了操作界面,其实跟vnc看到的一样了)
VNC连接:
装系统因人而异,也因系统而异,我就不写了,但是作为需要封装的镜像,一般都是最简安装的,如果有分区要求,就自定义分区去操作就好了
系统装好后启动,此时还没完成,然后进到这台虚拟机的系统里操作,先做一些你需要自定制的东西,比如安装saltstack客户端,然后:
rm -rf /etc/udev/rules.d/70-persistent-net.rules
cat /etc/sysconfig/network-scripts/ifcfg-eth0应该是这样
TYPE="Ethernet"
DEVICE="eth0"
BOOTPROTO="dhcp"
ONBOOT="yes"
NM_CONTROLLED="yes"
sed -i s/^SELINUX=.*/SELINUX=disabled/g /etc/selinux/config
service iptables stop && chkconfig iptables off(7系统应该是firewalld)
service ip6tables stop && chkconfig ip6tables off
init 0关机
du -sh 你的镜像名
可以看到这个img文件应该1g多左右,根据系统不同
virt-sparsify --compress centos6.4.qcow2 centos6.4-cloud.qcow2 # 压缩一定要压缩!
此时这个centos6.4-cloud.qcow2应该是不到300M
把它传到你的openstack安装glance组件的服务器上
openstack image create "centos6.4" --file centos6.4-cloud.qcow2 --disk-format qcow2 --container-format bare --public
3.验证
登录openstack的控制台用此镜像创建一个云主机,此时最小的套餐肯定是不行了,貌似才512M吧,用第二个创建,等一会就ok了,云主机登录就是你在qemu装系统时设置的账号密码