利用OZ工具创建openstack镜像

导入epel源

# rpm -ivh http://mirrors.sohu.com/fedora-epel/6/x86_64/epel-release-6-8.noarch.rpm

安装OZ工具包及其依赖

# yum install -y oz libguestfs-tools

查看OZ的安装信息

# rpm -qa | grep oz

# rpm -ql oz-0.12.0-2.el6.noarch

/usr/lib/python2.6/site-packages/oz/auto   各操作系统自动化安装模板所在目录

/usr/share/doc/oz-0.12.0/examples            tdl配置模板所在目录

配置OZ使创建的镜像类型为qcows for openstack

# cat /etc/oz/oz.cfg

[paths]

output_dir = /var/lib/libvirt/images

data_dir = /var/lib/oz

screenshot_dir = /var/lib/oz/screenshots

# sshprivkey = /etc/oz/id_rsa-icicle-gen

[libvirt]

uri = qemu:///system

#image_type = raw                    #raw输出的结果文件太大,不支持压缩

image_type = qcow2                 #修改镜像类型为qcow2,支持压缩,1-2G文件能压缩到几百兆

# type = kvm

# bridge_name = virbr0

# cpus = 1

# memory = 1024

[cache]

original_media = yes

modified_media = no

jeos = no

[icicle]

safe_generation = no

创建tdl文件

更多参考例子:https://github.com/rcbops/oz-image-build/tree/master/templates

从tdl文件安装支持两种格式:一种是iso,另一种是url,它们之间的差异是:采用iso类型时oz需要能够获取源镜像文件;URL类型则是从远程服务器(如cobbler服务器上)获取iso解压后的文件。例如:

#iso类型配置

<install type=‘iso‘>

<iso>file:////opt/rhel-server-6.5-x86_64-dvd.iso</iso>

</install>

或者:

<install type=‘iso‘>

<iso>ftp://kickstart.rackspace.com/isos/redhat/6.5/rhel-server-6.5-x86_64-dvd.iso</iso>

</install>

或者:

<installtype=‘iso‘>

<iso>http://mirror.rackspace.com/CentOS/6/isos/x86_64/CentOS-6.5-x86_64-bin-DVD1.iso</iso>

</install>

#url类型配置

<install type=‘url‘>

<url>http://mirror.rackspace.com/centos/6/os/x86_64/</url>

</install>

我创建的tdl文件(ISO类型– 注意下面的文件内容要满足xml文件格式,否则会报错):

# cat rhel6.5.tdl

<template>

<name>rhel6.5_x86_64</name>

<description>RedHat 6.5 x86_64 template</description>

<os>

<name>RHEL-6</name>

<version>5</version>

<arch>x86_64</arch>

<rootpw>linuxblind</rootpw>

<install type=‘iso‘>

<iso>file:////var/oz/ios/rhel-server-6.5-x86_64-dvd.iso</iso>

</install>

</os>

<disk>

<size>20</size>

</disk>

<commands>

<command name=‘console‘>

sed -i ‘s/ rhgb//g‘ /boot/grub/grub.conf

sed -i ‘s/ quiet//g‘ /boot/grub/grub.conf

</command>

<command name=‘update‘>

sed -i ‘/^HWADDR/d‘ /etc/sysconfig/network-scripts/ifcfg-eth0

sed -i ‘/^UUID/d‘ /etc/sysconfig/network-scripts/ifcfg-eth0

echo -n > /etc/udev/rules.d/70-persistent-net.rules

echo -n > /lib/udev/rules.d/75-persistent-net-generator.rules

sed -i ‘/^SELINUX=/s/enforcing/disabled/‘ /etc/selinux/config

</command>

</commands>

</template>

创建kickstart文件

更多参考例子:https://github.com/clalancette/oz/blob/master/oz/auto/

我创建的ks文件(这里采用RHEL6.auto作为模板):

# cat rhel6.5.ks

install

text

key --skip

keyboard us

lang en_US.UTF-8

skipx

network --device eth0 --bootproto dhcp

#network --device eth1 --bootproto dhcp

rootpw linuxblind

firewall --disabled

authconfig --enableshadow --enablemd5

selinux --disabled

timezone --utc Asia/Shanghai

bootloader --location=mbr--append="console=tty0 console=ttyS0,115200"

zerombr yes

clearpart --all

part /boot --fstype ext4 --size=200

part /    --fstype ext4 --size=10000

part swap --fstype swap --size=2048

part /var --fstype ext4 --grow --size=200

reboot

%packages

@core

@server-policy

%post

说明:用kickstart文件制作的镜像优点:支持自定义分区、定制安装包和自定义脚本等

开始制作镜像

# oz-install -p -u -d3 -a rhel6.5.ks rhel6.5.tdl

镜像创建完成后,会保存在/var/lib/libvirt/images/下,使用下面的语句压缩镜像,方便上传

# qemu-img convert -c/var/lib/libvirt/images/rhel6.5_x86_64.qcow2 -O qcow2 /opt/rhel6.5_x86_64.qcow2

如果生成的是raw格式,可以使用下面的语句转换成qcow2格式

# qemu-img convert/var/lib/libvirt/images/rhel6.5_x86_64.dsk -O qcow2 /opt/rhel6.5_x86_64.qcow2

压缩比:

# du -sh /opt/rhel6.5_x86_64.qcow2

399M    rhel6.5_x86_64.qcow2

# du -sh /var/lib/libvirt/images/rhel6.5_x86_64.qcow2

1.6G   /var/lib/libvirt/images/rhel6.5_x86_64.qcow2

问题

问题1:使用# oz-install -p -u -d3 -a rhel6.5.ks rhel6.5.tdl 安装时提示下面的错误

raise oz.OzException.OzException("Nodisk activity in %d seconds, failing. %s" % (inactivity_timeout, screenshot_text))

oz.OzException.OzException: No diskactivity in 300 seconds, failing.  Checkscreenshot at /var/lib/oz/screenshots/rhel6.5_x86_64-1432621714.18.ppm for moredetail

解决办法:检查ks文件是否有误,通常都是由于ks文件引起的

问题2:

oz.OzException.OzException: UnsupportedRHEl-6 update 5

解决办法:

修改rhel6.5.tdl文件,将<name>RHEl-6</name> 修改为<name>RHEL-6</name>

查看支持哪些参阅:https://github.com/clalancette/oz/blob/master/oz/GuestFactory.py

时间: 2024-11-05 23:38:23

利用OZ工具创建openstack镜像的相关文章

使用virt-manager工具创建openstack使用的镜像

小伙伴们好不容易的把openstack环境部署好了:默认会有一个ubuntu系统的镜像,如果想使用centos或者是其它的系统怎么办呢?那么接下就是制作咯:如果你会制作一个任意系统只要是openstack能支持的就行,这样就不用担心没有系统资源的问题了: 如果在安装配置virt-manager有问题,请看我之前发布的文章: 运行 # virt-manager 打开Virtual Machine Manaer图形界面: 这个还可以监控vm的cpu,内存等信息: 新建一个vm 选择操作系统 选择启动

利用开发工具创建动态图表

举例:前提是要搭建好基表,稍后会写一篇文章告知如何搭建完美基表. 一.最简单的一级菜单形式: 有甲.乙.丙三个工厂,要求通过点选工厂看到三天的生产趋势图. 备注:基表的搭建非常重要,日期严格按照列排布. 1.通过excel开发工具-插入-列表框-选中列表框右键设置控件格式,如图: 当选中甲时,单元格链接A1的数据显示为1,当选乙时显示2,…… 2.通过excel开发工具-插入-滚动条-选中滚动条右键设置控件格式-控制,单元格链接A2,通过点击滚动条来前后呈现不同日期工厂的生产情况. 3.通过in

MAPINFO中利用GridMaker工具创建栅格图层

在工作中需要使用栅格地图,以往都是由研发人员来创建,今天偶然发现Mapinfo中有GridMaker这样一个工具,结合网络搜索自己试了一下,居然做成功了,这里把步骤记录下来,方便以后查看. 1.首先在测定需要创建栅格的城市经纬度范围 这个比较简单,分别将鼠标放在地图区域的左下角和右上角,然后通过Mapinfo左下角的CursorLocation得到两个点的经纬度,即为整个区域的经纬度范围. 2.Mapinfo中添加GridMaker工具 在Mapinfo中Tools->Tool Manager中

制作Ubuntu14.04的Openstack镜像

下载好Ubuntu官方镜像安装文件:不要使用desktop版,在virtualbox和vm上都安装报错,因为不需要桌面,所有没去管了. 第一步.准备好如下文件: 1.ubuntu-14.04.4-server-amd64.iso 2.virtual-box 5.0.16 (Vmware也可以,类似安装,创建虚拟机硬盘是选择单一文件可方便转换) 第二步.安装一个虚拟机: 可以使用之前下载的ubuntu-14.04.4-server-amd64.iso安装 进入虚拟机安装qemu-kvm,用来转换v

docker学习笔记5:利用commit命令创建镜像 和 删除本地镜像

一.概述 创建镜像有两种方法,一是用commit命令,二是用dockerfile方法(这个更常用,在下面文章介绍).本章介绍commit方法. 在介绍commit命令前,我们先回顾下对代码的版本控制,当修改代码后,我们会commit变更到版本服务器上. 对于容器类似的概念,当创建容器后,如果后面对容器做了修改,就可以利用commit命令将修改提交为一个新的镜像. 二.例子说明 下面我们通过具体的例子来说明: 1.创建新容器 docker run --name newcontent -i -t u

构建基于CXF的WebService服务(2)-- 利用CXF提供的wsdl2java工具创建客户端

1.环境配置 将CXF_HOME/bin加入到环境变量path中,如我的是D:\Java\Jar\apache-cxf-2.7.7\bin 打开cmd输入 wsdl2java -v 出现如下信息表示配置成功 2.wsdl2java的使用 (1)创建一个"Java Project"项目,暂且命名为client,将CXF用到的jar包引入进来,去掉jetty相关包,加入geronimo-jaxws_2.2_spec-1.1.jar包 (2)打开命令行工具,将目录切换到client项目中的s

20、EVE-NG华丽登场Openstack镜像,体验私有云!

文章列表(关注微信公众号EmulatedLab,及时获取文章以及下载链接) 1.EVE-NG介绍(EVE-NG最好用的模拟器,仿真环境时代来临!) 2.EVE-NG安装过程介绍 3.EVE-NG导入Dynamips和IOL 4.EVE-NG导入QEMU镜像 5.EVE-NG关联SecureCRT,VNC,Wireshark 6.EVE-NG网卡桥接,带您走进更高级的实验 7.EVE-NG硬盘扩容,存储海量镜像 8.EVE-NG定制个人镜像,脚本快速导入 9.EVE-NG容纳H3C.Huawei,

OpenStack镜像管理3

第三部分 OpenStack镜像管理 一.简介 很多源都有为OpenStack已经编译好的各种镜像了,您可以直接下载并通过使用这些镜像来熟悉OpenStack. 不过如果是为生产环境进行部署的话,您一定需要构建含有定制软件或配置的镜像文件.不要着急,本章将引领您完成几种较为流行的Linux发行版镜像,最后也将制作一份Windows的镜像. 由不同的Linux发行版制作镜像时,过程几乎一样,仅有微小的差别而已.由于含有cloud-ini软件包,人们用Ubuntu系统制作镜像文件变得非常容易.Clo

(九)创建 Docker 镜像

创建镜像有很多方法,用户可以从 Docker Hub 获取已有镜像并更新,也可以利用本地文件系统创建一个. 修改已有的镜像 查看已有的镜像: $ sudo docker images REPOSITORY TAG IMAGE ID CREATED SIZE ubuntu latest 2a4cca5ac898 9 days ago 111MB 下面进入到ubuntu容器中: $ sudo docker run -t -i ubuntu /bin/bash [email protected]:/#