本来是该写对接ceph的,但是临时有事了,必须先弄镜像,因此提前写这个了,我个人不是按官网来封装镜像的,是按自己的习惯,所以觉得信不过的可以用官网的方式,有兴趣的可以看看
都知道,openstack创建虚拟机最后的工作是过kvm然后qemu,因此本人直接从qemu入手解决创建封装镜像
这是你需要一台支持虚拟化的centos机器,最好装有图形界面的,命令操作也可以,但是我在刚开始学习linux的时候就是这么封装镜像的,比较习惯了
1.准备工作:
准备你想要封装的各种镜像的iso,完整版本最简单版本都ok,只要能出虚拟机就行,这个大家去官网下载自己要的iso就可以,我这里用centos6.4最简版本,因为分给我的活让做这个的....
支持虚拟化的centos7机器一台,vm里的就可以,但是你要开cpu支持虚拟化选项了
有一些要求的就比如/要多大空间,/home要多大空间等等的也是可以做的,但是估计你用vm在自己电脑上分出来的小虚拟机这资源上就扛不住了,如果有一台比较专门装了centos的物理机这样最好
2.正式开始:
mkdir /openstack-images
cd /openstack-images
把你的iso镜像扔这里吧,其实放哪里都可以,就是自己记住路径就好
qemu-img create -f qcow2 centOS6.4.img 10G(最后封装完成后不会这么大,现在只是这么意思意思#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-image/centOS6.4.img,device=disk,bus=virtio,size=30,format=qcow2 --vnc --vncport=5900 --vnclisten=0.0.0.0 -v(创建完成后ssh会空住,可以在打开个ssh或者回车)
virsh list你会看见刚才刚才创建的虚拟机vm1在run
然后你就可以用vncviewer连接你的物理机的5900端口来操作这台虚拟机,我不喜欢用vnc,所以直接在图形界面打开了
virt-manager(会打开管理窗口,你刚才创建的vm1就在这里,在运行,双击它就打开了操作界面,其实跟vnc看到的一样了)
装系统因人而异,也因系统而异,我就不写了,但是作为需要封装的镜像,一般都是最简安装的,如果有分区要求,就自定义分区去操作就好了
系统装好后rebbot,此时还没完成,然后进到这台虚拟机的系统里操作
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左右,根据系统而已啦
把它传到你的openstack安装glance组件的服务器上
openstack image create "centos6.4" --file centOS6.4.img --disk-format qcow2 --container-format bare --public
3.验证
登录openstack的控制台用此镜像创建一个云主机,此时最小的套餐肯定是不行了,貌似才512M吧,用第二个创建,等一会就ok了,云主机登录就是你在qemu装系统时设置的账号密码