KIWI安装使用

网友投稿 1408 2022-05-29

1   前言

1.1         文档目标

本文档主要记录了镜像制作工具KIWI的安装和使用方法。

KIWI官方提供了一篇很详细的文档:https://doc.opensuse.org/projects/kiwi/doc/,但是全英文且冗长,可以做工具书使用,但是不适合新手用户阅读,因此本文简单记录KIWI的上手方式,为新手用户提供一个较平滑的学习曲线。

1.2         文档读者

本文档的主要读者是KIWI的使用者。

2   KIWI简介

KIWI是SUSE提供的镜像制作工具,可以制作各种类型的镜像,包括容器镜像(lxc|docker、lxc|docker),压缩包镜像(tbz),安装包镜像(iso),虚拟机镜像(vmx)等等。

3   KIWI的安装

KIWI的安装在联网情况下相对比较简单,只需要配置好zypper源然后执行zypper install即可。

3.1         配置zypper源

由于在kiwi安装过程中可能出现循环包依赖从而导致始终无法安装成功的情况,因此建议将zypper自带的源全部删除,然后替换成国内源。

配置过程如下:

# 删除zypper自带的源

zypper rr Suse-SLES-Application

# 替换新的源

zypper ar http://mirrors.aliyun.com/opensuse/distribution/openSUSE-stable/repo/oss/ aliyun-oss

zypper ar http://mirrors.aliyun.com/opensuse/distribution/openSUSE-stable/repo/non-oss/ aliyun-non-oss

3.2         安装kiwi

配置好zypper后,kiwi的安装就相对比较简单了,执行如下命令即可。

zypper in kiwi kiwi-doc kiwi-templates kiwi-desc-vmxboot kiwi-desc-usbboot kiwi-desc-isoboot kiwi-desc-xenboot kiwi-desc-oemboot squashfs

4   KIWI使用

Kiwi的使用通常分为两步,kiwi-prepare和kiwi-create,其中kiwi-prepare步骤创建了一个目录,并以该目录为根路径(使用chroot工具)安装了一个操作系统,kiwi-create步骤则将该目录再次打包为一个镜像。

Kiwi在进行prepare和create两个步骤时都依赖于一个核心配置文件——config.xml文件,kiwi自身在/usr/share/kiwi/image下面提供了许多config.xml模板,使用时可以选择适合自己的模板适当进行修改即可。下面将本人使用的config.xml文件列出来,并对其关键部分进行讲解。

Marcus Schaefer

ms@novell.com

boot/initrd image used for LiveDVD media

2.1.2

zypper

false

en_US

us.map.gz

UTC

utc

 ④

KIWI的安装及使用

下面对文件中的关键部分进行讲解。

① Description记录了要生成镜像的描述信息,其中最重要的一个属性是type属性,该属性有两个可选值:system和boot,其中system表示要生成的是一个可安装的镜像,如iso等,而boot则表示要生成的是一个已安装的镜像,如vhd等。

② preferences记录了要生成镜像的主要信息,其中最重要的是type参数中的image子参数,该参数决定了生成镜像的具体类型,可选值包括“lxc|docker”、“ext2|ext3|ext4|btrfs|squashfs”、“tbz”、“cpio”、“iso”、“oem”、“pxe”、“split”、“vmx”等等。

③ profiles可以认为是一个标签的声明,可以声明出多个标签,该标签在profiles中被声明后可以使用在packages和drivers参数中,然后在kiwi --prepare和kiwi –create中通过--add-profile参数来指定标签,从而使得仅带有该标签的packages和drivers参数有效。

④ users标签应该是最好理解的标签了,它定义了系统中的初始用户。需要注意的是其中的密码默认是加密存储的,需要通过kiwi –createpassword来生成。如果需要进行不加密存储,则需要添加pwdformat="plain"参数。

⑤ repository参数指定了制作镜像时安装软件所使用的源。需要注意的是,这里的源不仅是用于安装系统中的软件,同时也用于安装系统自身。

⑥ package参数用于定义包相关的属性,通过type不同进行区分:type=bootstrap表示这些package需要在系统的安装阶段进行预安装,type=image表示这些package需要在系统制作镜像时进行安装,type=delete表示这些package需要在系统制作镜像时预先删除。

config.xml文件编写好之后,通过kiwi --prepare和kiwi --create即可创建出需要的镜像,这个过程比较简单,在此就不多赘述了。

镜像服务 XML

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:我的第一个python web开发框架(5)——开发前准备工作(了解编码前需要知道的一些常识)
下一篇:Vue.js入门之工程目录介绍
相关文章