Skip to content

Instantly share code, notes, and snippets.

@wpscholar
Last active April 7, 2024 13:53
Show Gist options
  • Save wpscholar/a49594e2e2b918f4d0c4 to your computer and use it in GitHub Desktop.
Save wpscholar/a49594e2e2b918f4d0c4 to your computer and use it in GitHub Desktop.
Vagrant Cheat Sheet

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 machine
  • vagrant reload -- restarts vagrant machine, loads new Vagrantfile configuration
  • vagrant reload --provision -- restart the virtual machine and force provisioning

Getting into a VM

  • vagrant ssh -- connects to machine via SSH
  • vagrant 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 machine
  • vagrant suspend -- suspends a virtual machine (remembers state)

Cleaning Up a VM

  • vagrant destroy -- stops and deletes all traces of the vagrant machine
  • vagrant destroy -f -- same as above, without confirmation

Boxes

  • vagrant box list -- see a list of all installed boxes on your computer
  • vagrant box add <name> <url> -- download a box image to your computer
  • vagrant box outdated -- check for updates vagrant box update
  • vagrant box remove <name> -- deletes a box from the machine
  • vagrant 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 version
  • vagrant status -- outputs status of the vagrant machine
  • vagrant global-status -- outputs status of all vagrant machines
  • vagrant global-status --prune -- same as above, but prunes invalid entries
  • vagrant provision --debug -- use the debug flag to increase the verbosity of the output
  • vagrant push -- yes, vagrant can be configured to deploy code!
  • vagrant up --provision | tee provision.log -- Runs vagrant up, forces provisioning and logs all output to a file

Plugins

  • vagrant-hostsupdater : $ vagrant plugin install vagrant-hostsupdater to update your /etc/hosts file automatically each time you start/stop your vagrant box.

Notes

  • If you are using VVV, you can enable xdebug by running vagrant ssh and then xdebug_on from the virtual machine's CLI.
@walkerlala
Copy link

what does "provision" mean in Vagrant?

@MohanSaiTeki
Copy link

provision means " the action of providing or supplying something for use "
so,
provision in vagrant means
providing a particular machine in vagrant.

@T3nb3w
Copy link

T3nb3w commented Feb 11, 2019

very useful thank you !

@ravdevops
Copy link

how to scroll up in vagrant ubuntutrusty64

@dasginganinja
Copy link

Plugins: vagrant-cachier, vagrant-auto_network

Also, your vagrant destroy -f line is missing a backtick.

@west0706
Copy link

Goood! Cheet sheet. Very clearly:)

@zizu1985
Copy link

All in one place :) Thanks.

@bsayiner
Copy link

Clear and easy. Thanks

@YoussF
Copy link

YoussF commented Dec 18, 2019

Thank you !

@mjsadri
Copy link

mjsadri commented Jan 31, 2020

Thanks, it was very useful

@sharanpeetani
Copy link

Thank you! it's very useful.

@devluis
Copy link

devluis commented Mar 21, 2020

Thank you.

@gerroon
Copy link

gerroon commented Apr 24, 2020

Is there a way to search vagrant apps on the command line hosted by hashicorp's pp database?

@AmilcarArmmand
Copy link

Very useful. Thank you!

@Almorisson
Copy link

Thanks for this nice cheat-sheet. Sometimes cheat-sheet are more user friendly than some documentation.

@FerJaraG
Copy link

thank you!!!

@Mashharawi
Copy link

Thanks

@smandal-rythmos
Copy link

Good one

@EO4wellness
Copy link

Great resource! thank you.

@kipio
Copy link

kipio commented Sep 28, 2021

Thanks!

@M41R40
Copy link

M41R40 commented Sep 29, 2021

Obrigadaa !!

@SheyNjila1
Copy link

Thanks so much. This helped a great deal

@GHAZGHAZI
Copy link

Thanks so much buddy

@hussam-qasem
Copy link

vagrant boxes remove ... should be: vagrant box remove ...

@wpscholar
Copy link
Author

vagrant boxes remove ... should be: vagrant box remove ...

Updated. Thanks!

@WorldWideMusicc
Copy link

Thank you very much!!

@The-Facilitator
Copy link

Thank you very much for this.

I have been trying to clone my GitHub in command line but it keeps asking for password. I have tried using PAT and my GitHub sign in password, but both didn’t work.

Any suggestions on how I can resolve this?

@nelsonokunseri
Copy link

Useful resource.Thanks!

@phong-phan
Copy link

what does "provision" mean in Vagrant?
As i understand, provision mean that you can setup the vm you just created using vagrant, for my use case, i can run ansible playbook in those VM that i want to create, and a fun fact it vagrant allow you to declare the playbook inside the vagrantfile, i do not know it until my co-worker tell me. Hope this helps

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment