# -*- mode: ruby -*- # vi: set ft=ruby : BOX_NAME = ENV['BOX_NAME'] || "pld64" BOX_URI = ENV['BOX_URI'] || "ftp://ftp.pld-linux.org/people/glen/vm/pld64.box" hostname = File.basename(File.dirname(__FILE__)) print "\033k#{hostname}\033\\" Vagrant::Config.run do |config| # Setup virtual machine box. This VM configuration code is always executed. config.vm.box = BOX_NAME config.vm.box_url = BOX_URI # Provision docker and new kernel if deployment was not done if Dir.glob("#{File.dirname(__FILE__)}/.vagrant/machines/default/*/id").empty? pkg_cmd = "set -xe; " # install libcgroup and enable mounts pkg_cmd << "poldek -u --noask libcgroup; " pkg_cmd << "sed -i -e '/^#mount/,$ s/^#//' /etc/cgconfig.conf; " pkg_cmd << "service cgconfig start; " # ensure ip forward is enabled pkg_cmd << "sed -i -e '/^net.ipv4.ip_forward/ s/0/1/' /etc/sysctl.conf; " pkg_cmd << "sysctl -p; " # Add docker package and start it pkg_cmd << "poldek -u --noask lxc-docker; " pkg_cmd << "service lxc-docker start; " pkg_cmd << "usermod -A docker vagrant; " # Add glibc locales pkg_cmd << "poldek -u glibc-localedb-all; " # Make some more space for containers pkg_cmd << "poldek -u xfsprogs; ldconfig; " pkg_cmd << "lvextend --size=+3G /dev/sys/rootfs; xfs_growfs /; " config.vm.provision :shell, :inline => pkg_cmd end end # Providers were added on Vagrant >= 1.1.0 Vagrant::VERSION >= "1.1.0" and Vagrant.configure("2") do |config| config.vm.provider :virtualbox do |vb| config.vm.box = BOX_NAME config.vm.box_url = BOX_URI # ssh agent forwarding can be useful #config.ssh.forward_agent = true # Make VM accessible outside VM itself, and use eth1 device #config.vm.network :public_network, { bridge: 'eth1', auto_config: true } end end