diff --git a/vagrant-test/Vagrantfile b/vagrant-test/Vagrantfile index dc657e3960b89e4c0990e40a915b0f5db83e05d3..c0509dd06a297f0a1d5bd714f34eb3edbbe4e59c 100644 --- a/vagrant-test/Vagrantfile +++ b/vagrant-test/Vagrantfile @@ -5,6 +5,10 @@ # if you want to use local packages, in which case the 'etcd' and # 'autoradio' packages should be placed in the same directory as this # file. +# +# If you have an APT proxy available, you can set the APT_PROXY environment +# variable to its host:port address, and the VMs will use it to retrieve +# Debian packages. This will make the setup step faster. API_VERSION = "2" @@ -19,12 +23,33 @@ cat >/etc/hosts <<EOF EOF SCRIPT +# Static configuration for etcd. +$setup_etcd = <<SCRIPT +cat >/etc/default/etcd <<EOF +START=1 +ETCD_INITIAL_CLUSTER_STATE=new +ETCD_INITIAL_CLUSTER=node1=http://192.168.50.2:2380,node2=http://192.168.50.3:2380,node3=http://192.168.50.4:2380 +EOF +SCRIPT + +# Setup apt proxy. +$setup_apt_proxy = <<SCRIPT +cat >/etc/apt/apt.conf.d/000apt-proxy <<EOF +Acquire::http::Proxy "http://#{ENV['APT_PROXY']}/"; +Acquire::http::Pipeline-Depth "23"; +EOF +SCRIPT + Vagrant.configure(API_VERSION) do |config| - config.vm.box = "debian-wheezy-64" - config.vm.box_url = "http://basebox.libera.cc/debian-wheezy-64.box" + config.vm.box = "wheezy" + config.vm.box_url = "http://www.incal.net/ale/debian-wheezy-64.box" config.vm.provision "shell", inline: $setup_host_file + if !ENV['APT_PROXY'].nil? + config.vm.provision "shell", inline: $setup_apt_proxy + end + config.vm.provision "shell" do |s| if ENV['LOCAL'].nil? s.path = "bootstrap.sh" @@ -37,22 +62,19 @@ Vagrant.configure(API_VERSION) do |config| config.vm.define "node1" do |m| m.vm.hostname = "node1" m.vm.network "private_network", ip: "192.168.50.2" - m.vm.provision "shell", - inline: "echo BOOTSTRAP=1 > /etc/default/etcd" + m.vm.provision "shell", inline: $setup_etcd end config.vm.define "node2" do |m| m.vm.hostname = "node2" m.vm.network "private_network", ip: "192.168.50.3" - m.vm.provision "shell", - inline: "echo ETCD_SERVER=node1 > /etc/default/etcd" + m.vm.provision "shell", inline: $setup_etcd end config.vm.define "node3" do |m| m.vm.hostname = "node3" m.vm.network "private_network", ip: "192.168.50.4" - m.vm.provision "shell", - inline: "echo ETCD_SERVER=node1 > /etc/default/etcd" + m.vm.provision "shell", inline: $setup_etcd # Create a test mountpoint. m.vm.provision "shell", diff --git a/vagrant-test/bootstrap-local.sh b/vagrant-test/bootstrap-local.sh index bf2de032d7352489090d4f98c5f8f64d7262920d..98cd1fa5cf80200cef5a7a86301c5452aeeabdb5 100644 --- a/vagrant-test/bootstrap-local.sh +++ b/vagrant-test/bootstrap-local.sh @@ -11,24 +11,28 @@ EOF most_recent_match() { local pattern="$1" - ls -t ${pattern} | head -1 + ls -1rv ${pattern} | head -1 } # Install the required packages. export DEBIAN_FRONTEND=noninteractive apt-get -q update yes N 2>/dev/null | apt-get install -q -y runit icecast2 libcap2-bin liquidsoap -dpkg -i $(most_recent_match /vagrant/etcd_*.deb) -dpkg -i $(most_recent_match /vagrant/autoradio_*.deb) +etcd_pkg=$(most_recent_match '/vagrant/etcd_*.deb') +echo "Found etcd package: ${etcd_pkg}" >&2 +dpkg -i ${etcd_pkg} +autoradio_pkg=$(most_recent_match '/vagrant/autoradio_*.deb') +echo "Found autoradio package: ${autoradio_pkg}" >&2 +dpkg -i ${autoradio_pkg} # Install the configuration. DOMAIN="${DOMAIN:-$1}" if [ -n "${DOMAIN}" ]; then - echo "Autoconfigured with domain: ${DOMAIN}" 1>&2 + echo "Autoconfigured with domain: ${DOMAIN}" >&2 echo "DOMAIN=${DOMAIN}" > /etc/default/autoradio fi echo "REDIRECTORD_OPTIONS=\"--enable-icecast-proxy\"" >> /etc/default/autoradio -echo "All done (?)" 1>&2 +echo "All done (?)" >&2 exit 0