Managing and provisioning VMs


Once you've worked with your Vagrant VMs, the last order of business is to clean up the environment. Depending on your needs, you can use Vagrant to take snapshots, suspend, halt, or destroy the VMs.

If you need to verify your VM's current state before running any commands, you can get some useful output with:

$ vagrant status

Suspending the guest machine will save the machine's current running state and stop it:

$ vagrant suspend

A suspended machine can be resumed with the vagrant up command.

Halting the guest machine will shut it down pretty much like a physical computer. To turn off the machine, type:

$ vagrant halt

When you enter this command, Vagrant will first attempt to gracefully halt the machine by executing the proper commands to initiate a shutdown from within the guest machine. However, if it is unable to communicate with the machine and the shutdown sequence times out, Vagrant will forcefully shut it down.

It's also wise to take regular snapshots of the VMs, which you can then roll back to if you run into problems. To do this, use:

$ vagrant snapshot save <name>
$ vagrant snapshot restore <name>

Here <name> is the unique string to identify the snapshot. The first command creates the snapshot, while the second command restores from it (Figure 5).

Figure 5: It's a good practice to take a snapshot of the VM after making any significant change.

Finally, when you are done with a VM you can zap it from your host machine and remove all traces of it by deleting hard disks, state files, and so on with:

$ vagrant destroy

Remember that destroying a VM will cause you to lose all changes, as well as any files or folders created outside of the shared filesystem. When you now issue a vagrant up command, Vagrant will create the VM from scratch, which means it'll provision it again as well.


Now that you have a basic understanding of Vagrant, I hope you can see its potential. If you choose to deploy Vagrant in your production environment, you should first read Vagrant's extensive documentation section [6].

The Author

Mayank Sharma has been writing and reporting on open source software from all over the globe for almost two decades.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • Perl – Vagrant Package

    The Vagrant package provides easy management of virtual machines with VirtualBox as the hypervisor on the command line. Provisioning tools like Puppet let customers try out products in pre-installed environments.

  • Perl – Elasticsearch

    Websites often offer readers links to articles about similar topics. Using Elasticsearch, the free search engine, is one way to find related documents instantly and automatically.

  • YunoHost

    YunoHost offers a wide range of services on a proven Debian platform that you can host yourself.

  • Docker

    Docker is an economical alternative to conventional virtualization. Because each Docker container shares the underlying operating system, it enjoys the resource isolation and allocation benefits of VMs but is much more portable and efficient.

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More