Boxes (vm.box): The Base Operating System
You can see that the box being set in the configuration is the one we called during
vagrant init hashicorp/precise64
# This is the box we asked it to use for the boilerplate config.vm.box = "hashicorp/precise64" end
Boxes follow this URL format and are usually hosted on Vagrant Cloud. So:
Vagrant Cloud is the creators of Vagrant (Hahsicorp)'s storage spot for Vagrant.
There's pretty much a box for every operating system. So if you don't like Ubuntu, that's fine use Debian or CentOS. It's completely up to you.
Quick note: You can also publish your own public or boxes here too.
There's a ton of commands you can use to make Vagrant talk to the box. For a full list see the Official Docs.
I'll go over the only ones that really matter for getting started. Just remember, you run these from the folder that your
Vagrantfile is located.
vagrant up This is the command you just ran to boot the box up and provision the server based on the configuration file Vagrantfile. I use this for starting as well as resuming my environments.
vagrant suspend Use this command to "pause" your virtual environment. Make sure you do this before shutting down your computer to safely be able to restore the environment later.
vagrant halt Use this command to literally turn off your machine.
vagrant destroy This permanently removes the virtual environment from your machine.
vagrant provision simply reruns the provisioning stuff from the
Vagrantfile. We'll cover this more later.
vagrant reload reboots your box. Doing
vagrant reload --provision will just reboot your box with the provision flag saying to rerun the stuff from the
vagrant ssh will automatically SSH you into the box.
vagrant ssh-config This lets you see the detailed login credentials of how you could connect to the box if you wanted to some other way.
It's important to know the difference between these. So:
- Suspend: Freezes it in current state
- Halt: Turns it off
- Destroy: Turns it off and deletes it
You typically will only
vagrant destroy when you are completely done and need to free up the space.
You will do
vagrant suspend or
vagrant halt when you want to come back later. The "state" of your box is saved. So any changes to it will still be there (e.g.: a database).