Vagrant Cheatsheet
Typing vagrant from the command line will display a list of all available commands.
Be sure that you are in the same directory as the Vagrantfile when running these commands!
Creating a VM
vagrant init-- Initialize Vagrant with a Vagrantfile and ./.vagrant directory, using no specified base image. Before you can do vagrant up, you'll need to specify a base image in the Vagrantfile.vagrant init <boxpath>-- Initialize Vagrant with a specific box. To find a box, go to the public Vagrant box catalog. When you find one you like, just replace it's name with boxpath. For example,vagrant init ubuntu/trusty64.
Starting a VM
vagrant up-- starts vagrant environment (also provisions only on the FIRST vagrant up)vagrant resume-- resume a suspended machine (vagrant up works just fine for this as well)vagrant provision-- forces reprovisioning of the vagrant machinevagrant reload-- restarts vagrant machine, loads new Vagrantfile configurationvagrant reload --provision-- restart the virtual machine and force provisioning
Getting into a VM
vagrant ssh-- connects to machine via SSHvagrant ssh <boxname>-- If you give your box a name in your Vagrantfile, you can ssh into it with boxname. Works from any directory.
Stopping a VM
vagrant halt-- stops the vagrant machinevagrant suspend-- suspends a virtual machine (remembers state)
Cleaning Up a VM
vagrant destroy-- stops and deletes all traces of the vagrant machinevagrant destroy -f-- same as above, without confirmation
Boxes
vagrant box list-- see a list of all installed boxes on your computervagrant box add <name> <url>-- download a box image to your computervagrant box outdated-- check for updates vagrant box updatevagrant boxes remove <name>-- deletes a box from the machinevagrant package-- packages a running virtualbox env in a reusable box
Saving Progress
-vagrant snapshot save [options] [vm-name] <name> -- vm-name is often default. Allows us to save so that we can rollback at a later time
Tips
vagrant -v-- get the vagrant versionvagrant status-- outputs status of the vagrant machinevagrant global-status-- outputs status of all vagrant machinesvagrant global-status --prune-- same as above, but prunes invalid entriesvagrant provision --debug-- use the debug flag to increase the verbosity of the outputvagrant push-- yes, vagrant can be configured to deploy code!vagrant up --provision | tee provision.log-- Runsvagrant up, forces provisioning and logs all output to a file