github.com/minamijoyo/terraform@v0.7.8-0.20161029001309-18b3736ba44b/Vagrantfile (about)

     1  # -*- mode: ruby -*-
     2  # vi: set ft=ruby :
     3  
     4  # Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
     5  VAGRANTFILE_API_VERSION = "2"
     6  
     7  $script = <<SCRIPT
     8  GOVERSION="1.7.3"
     9  SRCROOT="/opt/go"
    10  SRCPATH="/opt/gopath"
    11  
    12  # Get the ARCH
    13  ARCH="$(uname -m | sed 's|i686|386|' | sed 's|x86_64|amd64|')"
    14  
    15  # Install Prereq Packages
    16  export DEBIAN_PRIORITY=critical
    17  export DEBIAN_FRONTEND=noninteractive
    18  export DEBCONF_NONINTERACTIVE_SEEN=true
    19  APT_OPTS="--yes --force-yes --no-install-suggests --no-install-recommends"
    20  echo "Upgrading packages ..."
    21  apt-get update ${APT_OPTS} >/dev/null
    22  apt-get upgrade ${APT_OPTS} >/dev/null
    23  echo "Installing prerequisites ..."
    24  apt-get install ${APT_OPTS} build-essential curl git-core libpcre3-dev mercurial pkg-config zip >/dev/null
    25  
    26  # Install Go
    27  echo "Downloading go (${GOVERSION}) ..."
    28  wget -P /tmp --quiet "https://storage.googleapis.com/golang/go${GOVERSION}.linux-${ARCH}.tar.gz"
    29  echo "Setting up go (${GOVERSION}) ..."
    30  tar -C /opt -xf "/tmp/go${GOVERSION}.linux-${ARCH}.tar.gz"
    31  chmod 775 "$SRCROOT"
    32  chown vagrant:vagrant "$SRCROOT"
    33  
    34  # Setup the GOPATH; even though the shared folder spec gives the working
    35  # directory the right user/group, we need to set it properly on the
    36  # parent path to allow subsequent "go get" commands to work.
    37  mkdir -p "$SRCPATH"
    38  chown -R vagrant:vagrant "$SRCPATH" 2>/dev/null || true
    39  # ^^ silencing errors here because we expect this to fail for the shared folder
    40  
    41  install -m0755 /dev/stdin /etc/profile.d/gopath.sh <<EOF
    42  export GOPATH="$SRCPATH"
    43  export GOROOT="$SRCROOT"
    44  export PATH="$SRCROOT/bin:$SRCPATH/bin:\$PATH"
    45  EOF
    46  
    47  cat >>/home/vagrant/.bashrc <<EOF
    48  
    49  ## After login, change to terraform directory
    50  cd /opt/gopath/src/github.com/hashicorp/terraform
    51  EOF
    52  
    53  SCRIPT
    54  
    55  Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
    56    config.vm.box = "bento/ubuntu-14.04"
    57    config.vm.hostname = "terraform"
    58  
    59    config.vm.provision "prepare-shell", type: "shell", inline: "sudo sed -i '/tty/!s/mesg n/tty -s \\&\\& mesg n/' /root/.profile", privileged: false
    60    config.vm.provision "initial-setup", type: "shell", inline: $script
    61    config.vm.synced_folder '.', '/opt/gopath/src/github.com/hashicorp/terraform'
    62  
    63    config.vm.provider "docker" do |v, override|
    64      override.vm.box = "tknerr/baseimage-ubuntu-14.04"
    65    end
    66  
    67    ["vmware_fusion", "vmware_workstation"].each do |p|
    68      config.vm.provider p do |v|
    69        v.vmx["memsize"] = "4096"
    70        v.vmx["numvcpus"] = "2"
    71      end
    72    end
    73  
    74    config.vm.provider "virtualbox" do |v|
    75      v.memory = 4096
    76      v.cpus = 2
    77    end
    78  
    79    config.vm.provider "parallels" do |prl|
    80      prl.memory = 4096
    81      prl.cpus = 2
    82    end
    83  end