Skip to content

Instantly share code, notes, and snippets.

@jwieringa
Last active January 31, 2018 05:03
Show Gist options
  • Save jwieringa/533f1c4c60530fbaec84bdde513b638b to your computer and use it in GitHub Desktop.
Save jwieringa/533f1c4c60530fbaec84bdde513b638b to your computer and use it in GitHub Desktop.
PRODUCT=terraform VERSION=0.9.6 hashicorp-install
#!/bin/bash
# Author: Jason Wieringa
#
# General script for installing Hashicorp tools.
set -e
: ${PRODUCT:?"Set to desired Hashicorp product"}
: ${VERSION:?"Set to desired Hashicorp product version"}
SYSTEM=$(uname | tr '[:upper:]' '[:lower:]')
UNAME=$(uname -m)
if [ "$UNAME" != "x86_64" ]; then
ARCH=386
else
ARCH=amd64
fi
TEMP_DIR=$(mktemp -d)
mkdir -p /opt/bin
mkdir -p /root/.gnupg
curl --retry 10 -sf https://keybase.io/hashicorp/pgp_keys.asc | /bin/gpg --import
pushd $TEMP_DIR
/bin/curl --retry 10 -sfO https://releases.hashicorp.com/${PRODUCT}/${VERSION}/${PRODUCT}_${VERSION}_${SYSTEM}_${ARCH}.zip
/bin/curl --retry 10 -sfO https://releases.hashicorp.com/${PRODUCT}/${VERSION}/${PRODUCT}_${VERSION}_SHA256SUMS
/bin/curl --retry 10 -sfO https://releases.hashicorp.com/${PRODUCT}/${VERSION}/${PRODUCT}_${VERSION}_SHA256SUMS.sig
/bin/gpg --batch --verify ${PRODUCT}_${VERSION}_SHA256SUMS.sig ${PRODUCT}_${VERSION}_SHA256SUMS
/bin/egrep "_${SYSTEM}_${ARCH}" ${PRODUCT}_${VERSION}_SHA256SUMS | /bin/sha256sum --check --ignore-missing -
unzip -o -d /opt/bin "${PRODUCT}_${VERSION}_${SYSTEM}_${ARCH}.zip"
popd
rm -rf $TEMP_DIR
if [ ! -f /opt/bin/${PRODUCT} ]; then
echo "Failed to install ${PRODUCT} ${VERSION}"
else
echo "${PRODUCT} ${VERSION} successfully installed"
fi
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment