To get started with provisioning our Vagrant machine, let's create a new Vagrantfile. We can do this by running the vagrant init -m
command.
Within our Vagrantfile, we can define a provisioning block by using the config.vm.provision
code and pass in a value to declare what type of provisioner we will be using. In the following example, we will be using the shell type:
config.vm.provision "shell"
Using the shell provisioner, you can then define additional values inline:
config.vm.provision "shell", inline "sudo apt-get update -y"
Or use a configuration block, where we define our shell value within pipe characters:
config.vm.provision "shell" do |shell| shell.inline = "sudo apt-get update -y" end
Both options would, in this example, update the system packages. Using the configuration block method is much easier to read, as each value can have its own line.