# -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.configure("2") do |config| config.vm.box = "ubuntu/santosh_ubuntu_14_04" config.vm.box_url = "https://cloud-images.ubuntu.com/vagrant/utopic/20150219.1/utopic-server-cloudimg-i386-vagrant-disk1.box" config.vm.provider "virtualbox" do |v| v.customize ["modifyvm", :id, "--memory", 384] end # config.vm.network :bridged config.vm.synced_folder ".", "/home/vagrant/mschool" $required_packages = %W{git g++ make python-setuptools curl build-essential} $forwarded_ports = [8000] setup_apache_port config, 8080 setup_forwarded_ports config, $forwarded_ports install_default_packages config, $required_packages $global_custom_install_scripts = setup_global_custom_install_scripts install_custom_packages config, $global_custom_install_scripts end def setup_apache_port(config, forward_port) # This forward all calls to forward_port on the host machine # (i.e. our mac) to port 80 on the guest machine (i.e. the vm) config.vm.network :forwarded_port, host: forward_port, guest: 80 end def setup_forwarded_ports(config, forwarded_ports) forwarded_ports.each do |forward_port| config.vm.network :forwarded_port, host: forward_port, guest: forward_port end end def install_default_packages(config, packages_to_install) config.vm.provision :shell, :inline => "cd && sudo apt-get update" packages_to_install.each do |pkg| config.vm.provision :shell, :inline => "cd && sudo apt-get -y install #{pkg}" end end def install_custom_packages(config, custom_package_install_scripts) custom_package_install_scripts.each do |install_script| config.vm.provision :shell, :inline => install_script end end def setup_global_custom_install_scripts node_install_script = <