当前位置: 首页 > 工具软件 > Oz > 使用案例 >

OZ工具安装使用

颛孙喜
2023-12-01

OZ工具安装使用

http://www.chenshake.com/oz-making-centos-mirror/ 
http://www.iyunv.com/thread-71346-1-1.html 

https://fedoraproject.org/wiki/Getting_started_with_OpenStack_Nova#See_Also

对于Openstack的镜像来说,需要在image里安装cloud init,这样才能注入密钥,网络的设置,也是需要cloud init。
做镜像的步骤,比较繁琐,其实就是一个kvm的image,Oz这个工具,可以很方便让你定制各种操作系统的image,功能还是很强大的,Oz开发和更新还是非常频繁,非常值得关注的一个软件
目前EPEL源已经有Oz的安装包,更新还是非常及时,和开发同步,并且Redhat也是推荐使用这个工具来创建镜像。由于Oz需要使用网络来自动化创建镜像,所以建议别在Openstack的环境下进行使用,建议采用一台干净的机器来做。

准备centos7ISO创建一个虚机,干净的虚机
操作记录:

1、安装epel源
[root@localhost ~]# cd /etc/yum.repos.d/
[root@localhost yum.repos.d]# ls
CentOS-Base.repo  CentOS-CR.repo  CentOS-Debuginfo.repo  CentOS-fasttrack.repo  CentOS-Media.repo  CentOS-Sources.repo  CentOS-Vault.repo
[root@localhost yum.repos.d]# 
[root@localhost yum.repos.d]# yum install epel-release
[root@localhost yum.repos.d]# ls
CentOS-Base.repo  CentOS-CR.repo  CentOS-Debuginfo.repo  CentOS-fasttrack.repo  CentOS-Media.repo  CentOS-Sources.repo  CentOS-Vault.repo  epel.repo  epel-testing.repo

2、安装oz工具
[root@localhost yum.repos.d]# yum install -y libguestfs-tools
[root@localhost yum.repos.d]# yum install oz

oz安装没有成功,所以用下载的RPM包进项安装

[root@localhost yum.repos.d]# yum install python-libguestfs 
[root@localhost yum.repos.d]# yum install python-lxml
[root@localhost yum.repos.d]# yum install libvirt-python
[root@localhost yum.repos.d]# yum install libvirt
root@localhost yum.repos.d]# yum install m2crypto

首先得安装以上依赖包
[root@localhost yum.repos.d]# rpm -ivh /root/oz-0.15.0-1.el7.noarch.rpm

3、查看安装结果
[root@localhost yum.repos.d]# ls /etc/oz/
id_rsa-icicle-gen  id_rsa-icicle-gen.pub  oz.cfg
[root@localhost yum.repos.d]# find / -name oz
/etc/oz
/var/lib/oz

/usr/lib/python2.7/site-packages/oz

重启机器后会看见两个网卡信息virbr0  和 virbr0-nic ,说明oz工具安装成功了!

 

4、/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
# type = kvm
# bridge_name = virbr0
# cpus = 1
# memory = 1024


[cache]
original_media = yes
modified_media = no
jeos = no


[icicle]
safe_generation = no


5、配置文件说明
利用oz自动创建镜像需要两个配置文件  *.tdl  *.ks
------------------*.tdl------xml文件---------确定ISO文件来源--------
创建tdl文件更多参考例子:https://github.com/rcbops/oz-image-build/tree/master/templates 
从tdl文件安装支持两种格式:一种是iso,另一种是url,它们之间的差异是:采用iso类型时oz需要能够获取源镜像文件;URL类型则是从远程服务器(如cobbler服务器上)获取iso解压后的文件

 

6、运用命令

[root@localhost oz_cfg]# oz-install -p -u -d3 -a rhel6.5.ks rhel6.5.tdl

 

示例:

配置Oz,默认Oz是使用raw格式,我们使用qcow2格式

vim /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内置了各个操作系统的自动化安装模板,路径在     /usr/lib/python2.6/site-packages/oz/auto

建立TDL模板文件,及修改RHEL6.auto文件

RHEL6.tdl:

<template>

  <name>RHEL6.4</name>
  <os>
    <name>RHEL-6</name>
    <version>4</version>
    <arch>x86_64</arch>
    <install type='iso'>
      <iso>file:///home/rhel-server-6.4-x86_64-dvd.iso</iso>
    </install>
    <rootpw>root</rootpw>
  </os>
  <description>RHEL 6.4 x86_64</description>
  <repositories>
    <repository name='repo1'>
      <url>http://http://mirrors.yun-idc.com/epel/6/x86_64</url>
      <signed>no</signed>
    </repository>
    <repository name='repo2'>
      <url>http://ftp.sjtu.edu.cn/centos/6/os/x86_64</url>
      <signed>no</signed>
    </repository>
    <repository name='repo3'>
      <url>http://mirrors.kernel.org/centos/6/os/x86_64</url>
      <signed>no</signed>
    </repository>
    <repository name='repo4'>
      <url>http://mirrors.kernel.org/centos/6/updates/x86_64</url>
      <signed>no</signed>
    </repository>
    <repository name='repo5'>
      <url>http://mirrors.kernel.org/fedora-epel/6/x86_64</url>
      <signed>no</signed>
    </repository>
    <repository name='repo6'>
      <url>http://repos.fedorapeople.org/repos/openstack/cloud-init/epel-6</url>
      <signed>no</signed>
    </repository>
  </repositories>
  <packages>
    <package name='epel-release'/>
    <package name='cloud-utils'/>
    <package name='cloud-init'/>
    <package name='vnc'/>
    <package name='vnc-server'/>
  </packages>
  <commands>
    <command name='post'>
sed -i '/^HWADDR/d' /etc/sysconfig/network-scripts/ifcfg-eth0
echo "NOZEROCONF=yes" >> /etc/sysconfig/network
echo "dns-nameservers 192.168.244.1" >> /etc/sysconfig/network
echo "nameserver 8.8.8.8" >> /etc/resolv.conf
echo -n > /etc/udev/rules.d/70-persistent-net.rules
echo -n > /lib/udev/rules.d/75-persistent-net-generator.rules
sed -i 's/disable_root: 1/disable_root: 0/g' /etc/cloud/cloud.cfg
sed -i 's/ssh_pwauth:   0/ssh_pwauth:   1/g' /etc/cloud/cloud.cfg
sed -i 's/PasswordAuthentication no/PasswordAuthentication yes/g' /etc/ssh/sshd_config
service sshd restart
iptables -A INPUT -p tcp --dport 5000:6000 -j ACCEPT
    </command>
  </commands>
</template>
RHEL6.auto:

install
text
key --skip
keyboard us
lang en_US.UTF-8
skipx
network --device eth0 --bootproto dhcp
rootpw %ROOTPW%
firewall --disabled
authconfig --enableshadow --enablemd5
selinux --permissive
timezone --utc America/New_York
bootloader --location=mbr --append="console=tty0 console=ttyS0,115200"
zerombr yes
clearpart --all
part /boot --fstype ext4 --size=200
part pv.2 --size=1 --grow
volgroup VolGroup00 --pesize=32768 pv.2
logvol swap --fstype swap --name=LogVol01 --vgname=VolGroup00 --size=768 --grow --maxsize=1536
logvol / --fstype ext4 --name=LogVol00 --vgname=VolGroup00 --size=1024 --grow
reboot
%packages
@base
%post

默认只安装base包,可以自定配置如下:

.
.
.
reboot
%packages --ignoremissing
@base
@basic-desktop
@chinese-support
@desktop-platform
@desktop-platform-devel
@development
@general-desktop
@graphical-admin-tools
@input-methods
@internet-browser
@java-platform
@gnome-desktop
@network-tools
@remote-desktop-clients
@server-platform
@server-platform-devel
@x11
%post

通过oz-install生成镜像

oz-install -d3 -u RHEL6.tdl

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

qemu-img convert -c /var/lib/libvirt/images/RHEL6.4.qcow2 -O qcow2 /root/RHEL6.4.qcow2

然后就可以使用建好的镜像了。

 类似资料: