Virtual Machine Tools
The programs distributed within this repository enable users to quickly configure and use virtual machines as development and test environment on a Linux workstation. Programs in the bin/ sub-directory build a tool-chain to bootstrap multiple virtual machine instances in a very customizable way.
The tool-chain is based on software available in all modern Linux distributions:
- Linux KVM is used as virtualization platform.
- Libvirt interfaces with KVM and manages the virtual machine network.
- SSH, Rsync, and SSHfs allows access the virtual machine instances.
Make sure to Install and configure Libvirt
Comprehensive examples:
- OpenHPC Slurm Cluster with SaltStack
- Apache Mesos Cluster with SaltStack
- Lustre Parallel Filesystem with SaltStack
The shell script ↴ source_me.sh adds the tool-chain in this repository to your shell environment:
>>> source source_me.shIt will add the bin/ sub-directory to your PATH and define several additional environment variables cf. var/aliases/env.sh.
Usage
The docs/ sub-directory includes all documentation required to use this tool-chain:
- docs/network.md explains the setup of the virtual machine network
- docs/image.md describes how to create re-usable virtual machine images
(aka templates) - docs/instance.md shows how to use VM images to create
any number of virtual machine instances, and how to configure the
resources available to VM instance. - docs/workflow.md explains in great detail how to efficiently
interact with virtual machine instances. How to login, execute commands within
a VM, copy file between host and the VM, and how to mount the VM root
file-system. - docs/nodeset.md exemplifies operation of multiple virtual
machine instance
Configure a virtual machine instance with a Configuration Management System:
- docs/ansible.md show how to configure virtual machine
instance with Ansible. - docs/chef.md describes how to us the
chef-instancecommand
to execute Chef Solo in a virtual machine instance. - docs/salt.md describes how to create a configuration to use
Salt SSH withsalt-instance
License
Copyright 2012-2019 Victor Penso
This is free software: you can redistribute it
and/or modify it under the terms of the GNU General Public
License as published by the Free Software Foundation,
either version 3 of the License, or (at your option) any
later version.
This program is distributed in the hope that it will be
useful, but WITHOUT ANY WARRANTY; without even the implied
warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public
License along with this program. If not, see
http://www.gnu.org/licenses/.