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

[经验分享] Create a virtualbox Based CentOS 6 OpenStack Cloud Image

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-11-16 13:05:42 | 显示全部楼层 |阅读模式
前言:
    openstack 环境已经部署好了,接下来就是运行实例,运行实例就需要镜像了。镜像的来源分为官方镜像,三方镜像,以及自定义镜像。
    官方的镜像不能自动扩容根目录大小
    三方镜像嘛……这个看需求吧
    自定义镜像,也就是自己动手来做一个镜像。我比较喜欢这种方式,在制作过程中可以学到新东西。由于本人使用的ubuntu 系统已经安装了virtualbox 此例就使用virtualbox 为例。

磁盘格式:
    openstack 镜像服务支持的虚拟机镜像磁盘格式有
    aki
        亚马逊 kernel 镜像

    ami
        亚马逊 machine 镜像

    ari
        亚马逊 ramdisk 镜像

    iso
        光盘数据格式

    qcow2
        支持QEMU 能动态扩展,支持写时复制

    raw
        裸磁盘格式。各种格式可以在裸格式间转换

    vdi
        支持VirtualBox虚拟机和QEMU

    vhd
        VHD磁盘格式,支持VMware,Xen,Microsoft,VirtualBox和其它虚拟化

    vhdx
        增强版本的VHD格式,支持更大磁盘大小

    vmdk
        常见磁盘格式,支持常见虚拟化格式

需求:
    可根据磁盘大小自动扩展根目,修改主机名,注入ssh密钥,根据作用安装相应软件,如nginx、apache、tomcat、php-fpm、DB……
    实现以上需求,需要借用几个工具实现

    cloud-init https://launchpad.net/cloud-init/)功能
        设置默认语言环境
        设置实例主机名
        生成实例ssh私钥
        添加ssh密钥到用户 .ssh/authorized_keys 使其能够登录
        设置临时挂载点

    cloud-utils https://launchpad.net/cloud-utils

        扩大硬盘
    linux-rootfs-resize https://github.com/flegmatik/linux-rootfs-resize

        调用cloud-utils ,虚拟机启动时检测硬盘扩大,则自动扩展根目录


具体实现:   
    因本人电脑已经安装有VirtualBox,且已安装好Centos 6.8系统(VirtualBox如何安装系统略),这里就基于已安装好的系统做配置。

添加EPEL 库,安装cloud-init:
1
yum install -y http://dl.fedoraproject.org/pub/ ... ease-6-8.noarch.rpm



安装cloud-init 软件包及其他所需包:
1
yum install -y cloud-init cloud-utils cloud-utils-growpart acpid git parted



安装linux rootfs resize:
1
2
3
git clone
cd linux-rootfs-resize
./install



将启动日志打印到Dashboard 控制台,修改内核引导参数:
1
vim /boot/grub/menu.lst



在kernel 行尾增加
1
console=tty0 console=ttyS0,115200n8



在同一行上的同一文件中删除对以下参数的任何引用:
1
rhgb quiet



删除网络配置中对UUID和MAC地址的硬编码:
1
2
3
4
rm -f /etc/udev/rules.d/70-persistent-net.rules
PRIMARY_INTERFACE=$(ip route list match 0.0.0.0 | awk 'NR==1 {print $5}')
sed -i '/UUID/d' /etc/sysconfig/network-scripts/ifcfg-$PRIMARY_INTERFACE
sed -i '/HWADDR/d' /etc/sysconfig/network-scripts/ifcfg-$PRIMARY_INTERFACE



为了是openstack实例能与元数据服务通行,修改网络配置:
1
echo "NOZEROCONF=yes" >> /etc/sysconfig/network



关闭iptables、selinux:
1
2
3
sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
service iptables stop && chkconfig iptables off
service ip6tables sotp && chkconfig iptables off



安装相关应用或应用源(可选)
清理yum:
1
yum clean all



删除/tmp 目录中的所有内容:
1
rm -rf /tmp/*



清理最后的登录用户日志:
1
rm -f /var/log/wtmp /var/log/btmp



清理命令历史记录:
1
history -c



关闭虚拟机:
1
poweroff




转换格式:
先将vdi转为raw裸格式,在转换为qcow2

VirtualBox支持格式转换,命令如下
1
2
3
4
VBoxManage clonemedium      [disk|dvd|floppy] <uuid|inputfile> <uuid|outputfile>
                            [--format VDI|VMDK|VHD|RAW|<other>]
                            [--variant Standard,Fixed,Split2G,Stream,ESX]
                            [--existing]



1
VBoxManage clonehd "centos.vdi" centos.img  --format raw --variant standard




raw转为qcow2格式需要借用qemu-img完成
1
qemu-img convert -cf raw centos-6.8.img -O qcow2 centos-6.8.qcow2



参数说明:
    -f 指定需要转换文件的文件格式,既输入镜像格式(可省略)

    -c 压缩

    -O指定要转换的目标格式,既输出镜像格式


将镜像上传到glance Repository
1
openstack image create "centos6.8" --file centos-6.8.qcow2 --disk-format qcow2 --container-format bare --public




注意:
    安装操作系统时只分一个根(/)目录,否则自扩容会失败。
    网卡是DHCP自动获取方式,且已处于激活状态
    关闭系统自带防火墙,使用openstack安全组

运维网声明 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-301148-1-1.html 上篇帖子: centos7 使用非标准端口 离线安装自签名harbor 下篇帖子: 修改/etc/profile环境变量 导致大部分命令不能用 Create
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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