github.imxd.top/hashicorp/consul@v1.4.5/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