设为首页 收藏本站
查看: 1202|回复: 0

[经验分享] 为OpenStack制作自定义的镜像(centos/windows)

[复制链接]

尚未签到

发表于 2016-1-9 11:41:14 | 显示全部楼层 |阅读模式
在OpenStack平台搭建好以后,我们可以用下载一些现成的镜像来进行测试,比如ubuntu,比如centos,但是每个应用都需要不同的环境,记录一下如何制作自定义的镜像。
因为我们现有的应用大多运行在Centos5.5和Windows2008上,所以以这2个为例子:

1. Centos5.5
整个安装流程是按照OpenStack的官方文档,制作ami(Amazon Machine Image)格式,glance还支持raw和qcow2等多种格式,如果用raw这种格式,流程应该更简单,不过我没有测试过。
以下是具体的流程:

用kvm-img创建一个5G大小的镜像文件:
kvm-img create -f raw centos55.img 5G

启动kvm,指定vnc端口
kvm -m 512 -boot d -cdrom CentOS5.5-dvd.iso -drive file=centos55.img,index=0,if=scsi,boot=on -net nic -net user -nographic -vnc :1

然后用vnc访问host:1来进行安装,因为是基础镜像,选择了最小化安装,除了sshd server,其他组件都没有安装。
安装好以后,重启动,登入到虚拟机,将firewall和selinux等都disable掉,这些可以留给镜像的使用者在启动实例后自行设置,不需要在这个基础镜像中做任何配置。
另外在Centos5.x下默认没有加载virtio驱动,所以我们需要执行如下命令:
mkinitrd --with virtio_pci --with virtio_blk --with virtio_net --with virtio_balloon --with virtio -f /boot/initrd-$(uname -r) $(uname -r)
结束以后关闭虚拟机。

将镜像文件挂载:

losetup -f centos55.img
losetup -a

用fdisk找到找到偏移量和Block Size
fdisk -c -u -l /dev/loop0
比如偏移量是63,Block Size是512,那么记录一下63*512=32256

然后重新从偏移量开始挂载
losetup -d /dev/loop0
losetup -f -o 32256 centos55.img
losetup -a

拷贝出最终镜像
dd if=/dev/loop0 of=centos55.final.img

losetup -d /dev/loop0

然后挂载最终镜像到/mnt
mount -o loop centos55.final.img /mnt

修改 /mnt/etc/fstab
LABEL=/ 改成LABEL=uec-rootfs

拷贝出AKI和ARI文件以后umount
cp /mnt/boot/vmlinuz-2.6.18-194.el5 centos55/
cp /mnt/boot/initrd-2.6.18-194.el5 centos55/

umount /mnt

然后将最终镜像修改一下标签
tune2fs -L uec-rootfs centos55.final.img

这样就得到3个amazon格式的文件
用glance add命令上传到glance服务器
glance add -A your_glance_token name="centos55-ramdisk" is_public=true container_format=ari disk_format=ari < initrd-2.6.18-194.el5

glance add -A your_glance_token name="centos55-kernal" is_public=true container_format=aki disk_format=aki < vmlinuz-2.6.18-194.el5

glance add -A your_glance_token name="centos55" is_public=true container_format=ami disk_format=ami kernel_id=4 ramdisk_id=3 < centos55.final.img


如果你的glance server和制作镜像的机器不在同一台,可以指定-H参数来上传,另外第3个命令中的kernel_id和ramdisk_id是从前面2个命令中的结果中获取

镜像上传好以后,就能通过dashboard或者命令行来从这个镜像启动实例,因为这个镜像是最基础的,你可以在启动的实例上安装需要的组件,比如mysql/ruby等等,再对实例做个snapshot,就可以制作出各种立即可用的镜像。


2. Windows2008
这里windows2008我采用qcow2格式来制作镜像,流程和centos类似

用kvm-img创建一个10G大小的镜像文件:
kvm-img create -f qcow2 win2008.img 10G

因为windows没有默认的virtio驱动,所以先下载
wget http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/virtio-win-0.1-15.iso
wget http://alt.fedoraproject.org/pub/alt/virtio-win/latest/images/bin/virtio-win-1.1.16.vfd

启动kvm,映射驱动vfd到软盘A
kvm -m 1024 -cdrom en_windows_server_2008_r2_dvd.iso -drive file=win2008.img,if=virtio,boot=on -fda virtio-win-1.1.16.vfd -boot d -nographic -vnc :1
用vnc访问安装,在安装的时候需要选择一下硬盘驱动,安装好以后,停掉虚拟机,重新用以下命令启动
kvm -m 1024 -drive file=win2008.img,if=virtio,boot=on -cdrom virtio-win-0.1-15.iso -net nic,model=virtio -net user -boot c -nographic -vnc :1
再用vnc访问,应该会提示自动安装好了virtio的网卡驱动

用glance添加这个镜像,指定格式为qcow2
glance add -A your_glance_token name="win2008" is_public=true disk_format=qcow2 < win2008.img

这样就完成了


完成镜像以后,我们还可以在security group里面添加3389和22端口,这样能够允许rdp和ssh访问对应的windows和linux实例

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-162143-1-1.html 上篇帖子: OpenStack升级之Nova-volume升级和迁移问题 下篇帖子: 【OpenStack】Grizzly目前版本相对于Folsom的变更
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表