Skip to content

An helper to create virtual machines using Docker and Vagrant

Notifications You must be signed in to change notification settings

baseboxorg/machination

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Machination

All your appliances are belong to us!

Machination helps you to create virtual machines running with vagrant. It relies on a customizable template system that can be applied to instantiate machines. Currently, only Docker is supported to execute the machines. Adding Virtualbox is work in progress. Installation of software in the machine is handled by Ansible. Support for additionnal install utilities will be added later...

Requirements

Principle

Machination is based on templates, overcoming docker main limitation: passing arguments and/or sharing parts of dockerfiles.

A template defines:

  • the provider (provides the virtual infrastructure): docker;
  • the provisioner (executes installation instructions): ansible;
  • the system version (ubuntu trusty, vivid,...);
  • optionnal additionnal network interfaces;
  • the role(s) of the machine. The file is named .template

Each template can pick from different roles. For example, the build env may depend from the role "build-gcc", and the dev-env may depend from "build-gcc" and "xDevTools". Note: the roles are then executed in order of their listing (and can depend themselves on other roles).

Installation

$ tar xvzf machination.tar.gz
$ cd machination
$ ./waf configure --prefix=<install_prefix> --templates=<templates_to_install>
$ ./waf build
# ./waf install

Commands

List the available templates or instances:

$ machination list templates|instances

Create an instance using the machination's wizard:

$ machination create <template_name> <instance_name>

Note: The wizard will ask you question depending on the template you've chosen. Destroy an instance (all files will be deleted):

$ machination destroy <instance_name>

Start an instance:

$ machination start <instance_name>

Stop an instance:

$ machination stop <instance_name>

SSh to an instance:

$ machination ssh <instance_name>

When creating a machine, files are stored in the folder ~/.machination. Those files contains the description of the instance. Machine filesystem can also be stored in this folder depending on the chosen machine provider (Docker or Virtualbox). When using Docker, the filesystem is stored by the Docker daemon. One shall check where its docker installation stores these files.

Additional infos

When creating a machine, files are stored in the folder ~/.machination. Those files contains the description of the instance. When using Docker, the filesystem is stored by the Docker daemon. One shall check where its docker installation stores these files when maintenance operations needs to be done.

Todo's

  • Add Virtualbox support

License

LGPL

About

An helper to create virtual machines using Docker and Vagrant

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • Python 87.7%
  • Shell 8.2%
  • Ruby 4.1%