93 lines
2.7 KiB
Ruby
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
|