Vagrant

vagrant has

  • Vagrantfile
  • .vagrant directory

The Vagrantfile “marks” a project directory of a vagrant box and this project directory is shared as /vagrant in the virtual machine (default via VirtualBox shared folder).

Discover Vagrant Boxes

Also those virtual machines can be directly managed via Virtualbox GUI

Commands

vagrant status
vagrant global-status <--prune>

box

vagrant box list
vagrant box add <some-box>
vagrant box add <some-name> <some-url>
vagrant box outdated

init, no box for empty config

vagrant init <some-box>

start

vagrant provision          # run provisioners, only auto do this on first up
vagrant up                 # auto provision if first up
vagrant up --provision
vagrant reload             # restart and load config, skip initial import
vagrant reload --provision

in

vagrant ssh <some-name>

suspend

vagrant suspend
vagrant resume

shut down

vagrant halt

remove instance

vagrant destroy <-f>

remove box

vagrant box remove <some-box>

package into a box

vagrant package --output <some-new-box-name.box>
vagrant push

snapshot, DO NOT MIX TWO SETS (either push/pop or save/restore)

  • [vm-name] may be default
vagrant snapshot push
vagrant snapshot pop  --no-delete --no-start

vagrant snapshot save    [vm-name] NAME
vagrant snapshot restore [vm-name] NAME
vagrant snapshot delete  [vm-name] NAME

Vagrantfile

Vagrant.configure("2") do |config|
  config.vm.box = "hashicorp/precise64"
  config.vm.box_version = "1.1.0"
  config.vm.box_url = "https://vagrantcloud.com/hashicorp/precise64"

  config.vm.provider "virtualbox" do |vb|
    vb.memory = 999
    vb.cpus = 1
    #vb.gui = true
  end

  config.vm.provision :shell, path: "bootstrap.sh"

  config.vm.network :forwarded_port, guest: 80, host: 4567
  config.vm.network :forwarded_port, guest: 443, host: 5678, auto_correct: true
end

Plug-ins

  • vagrant-share
vagrant share
  • vagrant-auto_network