Skip to content

pombredanne/rejviz

 
 

Repository files navigation

Rejviz

Rejviz [ray-veez], VM / disk image tools built on top of libguestfs-tools.

Currently rejviz-builder command is implemented.

Commands

rejviz-builder

A command that proxies to virt-builder and adds a custom --nic option, which allows to configure network interfaces on the image (files /etc/sysconfig/network-scripts/ifcfg-ethX). All other options are passed to virt-builder untouched.

The format of the --nic parameter is:

--nic name=NAME[,key=VALUE]...

key = {name|hwaddr|bootproto|ipaddr|network|netmask|broadcast}

The values which are not specified can often be inferred (or in case of hwaddr, autogenerated to a random KVM MAC address).

  • If only name is specified, the bootproto is 'dhcp'.
  • If name and ipaddr is specified, the bootproto is 'static' and and the other values are inferred as for a /32 network.

Example usage:

rejviz-builder centos-7.0 \
    -o mycentos.qcow2 --format qcow2 --size 15G \
    --hostname mycentos --root-password password:mypassword \
    --nic name=eth0 \
    --nic name=eth1,ipaddr=192.168.122.15 \
    --nic name=eth2,ipaddr=192.168.123.15

Design doc

Use cases

  • Create a VM image
    • From base image
    • Having some size
    • With some script run
    • With network interfaces configured (some DHCP, some static IPs)
    • Subscribed via RHSM
  • Create a VM
    • With network interface MAC addresses matching the interfaces from the image
    • With some RAM and vCPUs
  • Amend existing VM image (or libvirt domain)
    • Reconfigure network interfaces
    • Re-subscribe via RHSM
  • Tell me something about an image (or libvirt domain)
    • List network interfaces and their basic config
    • Check that MACs on the domain match MACs in /etc/sysconfig/network-scripts

I/O view

  • Creating an image
    • In: params
    • Out: image
    • rejviz-builder command that proxies to virt-builder and adds custom params on top (RHSM, network interfaces)
  • Creating a VM
    • In: image and params
    • Out: domain XML or created domain (both through virt-install)
    • rejviz-install command that proxies to virt-install and determines some of the parameters from the image
  • Amending an image (or libvirt domain)
    • In: (image or domname) and params
    • Out: image edited in place
    • rejviz-customize command that proxies to virt-customize and adds custom params on top (RHSM, network interfaces)
  • Image/domain introspection
    • In: (image or domname) and params
    • Out: information printed
    • rejviz-peek

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 100.0%