Alternatively, you can use the named provisioners feature as documented here:
http://docs.vagrantup.com/v2/provisioning/basic_usage.html
A minimally viable example might look something like this:
# Vagrantfile
Vagrant.configure(2) do |config|
config.vm.box = "ubuntu/trusty64"
config.vm.provision "provisioner1", type: "shell", inline: "echo one"
config.vm.provision "provisioner2", type: "shell", inline: "echo two"
config.vm.provision "provisioner3", type: "shell", inline: "echo three"
end
$ vagrant up
...
==> default: Running provisioner: provisier1 (shell)...
default: Running: inline script
==> default: one
==> default: Running provisioner: provisier2 (shell)...
default: Running: inline script
==> default: two
==> default: Running provisioner: provisier3 (shell)...
default: Running: inline script
==> default: three
...
$ vagrant provision --provision-with provisioner2
==> default: Running provisioner: provisioner2 (shell)...
default: Running: inline script
==> default: stdin: is not a tty
==> default: two
-Chris