qvm: A Command Line Tool for the Provisioning of Virtual Machines

Emmanuel Kayode Akinshola Ogunshile

2018

Abstract

The purpose of this paper is to create and demonstrate a command line utility that uses freely available cloud images—typically intended for deployment within public and private cloud environments—to rapidly provision virtual machines on a local server, taking advantage of the ZFS file system. This utility, qvm, aims to provide syntactical consistency for both potential contributors and users alike—it is written in Python and uses YAML for all user configuration; exactly like cloud-init, the post-deployment configuration system featured in the cloud images used by qvm to allow its rapid provisioning. qvm itself does not use the libvirt API to create virtual machines, instead parsing pre-defined templates containing options for the commonly used virt-install tool, installed alongside virt-manager, the de facto graphical libvirt client. The utility is capable of importing cloud images into zvols and creating clones for each virtual machine using the pyzfs Python wrapper for the libzfs_core C library, as well as a custom recreation of pyzfs based on the zfs command line utility. qvm aims to introduce some basic IaC constructs to the provisioning of local virtual machines using the aforementioned common tools, requiring no prior experience beyond the usage of these tools. Its use of cloud-init allows for portability into existing cloud infrastructure, with no requirements on common Linux distributions, such as Red Hat Enterprise Linux, Debian, or SUSE, and their derivatives, beyond their base installation with virtualisation server packages and the prerequisite Python libraries required by qvm.

Download


Paper Citation


in Harvard Style

Kayode Akinshola Ogunshile E. (2018). qvm: A Command Line Tool for the Provisioning of Virtual Machines.In Proceedings of the 8th International Conference on Cloud Computing and Services Science - Volume 1: CLOSER, ISBN 978-989-758-295-0, pages 287-298. DOI: 10.5220/0006640902870298


in Bibtex Style

@conference{closer18,
author={Emmanuel Kayode Akinshola Ogunshile},
title={qvm: A Command Line Tool for the Provisioning of Virtual Machines},
booktitle={Proceedings of the 8th International Conference on Cloud Computing and Services Science - Volume 1: CLOSER,},
year={2018},
pages={287-298},
publisher={SciTePress},
organization={INSTICC},
doi={10.5220/0006640902870298},
isbn={978-989-758-295-0},
}


in EndNote Style

TY - CONF

JO - Proceedings of the 8th International Conference on Cloud Computing and Services Science - Volume 1: CLOSER,
TI - qvm: A Command Line Tool for the Provisioning of Virtual Machines
SN - 978-989-758-295-0
AU - Kayode Akinshola Ogunshile E.
PY - 2018
SP - 287
EP - 298
DO - 10.5220/0006640902870298