vagrant-lxc-ng/example/Vagrantfile
2013-03-09 20:24:26 -03:00

54 lines
1.7 KiB
Ruby

# -*- mode: ruby -*-
# vi: set ft=ruby :
def local_cache(box_name)
cache_dir = File.join(File.expand_path(Vagrant::Environment::DEFAULT_HOME),
'cache',
'apt',
box_name)
partial_dir = File.join(cache_dir, 'partial')
FileUtils.mkdir_p(partial_dir) unless File.exists? partial_dir
cache_dir
end
Vagrant.require_plugin 'vagrant-lxc'
Vagrant.configure("2") do |config|
config.vm.box = "quantal64"
config.vm.box_url = 'http://dl.dropbox.com/u/13510779/lxc-quantal64-2013-03-08.box'
config.vm.hostname = 'lxc-quantal64'
config.vm.synced_folder "/tmp", "/vagrant_data"
cache_dir = local_cache(config.vm.box)
config.vm.synced_folder cache_dir, "/var/cache/apt/archives"
config.vm.provider :lxc do |lxc|
lxc.lxc_dhcp_ip = '10.0.254.1' if ENV['USER'] == 'vagrant'
lxc.start_opts << 'lxc.cgroup.memory.limit_in_bytes=400M'
lxc.start_opts << 'lxc.cgroup.memory.memsw.limit_in_bytes=500M'
end
config.vm.provision :shell, :inline => <<-SCRIPT
echo "Hi there I'm a shell script used for provisioning"
if `which puppet > /dev/null`; then
echo "Looks like puppet has already been installed, moving on"
exit 0
fi
echo "I'm about to install puppet!"
sleep 1
echo "Hang tight, I just need to wait for a while since vagrant-lxc is not handling network properly ;)"
sleep 5
sudo apt-get update
sudo apt-get install puppet -y
SCRIPT
config.vm.provision :puppet do |puppet|
puppet.module_path = "puppet/modules"
puppet.manifests_path = "puppet/manifests"
puppet.manifest_file = "site.pp"
# If you want to make some debugging noise
# puppet.options << [ '--verbose', '--debug' ]
end
end