Hi,
> 1.) Installation should be unattended. That means, disk should be
> automatically partitioned, and boot or root partition can be in the
> same disks or different disks or RAIDed.
Can be done in kiwi's oem type with:
<oemconfig>
<oem-unattended>true</oem-unattended>
</oemconfig>
if multiple install targets exists, the first one is taken
or you specify the device via
<oem-unattended-id>by-id</oem-unattended-id>
or you filter out
<oem-device-filter>...</oem-device-filter>
depends on the target
Talking about raid we support mdraid in level striping or mirroring
mdraid="mirroring" | "striping"
The disk will be setup in degraded raid mode, which means you can
add disks after deployment as we don't know what the target provides
at image creation time
> 2.) Boot/Root can be either MBR or GPT, and it depends on hardware
> platform.
yes we support EFI, EFI-secure boot, legacy(CSM/BIOS) mode
which can be controlled by the firmware="..." attribute
> 3.) Same ISO image can be installed on multiple platforms, from
> physical hardware to virtual platform.
yes kiwi detects the storage devices, as long as drivers are present
you can install to any device
> 4.) System configuration files can be override, especially files under
> /etc.
yes we call that overlay files in kiwi. In your image description you
can put static files for overwrite in a tarball or below a root/ directory.
The structure there is put on top and overwrites what exists
> 5.) Same ISO image can be used for ISO install, USB install or PXE
> install.
The install iso kiwi creates is a hybrid system, meaning it provides
an install media suitable for CD/DVD and USB sticks in one file.
For pxe deployment kiwi supports two systems, documented here:
http://suse.github.io/kiwi/building/build_oem_disk.html#deployment-methods
> 6.) Image can be used to upgrade too. For example, decompress the
> tar.gz like FreeBSD, and manipulate the grub entries.
Don't understand this
> 7.) Build target is CentOS for history reason, Can the build system
> be CentOS too? Or it has to be SUSE or OpenSuse(Learning it in spare
> time, and like its philosophy)
There are no constraints on the underlaying build system except for the core
tools used by kiwi to be compatible. Meaning tools like xz, gpart, fdisk,
losetup, dmsetup, lvcreate, btrfs etc etc... kiwi is a heavy user of many
low level system components. Fortunately during the past years the core
linux is more and more the same. My integration tests in the buildservice
uses the target system also as host system. So at least for my Fedora25
build I can approve it works.
Overall I'm not suffering from the "not invented here syndrom" :) and
try hard to make my software work on all linux distributions... of course
there is no guarantee
> 8.) How to build CentOS applications? Compile application into RPM on
> CentOS, put into some Repo, then let Kiwi do packaging?
Don't understand this
> 9.) What image is good --- iso or oem. Frankly, I don't get the
> difference here via reading. For example, I thought both can be used on
> bare mental machines.
The iso type builds live iso images using an overlay technology to
allow persistent or temporary writing depending on the target capabilities
the rootfs is a squashfs here
The oem type builds a disk image as file (virtual disk) and can therefore
be used to become the real operating system with free choice for root
filesystem, lvm, btrfs and more. It is meant to be rolled out to [n]
clients and not to be a live system on a mobile media
> 10.) How to add/remove or even update drivers or packages? In either OS
> level or initrd level.
The initrd is based on dracut, thus whenever dracut runs it embedds the
tools and libraries of the environment it is called from. Updating
packages can be done on several levels. I normally just rebuild the image.
Another approach is to run "zypper up", "dnf update" or how you call it
after the system has been deployed. Another approach is to build in the
open buildservice. Any new package will automatically trigger a rebuild
of the image... there are many ways to update software and it highly
depends on the use case and the environment to make the decision what's
best
> Want to see whether we can use KIWI at production. Please give some
> pointers so that I can dive in to explore feasibility.
Not sure what you are aiming for but kiwi is used in production all over
the suse company. As I work in the public cloud development team one pointer
I can give you is the Amazon EC2 marketplace, search for the SUSE images
and run an instance. These are all kiwi images used by all people who
made the decision for sles in Amazon EC2 :) The marketplace of Microsoft
Azure as well as Google Compute Engine offers also kiwi built images.
From my personal experience; I would only change the system which builds
images if there is a real benefit. If the end result will be the same but
just differently build I would not put on the effort. Of course it
brings a smile on my face if you give kiwi a chance :)
Regards,
Marcus
--
Public Key available via:
https://keybase.io/marcus_schaefer/key.asc
keybase search marcus_schaefer
-------------------------------------------------------
Marcus Schäfer (Res. & Dev.) SUSE Linux GmbH
Tel: 0911-740 53 0 Maxfeldstrasse 5
FAX: 0911-740 53 479 D-90409 Nürnberg
HRB: 21284 (AG Nürnberg) Germany
GF: Felix Imendörffer, Jane Smithard, Graham Norton
http://www.suse.de
-------------------------------------------------------