github.com/sl1pm4t/consul@v1.4.5-0.20190325224627-74c31c540f9c/demo/vagrant-cluster/Vagrantfile (about) 1 # -*- mode: ruby -*- 2 # vi: set ft=ruby : 3 4 $script = <<SCRIPT 5 6 echo "Installing dependencies ..." 7 sudo apt-get update 8 sudo apt-get install -y unzip curl jq dnsutils 9 10 echo "Determining Consul version to install ..." 11 CHECKPOINT_URL="https://checkpoint-api.hashicorp.com/v1/check" 12 if [ -z "$CONSUL_DEMO_VERSION" ]; then 13 CONSUL_DEMO_VERSION=$(curl -s "${CHECKPOINT_URL}"/consul | jq .current_version | tr -d '"') 14 fi 15 16 echo "Fetching Consul version ${CONSUL_DEMO_VERSION} ..." 17 cd /tmp/ 18 curl -s https://releases.hashicorp.com/consul/${CONSUL_DEMO_VERSION}/consul_${CONSUL_DEMO_VERSION}_linux_amd64.zip -o consul.zip 19 20 echo "Installing Consul version ${CONSUL_DEMO_VERSION} ..." 21 unzip consul.zip 22 sudo chmod +x consul 23 sudo mv consul /usr/bin/consul 24 25 sudo mkdir /etc/consul.d 26 sudo chmod a+w /etc/consul.d 27 28 SCRIPT 29 30 # Specify a Consul version 31 CONSUL_DEMO_VERSION = ENV['CONSUL_DEMO_VERSION'] 32 33 # Specify a custom Vagrant box for the demo 34 DEMO_BOX_NAME = ENV['DEMO_BOX_NAME'] || "debian/stretch64" 35 36 # Vagrantfile API/syntax version. 37 # NB: Don't touch unless you know what you're doing! 38 VAGRANTFILE_API_VERSION = "2" 39 40 Vagrant.configure(VAGRANTFILE_API_VERSION) do |config| 41 config.vm.box = DEMO_BOX_NAME 42 43 config.vm.provision "shell", 44 inline: $script, 45 env: {'CONSUL_DEMO_VERSION' => CONSUL_DEMO_VERSION} 46 47 config.vm.define "n1" do |n1| 48 n1.vm.hostname = "n1" 49 n1.vm.network "private_network", ip: "172.20.20.10" 50 end 51 52 config.vm.define "n2" do |n2| 53 n2.vm.hostname = "n2" 54 n2.vm.network "private_network", ip: "172.20.20.11" 55 end 56 end