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.sh
It will add the bin/ sub-directory to your PATH
and define several additional environment variables cf. var/aliases/env.sh.
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-instance
command to execute Chef Solo in a virtual machine instance. - docs/salt.md describes how to create a configuration to use
Salt SSH with
salt-instance
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/.