hacks/vagrantfile-default/Vagrantfile
2014-08-05 00:45:14 +02:00

93 lines
2.7 KiB
Ruby

# -*- mode: ruby -*-
# vi: set ft=ruby :
VAGRANTFILE_API_VERSION = "2"
def get_internet_ifname()
inet_if = %x[
route get 8.8.8.8 | grep interface | head -1 | awk -F' ' '{print $2}'
].chomp
ifnames = %x[ VBoxManage list bridgedifs | grep ^Name | cut -b 18- ]
ifnames.each_line do |l|
if (l.start_with?(inet_if))
return l.chomp
end
end
return nil
end
SETUP_BASE = <<ENDPROVISION
#!/bin/bash
fallocate -l 10G /swapfile
mkswap /swapfile
swapon /swapfile
# first do updates
export DEBIAN_FRONTEND=noninteractive
if [ -e /mirror/ ] ; then
cat > /etc/apt/sources.list <<EOF
deb file:///mirror/ trusty main restricted universe multiverse
deb file:///mirror/ trusty-updates main restricted universe multiverse
deb file:///mirror/ trusty-backports main restricted universe multiverse
deb file:///mirror/ trusty-security main restricted universe multiverse
EOF
else
cat > /etc/apt/sources.list <<EOF
deb mirror://mirrors.ubuntu.com/mirrors.txt trusty main restricted universe multiverse
deb mirror://mirrors.ubuntu.com/mirrors.txt trusty-updates main restricted universe multiverse
deb mirror://mirrors.ubuntu.com/mirrors.txt trusty-backports main restricted universe multiverse
deb mirror://mirrors.ubuntu.com/mirrors.txt trusty-security main restricted universe multiverse
EOF
fi
apt-get update
apt-get -y upgrade
apt-get -y install daemontools # the only thing that gets preinstalled
mkdir /etc/env
envdir /etc/env bash -l -c "cd /vagrant && make inside"
ENDPROVISION
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "trusty64"
config.vm.box_url = "http://cloud-images.ubuntu.com/vagrant/" + \
"trusty/current/trusty-server-cloudimg-amd64-vagrant-disk1.box"
# config.vm.network "forwarded_port", guest: 80, host: 8080
if ENV['OSX_LOCAL_UBUNTU_MIRROR']
if File.exists? File.expand_path(ENV['OSX_LOCAL_UBUNTU_MIRROR'])
config.vm.synced_folder \
File.expand_path(ENV['OSX_LOCAL_UBUNTU_MIRROR']), \
"/mirror/", \
mount_options: [ 'ro' ]
end
end
if Vagrant.has_plugin?("vagrant-cachier")
config.cache.auto_detect = true
end
config.vm.synced_folder \
"~/Library/Caches/ubuntu-14.04-apt-archives/", \
"/var/cache/apt/archives/", \
create: true
config.vm.network "public_network", bridge: get_internet_ifname()
config.vm.provider "virtualbox" do |vb|
# vb.gui = true
vb.customize ["modifyvm", :id, "--ioapic", "on"]
vb.customize ["modifyvm", :id, "--cpus", "8"]
vb.customize ["modifyvm", :id, "--memory", "4096"]
end
# we need host key ssh for berkshelf fetching
# cookbooks from git private repos
config.ssh.forward_agent = true
config.vm.provision "shell", inline: SETUP_BASE
end