Skip to content

Commit

Permalink
build: Install Go in Vagrant from official release
Browse files Browse the repository at this point in the history
  • Loading branch information
jen20 committed Sep 9, 2017
1 parent ea50afc commit 9ec82bc
Show file tree
Hide file tree
Showing 3 changed files with 50 additions and 27 deletions.
4 changes: 4 additions & 0 deletions Vagrantfile
Original file line number Diff line number Diff line change
Expand Up @@ -93,6 +93,10 @@ def configureLinuxProvisioners(vmCfg)
privileged: true,
inline: 'rm -f /home/vagrant/linux.iso'

vmCfg.vm.provision "shell",
privileged: true,
path: './scripts/vagrant-linux-priv-go.sh'

vmCfg.vm.provision "shell",
privileged: true,
path: './scripts/vagrant-linux-priv-config.sh'
Expand Down
27 changes: 0 additions & 27 deletions scripts/vagrant-linux-priv-config.sh
Original file line number Diff line number Diff line change
Expand Up @@ -9,9 +9,6 @@ apt-get install -y software-properties-common
# Add i386 architecture (for libraries)
dpkg --add-architecture i386

# Add a Golang PPA
sudo add-apt-repository ppa:gophers/archive

# Add the Docker repository
apt-key adv \
--keyserver hkp://p80.pool.sks-keyservers.net:80 \
Expand All @@ -28,7 +25,6 @@ apt-get update
apt-get install -y \
build-essential \
git \
golang-1.9 \
libc6-dev-i386 \
liblxc1 \
libpcre3-dev \
Expand Down Expand Up @@ -67,29 +63,6 @@ apt-get install -y \
# Ensure everything is up to date
apt-get upgrade -y

# Ensure Go is on PATH
if [ ! -e /usr/bin/go ] ; then
ln -s /usr/lib/go-1.9/bin/go /usr/bin/go
fi
if [ ! -e /usr/bin/gofmt ] ; then
ln -s /usr/lib/go-1.9/bin/gofmt /usr/bin/gofmt
fi

# Ensure that the GOPATH tree is owned by vagrant:vagrant
mkdir -p /opt/gopath
chown vagrant:vagrant \
/opt/gopath \
/opt/gopath/src \
/opt/gopath/src/github.com \
/opt/gopath/src/github.com/hashicorp

# Ensure new sessions know about GOPATH
cat <<EOF > /etc/profile.d/gopath.sh
export GOPATH="/opt/gopath"
export PATH="/opt/gopath/bin:\$PATH"
EOF
chmod 755 /etc/profile.d/gopath.sh

# Restart Docker in case it got upgraded
systemctl restart docker.service

Expand Down
46 changes: 46 additions & 0 deletions scripts/vagrant-linux-priv-go.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
#!/usr/bin/env bash

function install_go() {
local go_version=1.9
local download=

download="https://storage.googleapis.com/golang/go${go_version}.linux-amd64.tar.gz"

if [ -d /usr/local/go ] ; then
return
fi

wget -q -O /tmp/go.tar.gz ${download}

tar -C /tmp -xvf /tmp/go.tar.gz
sudo mv /tmp/go /usr/local
sudo chown -R root:root /usr/local/go
}

install_go

# Ensure that the GOPATH tree is owned by vagrant:vagrant
mkdir -p /opt/gopath
chown vagrant:vagrant \
/opt/gopath \
/opt/gopath/src \
/opt/gopath/src/github.com \
/opt/gopath/src/github.com/hashicorp

# Ensure Go is on PATH
if [ ! -e /usr/bin/go ] ; then
ln -s /usr/local/go/bin/go /usr/bin/go
fi
if [ ! -e /usr/bin/gofmt ] ; then
ln -s /usr/local/go/bin/gofmt /usr/bin/gofmt
fi


# Ensure new sessions know about GOPATH
if [ ! -f /etc/profile.d/gopath.sh ] ; then
cat <<EOT > /etc/profile.d/gopath.sh
export GOPATH="/opt/gopath"
export PATH="/opt/gopath/bin:\$PATH"
EOT
chmod 755 /etc/profile.d/gopath.sh
fi

0 comments on commit 9ec82bc

Please sign in to comment.