No commit activity in last 3 years
No release in over 3 years
Vagrant plugin for executing shell commands on guests machines and hooking them in the boot process
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 1.3
>= 0
>= 0
>= 0
>= 0
>= 0
 Project Readme

Build Status Code Climate

Vagrant::Shell::Commander

Vagrant plugin for running arbitrary shell commands on guest(s). Executes the given command on all the machines of multinode environments, or just in one of them. It also gives the option to specify a working directory and a user by command line.

It allows you to hook into the boot process, specifying a command to be run once the machine has finished the complete boot process. This can be handy for running init scripts which depends on files located in shared folders, for example.

Installation

Given you have Vagrant 1.1+ installed, as usual with vagrant plugins:

$ vagrant plugin install vagrant-shell-commander

Usage

The command line utility is very similar to the vagrant ssh -c builtin command, but with multinode support and additional options. To execute a command on all the machines:

$ vagrant sh -c free

Restrict the machine to run:

$ vagrant sh -c free machine1

Specify the working directory (remember to quote multiword commands):

$ vagrant sh -c 'ls -al' -d /srv/www

Execute as specific user:

$ vagrant sh -c 'cap production deploy' -u 'deployer'

Get help:

$ vagrant sh -h

To execute a command once the machine(s) has booted, add this configuration option to the Vagrantfile:

Vagrant.configure("2") do |config|
  # other...

  config.sh.after_share_folders = "sudo /etc/init.d/myapp start"

end

This can be handy if, for example, you want an application to start on boot and the application's code is in a synced folder.

Contributing

  1. Fork it
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Add and implement your specs
  4. Commit your changes (git commit -am 'Add some feature')
  5. Push to the branch (git push origin my-new-feature)
  6. Create new Pull Request