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装系统时设置的账号密码

最新文章

  1. 《C++primer》v5 第6章 函数 读书笔记 习题答案
  2. sql group by 理解
  3. 小试ijkplayer编译
  4. UIView的frame和bounds的含义
  5. Cocos2d-x数据持久化-修改数据
  6. oc唯一标时一部设备
  7. 一起读源码之zookeeper(1) -- 启动分析
  8. Android高级控件(二)——SurfaceView实现GIF动画架包,播放GIF动画,自己实现功能的初体现
  9. 分析python日志重复输出问题
  10. 结识hybrid体验这一年
  11. ConnectTimeout和ReadTimeout所代表的意义
  12. SharePoint 2013 APP 开发示例 系列
  13. PHP - CentOS下开发运行环境搭建(Apache+PHP+MySQL+FTP)
  14. [LightOJ 1027] A Dangerous Maze
  15. win10镜像重装,快速设置之后无限重启怎么办?
  16. mybatis的注解开发之三种动态sql
  17. 解决Linux下编译.sh文件报错 unexpected operator Syntax error: word unexpected
  18. 来自阿里的 json 解析方案 fastjson
  19. [Xamarin] 製作吐司(Toast)以及圖文並茂的Toast (转帖)
  20. Vue中$refs的用法

热门文章

  1. LattePanda 之深入学习 Firmata通讯
  2. 有关C/C++指针的经典面试题(转)
  3. Laravel建站02--配置Laravel
  4. Struts2 原理(转载)
  5. Geoffrey E. Hinton
  6. Android笔记之自定义对话框
  7. LeetCode(83)Remove Duplicates from Sorted List
  8. 面试算法爱好者书籍/OJ推荐
  9. Protocol_ISIS
  10. (linux)BSP板级支持包开发理解