转自:http://www.chenshake.com/oz-making-centos-mirror/

一直以来,我都是使用Ubuntu的镜像,自己没动手做过镜像。对于Openstack的镜像来说,需要在image里安装cloud init,这样才能注入密钥,网络的设置,也是需要cloud init。

做镜像的步骤,比较繁琐,其实就是一个kvm的image,有什么办法可以简化呢?Oz这个工具,应该可以完全满足你的要求,可以很方便让你定制各种操作系统的image,功能还是很强大的,Oz开发和更新还是非常频繁,非常值得关注的一个软件

目前EPEL源已经有Oz的安装包,更新还是非常及时,和开发同步,并且Redhat也是推荐使用这个工具来创建镜像。由于Oz需要使用网络来自动化创建镜像,所以建议别在Openstack的环境下进行使用,建议采用一台干净的机器来做。

我用下面的配置文件制作的镜像,放到网盘上,大家可以测试一下。

http://yunpan.cn/QiQ6syasRAH7Q 访问密码 90e3

安装

yum -y  install oz

装完后,你最好就重启机器,你用ifconfig,可以看到virbr0这个网络,不然你就安装失败。

配置Oz

默认Oz是使用raw格式,我的习惯是使用qcow2格式,

# cat /etc/oz/oz.cfg
[paths]
output_dir = /var/lib/libvirt/images
data_dir = /var/lib/oz
screenshot_dir = /var/lib/oz/screenshots[libvirt]
uri = qemu:///system
#image_type = raw
image_type = qcow2
# type = kvm
# bridge_name = virbr0
# cpus = 1
# memory = 1024[cache]
original_media = yes
modified_media = no
jeos = no[icicle]
safe_generation = no

这个就是Oz的配置文件,我把默认文件格式改成qcow2.

Oz支持的系统

目前EPEL的源,已经更新到最新的版本,支持Centos 6.5。

当前Oz的版本

# rpm -qa | grep oz
oz-0.12.0-1.el6.noarch

创建配置文件

我们需要两个配置文件,centos65.tdl 和centos6.ks

看一个具体的Oz的tdl文件,就全部明白

创建 centos65.tdl 文件

<template><name>centos_65_x86_64</name><description>CentOS 6.5 x86_64 template</description><os><name>CentOS-6</name><version>5</version><arch>x86_64</arch><install type='url'><url>http://172.28.0.1/cobbler/ks_mirror/CentOS6.5-x86_64/</url></install></os><disk><size>10</size></disk>
</template>

做Openstack的镜像的kickstart文件,参考http://repos.fedorapeople.org/repos/openstack/guest-images/

使用我的centos6.ks 文件,才能支持镜像的resize。

oz-install -p -u -d3 -a centos6.ks centos65.tdl

镜像创建完后,会保存在 /var/lib/libvirt/images ,对image进行压缩

qemu-img convert -c /var/lib/libvirt/images/centos_65_x86_64.qcow2 -O qcow2 \
/root/centos_65_x86_64.qcow2

压缩后的镜像大小在300M左右.没压缩前,大概是1.3G。

如果你生成的是raw格式,可以进行转换成qcow2格式

qemu-img convert /var/lib/libvirt/images/centos65_x86_64.dsk -O qcow2 /root/centos65_x86_64.qcow2

参考文章

http://waipeng.wordpress.com/2013/05/20/building-centos-images-for-openstack/

http://docs.openstack.org/grizzly/openstack-image/content/ch_creating_images_automatically.html

http://www.jansipke.nl/creating-a-centos-vm-image-for-openstack/

https://github.com/rackerjoe/oz-image-build

我的centos6.ks 文件。

Oz介绍

Oz内置各个操作系统安装的模板,对于Redhat系列来说,其实就是内置了kickstart脚本,不过这些默认的ks文件,可能无法满足你的需求,那么你可以自己制定自己的ks文件。

Oz内置了各个操作系统的自动化安装模板,/usr/lib/python2.6/site-packages/oz/auto

我的centos6.ks文件

#version=DEVEL
# Firewall configuration
firewall --enabled --service=ssh
repo --name="repo0" --baseurl=http://172.28.0.1/cobbler/ks_mirror/CentOS6.5-x86_64
repo --name="repo1" --baseurl=http://172.28.0.1/cobbler/repo_mirror/Centos6-UPDATES
repo --name="repo2" --baseurl=http://172.28.0.1/cobbler/repo_mirror/epel6-x86_64
# Root password
rootpw --iscrypted --lock $1$2e74e5$wMj25e4rEb4rJxqm7BAnk0
# System authorization information
auth --useshadow --enablemd5
# System keyboard
keyboard us
# System language
lang en_US.UTF-8
# SELinux configuration
selinux --enforcing
# Installation logging level
logging --level=info
# Reboot after installation
reboot
# System services
services --disabled="avahi-daemon,iscsi,iscsid,firstboot,kdump" --enabled="network,sshd,rsyslog,tuned"
# System timezone
timezone --isUtc Asia/Chongqing
# Network information
network  --bootproto=dhcp --device=eth0 --onboot=on
# System bootloader configuration
bootloader --append="console=ttyS0,115200n8 console=tty0" --location=mbr --driveorder="sda" --timeout=1
# Clear the Master Boot Record
zerombr
# Partition clearing information
clearpart --all
# Disk partitioning information
#part / --fstype="ext4" --grow --size=1
part / --fstype ext4 --size=512 --grow%post# make sure firstboot doesn't start
echo "RUN_FIRSTBOOT=NO" > /etc/sysconfig/firstbootcat <<EOL >> /etc/rc.local
if [ ! -d /root/.ssh ] ; thenmkdir -p /root/.sshchmod 0700 /root/.sshrestorecon /root/.ssh
fi
EOLcat <<EOL >> /etc/ssh/sshd_config
UseDNS no
PermitRootLogin without-password
EOL# bz705572
ln -s /boot/grub/grub.conf /etc/grub.conf# bz688608
sed -i 's|\(^PasswordAuthentication \)yes|\1no|' /etc/ssh/sshd_config# allow sudo powers to cloud-user
echo -e 'cloud-user\tALL=(ALL)\tNOPASSWD: ALL' >> /etc/sudoers# bz983611
echo "NOZEROCONF=yes" >> /etc/sysconfig/network# set virtual-guest as default profile for tuned
echo "virtual-guest" > /etc/tune-profiles/active-profile#bz 1011013
# set eth0 to recover from dhcp errors
cat > /etc/sysconfig/network-scripts/ifcfg-eth0 << EOF
DEVICE="eth0"
BOOTPROTO="dhcp"
ONBOOT="yes"
TYPE="Ethernet"
USERCTL="yes"
PEERDNS="yes"
IPV6INIT="no"
PERSISTENT_DHCLIENT="1"
EOF
#bz912801
# prevent udev rules from remapping nics
touch /etc/udev/rules.d/75-persistent-net-generator.rules#setup getty on ttyS0
echo "ttyS0" >> /etc/securetty
cat <<EOF > /etc/init/ttyS0.conf
start on stopped rc RUNLEVEL=[2345]
stop on starting runlevel [016]
respawn
instance /dev/ttyS0
exec /sbin/agetty /dev/ttyS0 115200 vt100-nav
EOF# lock root password
#passwd -d root
#passwd -l root# let's randomise the root password
head -n1 /dev/urandom | md5sum| awk {'print $1'} | passwd --stdin root# clean up installation logs"
yum clean all
rm -rf /var/log/yum.log
rm -rf /var/lib/yum/*
rm -rf /root/install.log
rm -rf /root/install.log.syslog
rm -rf /root/anaconda-ks.cfg
rm -rf /var/log/anaconda*
%end%packages --nobase --excludedocs
wget
vim
cloud-init
cloud-utils
dracut-modules-growroot
%end

说明

安装途径

<install type='url'><url>http://download.fedoraproject.org/pub/fedora/linux/releases/15/Fedora/x86_64/os/</url>
</install>

如果iso在本地,如果是url,就写成http://iso路径 就可以

<install type=’iso’>
<iso>file:///root/rhel-server-6.3-x86_64-dvd.iso</iso>
</install>
</os>

默认磁盘改为10G

<disk><size>10</size></disk>

Oz制作CentOS镜像相关推荐

  1. 企业私有云应用之使用OZ制作openstack镜像

    最近工作忙,好久没写博客,现在正好有空介绍一下我这里使用私有云的经验. 现在分享一下如何使用oz自动化制作openstack镜像,下面有我自己制作centos 6.4 6.5 6.7 7.2与ubun ...

  2. linux系统制作qcow2,oz制作qcow2镜像

    oz是一个方便制作qcow2镜像的工具,利用oz可以很方便的生成可以upload到openstack的镜像! ks.cfg =================================== #p ...

  3. OZ制作openstack镜像出错问题汇总

    1 到900/1200 删除所有/var/lib/oz下的文件夹重建就好了,confilct应该是这个原因 2 到650/1200时出错,,报空间不足,实际上是 tdl文件中的size参数 默认是1G ...

  4. 制作 docker 镜像

    基础环境说明 # cat /etc/redhat-release CentOS release 6.8 (Final) 设置 docker 镜像源# # yum install -y yum-prio ...

  5. Docker自制CentOS镜像

    系统环境:CentOS 7.3 将yum源切换到阿里源 可以直接写成一个脚本 #!/bin/sh mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos ...

  6. linux 镜像自动安装,制作能自动安装的CentOS镜像文件

    FILE=\'/root/packages.txt\' DEST_DIR=\'/root/iso/CentOS\' SRC_DIR=\'/media/cdrom/CentOS\' While  rea ...

  7. 制作openstack镜像win7.qcow2(centos/ubuntu/win镜像分享)

    转载请注明:姬子的博客 » 制作openstack镜像win7.qcow2(centos/ubuntu/win镜像分享) 在搭建openstack之后,我们即可使用镜像开启实例.然而centos/ub ...

  8. 一分钟,制作一个centos镜像

    大家好,笔者最近学习docker相关的技术.今天,我们一起制作一个 centos镜像. 记得上大学期间我们学习Linux的时候,我们通常是在Window上安装一个vmvare软件,然后下载一个几个G的 ...

  9. Docker Review - dockerfile 实战_使用dockerfile制作tomcat镜像

    文章目录 Pre Docker 官方镜像 Dockerfile dockerfile制作tomcat镜像 准备软件 编写Dockerfile文件 dockerfile构建镜像 启动镜像 测试访问tom ...

  10. 简单几步就教会你如何使用 dockerfile 制作 LNMP 镜像,还不赶紧学起来

    简单几步就教会你如何使用dockerfile制作LNMP镜像 前言 一.dockerfile撰写php镜像 二.dockerfile撰写mysql镜像 三.dockerfile撰写nginx镜像 四. ...

最新文章

  1. oracle用户创建及权限设置
  2. 【控制】《多智能体系统的协同群集运动控制》陈杰老师-第2章-连通性保持条件下多智能体系统群集运动控制
  3. horizon服务主要模块_OpenStack组件——Horizon Web界面管理服务
  4. java实现向有序数组中插入一个元素
  5. 保存工具条菜单有bug吗?
  6. python常用包及其用法_Python 使用的部分常用包以及数据分析pandas及工具jupyter使用...
  7. java从入门到精通一(java开发入门)
  8. D. Bash and a Tough Math Puzzle(区间gcd+思维)
  9. 网络速度在线测试软件,在线网速测试(局域网速度测试工具)
  10. java代码混淆加密_关于Java加壳和代码混淆
  11. 计算机科学技术技术的发展趋势,计算机科学与技术的发展趋势分析
  12. 安卓虚拟键盘_干货分享:推荐几款性能不错的安卓模拟器
  13. php快照劫持代码,php快照劫持跳转代码,php快照劫持源码下载
  14. VS Code环境下编辑、编译、下载Keil工程代码
  15. 火狐插件restclient发送post请求
  16. 用STM32F103完成对SD卡的数据读取
  17. 项目风险应对策略总结
  18. Word怎么删除空白页?这3种方法:适用于所有版本Word!
  19. IDS与IPS工作原理
  20. Facebook商业模式分析

热门文章

  1. C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(三十五)地图编辑器的初步使用
  2. 芙蓉姐姐:藕要用光芒四射的才华刺瞎世俗的狗眼!
  3. 19 C++ 特殊工具与技术
  4. 当拖延症患者习惯了拖延症,并且开始不惧怕后果时
  5. 怎样把游戏存进计算机里,怎样把单机游戏存档能从一台电脑转移到另一台 – 手机爱问...
  6. SEOer必读:不可忽视的SEO思维!
  7. jupyter notebook无法打开的问题
  8. C#格式化JSON字符串
  9. 支持动态调频-AXP228电源管理-技术支持iTOP-4418开发板必备
  10. 支付宝总裁邵晓锋:应注重电子商务安全软投入