# -*- mode: ruby -*- # vi: set ft=ruby : Vagrant.require_plugin 'vagrant-cachier' Vagrant.require_plugin 'vagrant-librarian-chef' Vagrant.require_plugin 'vagrant-lxc' Vagrant.require_plugin 'vagrant-omnibus' Vagrant.require_plugin 'vagrant-pristine' Vagrant.configure("2") do |config| config.vm.synced_folder "../", "/vagrant", id: 'vagrant-root' config.cache.scope = :machine config.cache.auto_detect = true config.cache.enable_nfs = true config.omnibus.chef_version = :latest config.vm.provision :chef_solo do |chef| chef.add_recipe "java::oracle" chef.json = { :java => { :oracle => { :accept_oracle_download_terms => true } } } end # Installs RVM config.vm.provision :shell, inline: ' if ! [ -d /home/vagrant/.rvm ]; then HOME=/home/vagrant su -p vagrant -l -c "curl -L https://get.rvm.io | bash -s stable" fi ' # Here we have the RVM cache bucket configured, so we install 2.0.0 config.vm.provision :shell, inline: ' if ! [ -d /home/vagrant/.rvm/rubies/ruby-1.9.3* ]; then HOME=/home/vagrant su -p vagrant -l -c "rvm install 1.9.3 && rvm use 1.9.3 --default" fi ' config.vm.provision :shell, inline: ' if ! [ -d /home/vagrant/.nvm ]; then apt-get install git -y HOME=/home/vagrant su -p vagrant -l -c " curl https://raw.github.com/creationix/nvm/master/install.sh | sh " fi ' config.vm.provision :shell, inline: ' if ! [ -d /home/vagrant/.nvm/v0.10* ]; then HOME=/home/vagrant su -p vagrant -l -c " nvm install 0.10 nvm alias default 0.10 " fi ' configure_private_network = lambda do |node, suffix| node.vm.network :private_network, ip: "192.168.50.#{suffix}" end debian_like_configs = lambda do |debian| # Here we have the RubyGems cache bucket configured to the right path, so we # bundle the project debian.vm.provision :shell, inline: ' sudo apt-get install -y git php5-cli HOME=/home/vagrant su -p vagrant -l -c "cd /vagrant && bundle" ' end config.vm.define :ubuntu do |ubuntu| ubuntu.vm.box = "quantal64" debian_like_configs.call ubuntu configure_private_network.call ubuntu, 10 end config.vm.define :lucid do |lucid| lucid.vm.box = "lucid64" debian_like_configs.call lucid configure_private_network.call lucid, 11 end config.vm.define :debian do |debian| debian.vm.box = "squeeze64" debian.vm.box_url = 'http://f.willianfernandes.com.br/vagrant-boxes/DebianSqueeze64.box' debian_like_configs.call debian configure_private_network.call debian, 12 end config.vm.define :centos do |centos| centos.vm.box = 'centos6_64' centos.vm.box_url = 'http://developer.nrel.gov/downloads/vagrant-boxes/CentOS-6.4-x86_64-v20130309.box' configure_private_network.call centos, 13 # Here we have the RubyGems cache bucket configured to the right path, so we # bundle the project centos.vm.provision :shell, inline: ' yum install -y libffi-devel ruby-devel git HOME=/home/vagrant su -p vagrant -l -c "cd /vagrant && bundle"' end config.vm.define :arch do |arch| arch.vm.box = 'arch64' arch.vm.box_url = 'http://vagrant.pouss.in/archlinux_2012-07-02.box' configure_private_network.call arch, 14 arch.vm.provision :shell, inline: ' pacman -Syu --noconfirm libffi git HOME=/home/vagrant su -p vagrant -l -c "cd /vagrant && bundle"' end # Please note that we are not able to install chef on the VM, so when bringing # this up we should always pass in `--provision-with=shell` # # TODO: Find out how to install chef on this or other box or find one that has # it pre installed config.vm.define :opensuse do |suse| suse.vm.box = 'opensuse-12' suse.vm.box_url = 'http://sourceforge.net/projects/opensusevagrant/files/12.3/opensuse-12.3-64.box/download' configure_private_network.call suse, 15 suse.cache.enable_nfs = false # This seems to not be working suse.omnibus.chef_version = nil suse.vm.provision :shell, inline: 'time zypper install -y git' end end