vagrant-rightscaleshim

A Vagrant plugin which (along with rightscaleshim) allows the use of RightScale specific Chef resources (right_link_tag, remote_recipe, server_collection) in a Vagrant VM.

Installation

Install Vagrant 1.2.x from the Vagrant downloads page

Install the Vagrant RightScale Shim plugin

$ vagrant plugin install vagrant-rightscaleshim

Usage

You can setup your vagrantfile thusly Vagrant.configure("2") do |config| config.vm.hostname = "centos"

  config.vm.box = "ri_centos6.3_v5.8.8"
  config.vm.box_url = "https://s3.amazonaws.com/rgeyer/pub/ri_centos6.3_v5.8.8_vagrant.box"

  config.vm.network :private_network, ip: "33.33.33.10"

  config.ssh.max_tries = 40
  config.ssh.timeout   = 120

  config.rightscaleshim.run_list_dir = "runlists/centos"
  config.rightscaleshim.shim_dir = "rightscaleshim/centos"
  config.vm.provision :chef_solo do |chef|
    # This intentionally left blank
  end
end

Then create some new runlists at runlists/default/new_runlist.json

Run some of the other runlists by copying them to rightscaleshim/default/dispatch

cp runlists/default/new_runlist.json rightscaleshim/default/dispatch/
vagrant provision

Or specifying a "runlist" environment variable

runlist=new_runlist vagrant provision

Features

Uses JSON files which are essentially Chef-Solo node.json files as "runlists". As shown above you can specify a runlist to execute, or if there is a runlist file in the "dipatch" directory of a particular VM, the next vagrant provision execution will run it and delete the file in the dispatch directory.

Tag data is stored in rightscaleshim/#vnname/persist.json and used to simulate the functionality of the right_link_tag resource.

The following RightScale/RightLink specific resoures are stubbed/simulated by this gem and cookbook

  • right_link_tag
  • remote_recipe
  • server_collection