Vagrant Execute Command
This is a Vagrant plugin to execute commands inside a VM from the host machine.
NB This was only tested with Vagrant 2.0.3 and Windows Server 2016.
Installation
vagrant plugin install vagrant-execute
Usage
The general syntax is:
vagrant execute [vm-name] [--sudo] <-c|--command> <command>
To troubleshoot, set the VAGRANT_LOG
environment variable to debug
.
Example
In this repo there's an example Vagrantfile. Use it to launch an example.
Install the Base Windows Box.
Launch the VM:
vagrant up
Execute a command without and with administrative privileges and compare the results:
vagrant execute -c 'whoami /all' >whoami.txt
vagrant execute -c 'whoami /all' --sudo >whoami-sudo.txt
meld whoami.txt whoami-sudo.txt # or diff -u whoami.txt whoami-sudo.txt
Development
To hack on this plugin you need to install Bundler and other dependencies. On Ubuntu:
sudo apt install bundler libxml2-dev zlib1g-dev
Then use it to install the dependencies:
bundle
Build this plugin gem:
rake
Then install it into your local vagrant installation:
vagrant plugin install pkg/vagrant-execute-*.gem
You can later run everything in one go:
rake && vagrant plugin uninstall vagrant-execute && vagrant plugin install pkg/vagrant-execute-*.gem