Skip to content

Latest commit

 

History

History
43 lines (26 loc) · 1.11 KB

README.md

File metadata and controls

43 lines (26 loc) · 1.11 KB

Vagrant Shell Provider

This is a Vagrant 1.2+ plugin that adds a shell provider to Vagrant, allowing Vagrant to control and provision machines using shell scripts. It's meant to be customized with scripts for Xen, Docker, etc.

vagrant-shell is forked from vagrant-aws with the fog/aws parts replaced with a shell script that takes four sub-commands: run-instance, terminate-instance, ssh-info, and read-state.

See libexec/shell-docker for an example.

NOTE: This plugin requires ruby 1.9 and bundler

Demo

I don't know how to install vagrant-shell as a plugin, so this repo uses bundler and cached gems.

Go to the demo directory:

cd demo/docker

Download the ubuntu docker image:

docker pull ubuntu

Run make to bundle gems, install the demo vagrant box:

make

Bring up the docker containers:

bundle exec vagrant up
bundle exec vagrant status

The commands passed to the container are sourced from libexec/init-docker. It sets up the root user with an ssh key suitable for vagrant.

SSH into one of the the containers:

bundle exec vagrant ssh ubuntu:precise