This is a Vagrant 1.6+ plugin that allows orchestrated deployments
to existing servers on top of the excellent vagrant-managed-servers plugin.
It features a powerful templating init
command and is designed from the
ground up to be cross-platform, with first class support for Windows,
Linux, and Mac.
Install using the standard Vagrant plugin installation method:
$ vagrant plugin install vagrant-orchestrate
Initialize a Vagrantfile to orchestrate running a script on multiple managed servers
$ vagrant orchestrate init --shell
You'll need to edit your Vagrantfile and replace some variables, such as ssh username and
password, and the path to the script to run. The first line of the file defines an array of
managed servers that the push
command will operate on.
This works for Windows managed servers as well
$ vagrant orchestrate init --winrm [--winrm-username USERNAME --winrm-password PASSWORD]
For a full list of init options, run vagrant orchestrate init --help
Go ahead and push changes to your managed servers
$ vagrant orchestrate push
You can run vagrant with increased verbosity if you run into problems
$ vagrant orchestrate push --debug
If you have several environments (e.g. dev, test, prod), it is recommended to create a separate branch for each environment and put the appropriate servers into the managed_servers array at the top of the Vagrantfile for each. To move a change across branches, simply create a feature branch from your earliest branch and then merge that feature into downstream environments to avoid conflicts.
- Need rsync? Install OpenSSH and then run this script to install rsync. Vagrant managed servers currently only works with cygwin based rsync implementations.
- Fork it ( https://github.com/Cimpress-MCP/vagrant-orchestrate/fork )
- Create your feature branch (
git checkout -b my-new-feature
) - Commit your changes (
git commit -am 'Add some feature'
) - Push to the branch (
git push origin my-new-feature
) - Create a new Pull Request
You'll want Ruby v2.0.0* and bundler for developing changes.
You can install bundler by running
$ gem install bundler
Bundler documentation is available here (http://bundler.io/).
During the course of development you'll want to run the code you're working on, not the version of Vagrant Orchestrate you've installed. In order to accomplish this, run your vagrant orchestrate commands in the bundler environment.
In your shell:
$ bundle exec vagrant orchestrate