Alat yang mendukungan untuk pembuatan image

Ada beberapa alat yang dirancang untuk mengotomatisasi pembuatan image

Diskimage-builder

Diskimage-builder adalah alat pembuatan image disk otomatis yang mendukung berbagai distribusi dan arsitektur. Diskimage-builder (DIB) dapat membangun image untuk Fedora, Red Hat Enterprise Linux, Ubuntu, Debian, CentOS, dan openSUSE. DIB disusun dalam serangkaian elemen yang saling membangun untuk menciptakan citra yang spesifik.

Untuk membangun image, panggil skrip berikut:

# disk-image-create ubuntu vm

Contoh ini membuat image generik, Ubuntu bootable dari rilis terbaru.

Kustomisasi lebih lanjut dapat dicapai dengan menetapkan variabel lingkungan atau menambahkan elemen ke command-line:

# disk-image-create -a armhf ubuntu vm

Contoh ini membuat gambar seperti sebelumnya, tetapi untuk arsitektur lengan (arm architecture). Lebih banyak elemen tersedia di direktori git source <https://opendev.org/openstack/diskimage-builder/src/branch/master/diskimage_builder/elements> _ dan didokumentasikan dalam dokumentasi diskimage-builder elements documentation.

Oz

Oz adalah alat command-line yang mengotomatisasi proses pembuatan file image mesin virtual. Oz adalah aplikasi Python yang berinteraksi dengan KVM untuk melangkah melalui proses pemasangan mesin virtual.

Ini menggunakan seperangkat kickstart yang telah ditentukan sebelumnya (sistem berbasis Red Hat) dan file yang sudah dipasangkan (sistem berbasis Debian) untuk sistem operasi yang didukungnya, dan juga dapat digunakan untuk membuat image Microsoft Windows.

Perlakukan penuh Oz adal di luar lingkup dokumen ini, tetapi kami akan memberikan contoh. Anda dapat menemukan contoh tambahan dari file template Oz pada GitHub di rcbops/oz-image-build/tree/master/templates. Berikut adalah bagaimana Anda akan membuat image CentOS 6.4 dengan Oz.

Buat file template yang disebut centos64.tdl dengan konten berikut. Satu-satunya entri yang perlu Anda ubah adalah isi ``<rootpw> ``.

<template>
  <name>centos64</name>
  <os>
    <name>CentOS-6</name>
    <version>4</version>
    <arch>x86_64</arch>
    <install type='iso'>
      <iso>http://mirror.rackspace.com/CentOS/6/isos/x86_64/CentOS-6.4-x86_64-bin-DVD1.iso</iso>
    </install>
    <rootpw>CHANGE THIS TO YOUR ROOT PASSWORD</rootpw>
  </os>
  <description>CentOS 6.4 x86_64</description>
  <repositories>
    <repository name='epel-6'>
      <url>http://download.fedoraproject.org/pub/epel/6/$basearch</url>
      <signed>no</signed>
    </repository>
  </repositories>
  <packages>
    <package name='epel-release'/>
    <package name='cloud-utils'/>
    <package name='cloud-init'/>
  </packages>
  <commands>
    <command name='update'>
yum -y update
yum clean all
sed -i '/^HWADDR/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
    </command>
  </commands>
</template>

Template Oz ini menetapkan dimana untuk men-download Centos 6.4 install ISO. Oz akan menggunakan informasi versi untuk mengidentifikasi file kickstart untuk digunakan. Dalam hal ini, template itu akan menjadi RHEL6.auto. Template menambahkan EPEL sebagai repositori dan menginstal paket epel-release, cloud-utils, dan cloud-init, sebagaimana ditetapkan dalam bagian packages dari file.

Setelah Oz melengkapi install OS awal menggunakan file kickstart, Oz itu menyesuaikan image dengan pembaruan. Ini juga menghilangkan setiap referensi untuk perangkat eth0 yang dibuat libvirt saat Oz menyesuaikannya, sebagaimana yang ditentukan dalam bagian command dari file XML ini.

Untuk menjalankan ini:

# oz-install -d3 -u centos64.tdl -x centos64-libvirt.xml
  • Flag -d3 mengatakan bahwa Oz menampilkan status informasi sebagaimana Oz berjalan.

  • -u mengatakan bahwa Oz melakukan kustomisasi (menginstal paket tambahan, menjalankan perintah) setelah Oz itu melakukan instalasi awal.

  • Flag -x mengatakan Oz dengan nama file yang digunakan untuk menulis file XML libvirt (jika tidak maka defaultnya akan ke sesuatu seperti centos64Apr_03_2013-12:39:42).

Jika Anda meninggalkan keluar flag -u, atau Anda ingin mengedit file untuk melakukan kustomisasi tambahan, Anda dapat menggunakan perintah oz-customize, penggunaan file XML libvirt dimana oz-install membuatnya. Sebagai contoh:

# oz-customize -d3 centos64.tdl centos64-libvirt.xml

Oz akan memanggil libvirt untuk boot image dalam KVM, kemudian oz akan ssh ke instance dan melakukan kustomisasi.

VeeWee

VeeWee sering digunakan untuk membangun kotak Vagrant, tetapi VeeWee juga dapat digunakan untuk membangun citra KVM.

Packer

Packer adalah alat untuk pembuatan image mesin untuk berbagai platform dari konfigurasi sumber tunggal.

image-bootstrap

image-bootstrap adalah alat command line yang menghasilkan image mesin virtual bootable dengan dukungan dari Arch, Debian, Gentoo, Ubuntu, dan siap untuk digunakan dengan OpenStack.

imagefactory

imagefactory adalah alat baru yang dirancang untuk mengotomatisasi bangunan, mengubah, dan meng-upload image ke provider cloud yang berbeda. Menggunakan Oz sebagai back-end dan termasuk dukungan untuk cloud berbasis OpenStack.

KIWI

The KIWI OS image builder menyediakan image builder sistem operasi untuk berbagai Linux yang didukung platform perangkat keras serta untuk virtualisasi dan cloud sistem. Image builder ini memungkinkan pembangunan image berdasarkan openSUSE, SUSE Linux Enterprise, dan Red Hat Enterprise Linux. openSUSE Documentation menjelaskan bagaimana menggunakan KIWI.

virt-builder

Virt-builder adalah alat untuk membangun mesin virtual baru secara cepat. Anda dapat membangun berbagai VM untuk penggunaan lokal atau cloud, biasanya dalam beberapa menit atau kurang. Virt-builder juga memiliki banyak cara untuk menyesuaikan VM ini. Semuanya dijalankan dari command line dan tidak membutuhkan hak akses root, jadi otomatisasi dan scripting menjadi sederhana.

Untuk membangun image, panggil skrip berikut:

# virt-builder fedora-23 -o image.qcow2 --format qcow2 \
  --update --selinux-relabel --size 20G

Untuk daftar sistem operasi yang tersedia untuk menginstal:

$ virt-builder --list

Mengimpornya ke libvirt dengan virsh:

# virt-install --name fedora --ram 2048 \
  --disk path=image.qcow2,format=qcow2 --import

openstack-debian-images

openstack-debian-images adalah alat yang digunakan Debian untuk membuat image OpenStack resminya. Itu terbuat dari satu skrip shell yang sangat sederhana yang mudah dimengerti dan dimodifikasi. Ini mendukung Grub dan Syslinux, BIOS atau EFI, amd64 dan arm64 arch.

openstack-debian-images juga dapat digunakan untuk membuat image yang dapat di-boot langsung pada hard disk, daripada menggunakan installer Debian.

Untuk membuat image, ketikkan ini:

# build-openstack-debian-image --release stretch

Lebih banyak parameter dapat ditambahkan untuk menyesuaikan image lebih lanjut:

# build-openstack-debian-image --release stretch \
  --hook-script /root/my-hook-script.sh \
  --debootstrap-url http://ftp.fr.debian.org/debian \
  --sources.list-mirror http://ftp.fr.debian.org/debian \
  --login myusername \
  --extra-packages vim,emacs

File `` / root / my-hook-script.sh`` akan menerima 2 variabel lingkungan: jalur BODI_CHROOT_PATH tempat image dipasang, dan `` BODI_RELEASE`` yang merupakan nama rilis Debian yang merupakan sedang bootstraped. Berikut ini contoh untuk menyesuaikan motd:

# #!/bin/sh
  set -e
  echo "My message" >${BODI_CHROOT_PATH}/etc/motd

Skrip kait ini akan dipanggil pada saat yang tepat dari proses build, ketika semuanya diinstal, tetapi sebelum melepas partisi.

windows-openstack-imaging-tools

windows-openstack-imaging-tools is a PowerShell module that automates the Windows image creation for OpenStack and supports building VHDX, QCOW2, RAW and VMDK image types.

For easier installation, the tool is published as a PowerShellGallery module WindowsImageBuilder.

Windows image build example:

# Install and import WindowsImageBuilder module from PowerShellGallery
Install-Module WindowsImageBuilder -Force
Import-Module WindowsImageBuilder

New-WindowsImageConfig -ConfigFilePath ".\windows-image-config.ini"
# Update the configuration file to fit your specific use case
# Extensive information for all the configuration can be found here:
# https://github.com/cloudbase/windows-openstack-imaging-tools/blob/master/Config.psm1#L21

# Generate the Windows image
New-WindowsOnlineImage -ConfigFilePath ".\windows-image-config.ini"

Requirements:

  • A Windows host, with Hyper-V virtualization enabled, PowerShell >=v4 support and Windows Assessment and Deployment Kit (ADK).

  • A Windows installation ISO or DVD.

  • Windows compatible drivers, if required by the target environment. For example, VirtIO, network card, or storage adapter drivers.

  • Git environment.