Skip to content

Easy-vagrant, deploy and distribute easily your development environment.

License

Notifications You must be signed in to change notification settings

mrjk/easy-vagrant

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

59 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Easy-vagrant logo

Easy-vagrant is a Vagrantfile file under steroids. It mainly makes easy to design your instances with yaml, it abstracts provider logic and reduce code duplication for your configuration. It supports Libvirt and VirtualBox and can run on most platforms: GNU/Linux, Mac OSX and Windows. Easy-vagrant will simply ensure your configuration will run on any platform, with any provider.

Easy-vagrant is still in development, some features will come in future releases.

Easy-Vagrant

As a configuration example is worth a thousand words, there is the way to spin 3 vanilla instances: 2 Centos and one deploy machine under Debian:

---
settings:
  defaults:
    flavor: micro
    box: centos7

instances:
  deploy:
    box: debian8
    cpu: 1
  web:
    number: 2
    ports:
      - guest: 80
        host: 8080

Better than Ruby syntax, nah? So, let's go into it :-)

Quick start

To follow this quick start guide, you must ensure you have at least Vagrant and VirtualBox (or LibVirt) installed on you computer:

# Create your project directory from this repo
git clone --depth=1 https://github.com/mrjk/easy-vagrant my_project

# Go into your project
cd my_project

# Run Vagrant
vagrant up

# Tadaahhh !

Ok, that was pretty simple, you may want something more powerful, right? Fair enough, Easy-vagrant comes with many configurations in the examples directory, or you should take a look to the documentation. See the available examples:

  • Shell script provisionning
  • Command execution provisionning
  • Simple Ansible playbook provisionning
  • Complex multi VM deployments
  • Inheritance examples

Documentation

Easy-vagrant is extensively documented. Here is the entry point of the documentation:

Features

To let you more time to work on your project than on your development environment, Easy-vagrant comes with a lot of sexy features:

  • Designed for devops:
    • Comes with nifty defaults
    • Preset of base boxes for most Linux distros
    • Provide a generic configuration
    • Everything is customizable
    • Extendable
  • Simple configuration syntax:
    • Yaml syntax
    • Avoid code duplication by design
    • Global and user configuration
    • Configuration override mechanism
  • Multi provider support:
    • Libvirt
    • VirtualBox
    • Docker (coming soon)
  • Multi OS support:
    • GNU/Linux
    • Mac OSX (should work)
    • Windows (should work, but who cares?)

Compatibility

The following OS have been tested:

  • Fedora23 with LibVirt
  • OSX Mountain Lion with VirtualBox
  • Windows 8

If you plan to use with libvirt, you will need the following dependencies:

Releases

  • 0.5 - ../../..
    • Initial release

Authors

  • mrjk: Initial work

See also the list of contributors who participated in this project.

Todo

The software is in beta, but:

  • Refactor the code in small pieces, split in files
  • More testing
  • See the plugin approach
  • Implement all other use-cases than mine

Alternatives

There are not so many alternatives, but we can mention:

Acknowledgments

The initial idea came to me when I was working for one of my customer. If I remember well, I made an initial version from the work of Scott Lowe. Since I lost this work into my archives, I made another version from this idea thanks to Julian Gut. I was still unhappy with its approach, and I wanted something way much simpler (in term of files) and more powerful. Then Easy-vagrant came to life.

The Vagrant logo belong to Hashicorp and the font is Beautiful Every Time made by Kimberly Geswein.

License

Please read GNU AFFERO GENERAL PUBLIC V3 LICENSE.

About

Easy-vagrant, deploy and distribute easily your development environment.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages