With ssh config adding, data directory mounted, provision script setup. 2 CPUs and 4 GB of RAM.
Create a setup bash script at provision/setup.sh
and it will be run.
# -*- mode: ruby -*- | |
# vi: set ft=ruby : | |
# Vagrantfile API/syntax version. Don't touch unless you know what you're doing! | |
VAGRANTFILE_API_VERSION = "2" | |
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| | |
# https://vagrantcloud.com/ubuntu | |
config.vm.box = "ubuntu/xenial64" | |
config.vm.network "private_network", type: "dhcp" | |
# Forward ports | |
config.vm.network "forwarded_port", guest: 8080, host: 8080 # web server | |
config.vm.network "forwarded_port", guest: 5432, host: 5432 # Postgres | |
config.vm.provider "virtualbox" do |v| | |
v.memory = 4096 | |
v.cpus = 2 | |
end | |
# If true, then any SSH connections made will enable agent forwarding. | |
config.ssh.forward_agent = true | |
# Share additional folders to the guest VM. | |
config.vm.synced_folder "data", "/data" | |
# Bash provision script | |
config.vm.provision "shell", path: "provision/setup.sh" | |
# Upload user's ssh key into box so it can be used for downloading stuff from stash | |
ssh_key_path = "~/.ssh/" | |
config.vm.provision "shell", inline: "mkdir -p /home/vagrant/.ssh" | |
config.vm.provision "file", source: "#{ ssh_key_path + 'id_rsa' }", destination: "/home/vagrant/.ssh/id_rsa" | |
config.vm.provision "file", source: "#{ ssh_key_path + 'id_rsa.pub' }", destination: "/home/vagrant/.ssh/id_rsa.pub" | |
end |