Skip to content

Instantly share code, notes, and snippets.

@sethvargo
Last active October 12, 2018 19:38
Show Gist options
  • Save sethvargo/c9269d4f71a259a99f3e1a207079f306 to your computer and use it in GitHub Desktop.
Save sethvargo/c9269d4f71a259a99f3e1a207079f306 to your computer and use it in GitHub Desktop.

Revisions

  1. sethvargo revised this gist Oct 12, 2018. 5 changed files with 1 addition and 102 deletions.
    59 changes: 0 additions & 59 deletions 01-install_hashicorp_tool.sh
    Original file line number Diff line number Diff line change
    @@ -1,59 +0,0 @@
    #!/usr/bin/env bash
    set -e

    #
    # Installs the given HashiCorp tool, verifying checksums and GPG signatures. Exits
    # non-zero on failure.
    #
    # Usage:
    # install_hashicorp_tool.sh terraform 0.11.5
    #
    # Requirements:
    # - gpg, with hashicorp key trusted
    # - curl
    # - sha256sum


    NAME="$1"
    if [ -z "$NAME" ]; then
    echo "Missing name"
    exit 1
    fi

    VERSION="$2"
    if [ -z "$VERSION" ]; then
    echo "Missing version"
    exit
    fi

    DOWNLOAD_ROOT="https://releases.hashicorp.com/${NAME}/${VERSION}/${NAME}_${VERSION}"
    DOWNLOAD_ZIP="${DOWNLOAD_ROOT}_linux_amd64.zip"
    DOWNLOAD_SHA="${DOWNLOAD_ROOT}_SHA256SUMS"
    DOWNLOAD_SIG="${DOWNLOAD_ROOT}_SHA256SUMS.sig"

    echo "==> Installing ${NAME} v${VERSION}"

    echo "--> Downloading SHASUM and SHASUM signatures"
    curl -sfO "${DOWNLOAD_SHA}"
    curl -sfO "${DOWNLOAD_SIG}"

    echo "--> Verifying signatures file"
    gpg --verify "${NAME}_${VERSION}_SHA256SUMS.sig" "${NAME}_${VERSION}_SHA256SUMS"

    echo "--> Downloading ${NAME} v${VERSION} (linux/amd64)"
    curl -sfO "${DOWNLOAD_ZIP}"

    echo "--> Validating SHA256SUM"
    sha256sum --ignore-missing --quiet --strict --check "${NAME}_${VERSION}_SHA256SUMS"

    echo "--> Unpacking and installing"
    unzip "${NAME}_${VERSION}_linux_amd64.zip"
    mv "${NAME}" "/usr/local/bin/${NAME}"
    chmod +x "/usr/local/bin/${NAME}"

    echo "--> Removing temporary files"
    rm "${NAME}_${VERSION}_linux_amd64.zip"
    rm "${NAME}_${VERSION}_SHA256SUMS"
    rm "${NAME}_${VERSION}_SHA256SUMS.sig"

    echo "--> Done!"
    12 changes: 0 additions & 12 deletions 02-trust.sh
    Original file line number Diff line number Diff line change
    @@ -1,12 +0,0 @@
    #!/usr/bin/env bash
    set -e

    #
    # Run this only once to import and trust the HashiCorp GPG key
    #
    # Usage:
    # trust.sh
    #

    gpg --import /tmp/hashicorp.asc
    gpg --import-ownertrust /tmp/hashicorp.trust
    30 changes: 0 additions & 30 deletions 03-hashicorp.asc
    Original file line number Diff line number Diff line change
    @@ -1,30 +0,0 @@
    -----BEGIN PGP PUBLIC KEY BLOCK-----
    Version: GnuPG v1

    mQENBFMORM0BCADBRyKO1MhCirazOSVwcfTr1xUxjPvfxD3hjUwHtjsOy/bT6p9f
    W2mRPfwnq2JB5As+paL3UGDsSRDnK9KAxQb0NNF4+eVhr/EJ18s3wwXXDMjpIifq
    fIm2WyH3G+aRLTLPIpscUNKDyxFOUbsmgXAmJ46Re1fn8uKxKRHbfa39aeuEYWFA
    3drdL1WoUngvED7f+RnKBK2G6ZEpO+LDovQk19xGjiMTtPJrjMjZJ3QXqPvx5wca
    KSZLr4lMTuoTI/ZXyZy5bD4tShiZz6KcyX27cD70q2iRcEZ0poLKHyEIDAi3TM5k
    SwbbWBFd5RNPOR0qzrb/0p9ksKK48IIfH2FvABEBAAG0K0hhc2hpQ29ycCBTZWN1
    cml0eSA8c2VjdXJpdHlAaGFzaGljb3JwLmNvbT6JATgEEwECACIFAlMORM0CGwMG
    CwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEFGFLYc0j/xMyWIIAIPhcVqiQ59n
    Jc07gjUX0SWBJAxEG1lKxfzS4Xp+57h2xxTpdotGQ1fZwsihaIqow337YHQI3q0i
    SqV534Ms+j/tU7X8sq11xFJIeEVG8PASRCwmryUwghFKPlHETQ8jJ+Y8+1asRydi
    psP3B/5Mjhqv/uOK+Vy3zAyIpyDOMtIpOVfjSpCplVRdtSTFWBu9Em7j5I2HMn1w
    sJZnJgXKpybpibGiiTtmnFLOwibmprSu04rsnP4ncdC2XRD4wIjoyA+4PKgX3sCO
    klEzKryWYBmLkJOMDdo52LttP3279s7XrkLEE7ia0fXa2c12EQ0f0DQ1tGUvyVEW
    WmJVccm5bq25AQ0EUw5EzQEIANaPUY04/g7AmYkOMjaCZ6iTp9hB5Rsj/4ee/ln9
    wArzRO9+3eejLWh53FoN1rO+su7tiXJA5YAzVy6tuolrqjM8DBztPxdLBbEi4V+j
    2tK0dATdBQBHEh3OJApO2UBtcjaZBT31zrG9K55D+CrcgIVEHAKY8Cb4kLBkb5wM
    skn+DrASKU0BNIV1qRsxfiUdQHZfSqtp004nrql1lbFMLFEuiY8FZrkkQ9qduixo
    mTT6f34/oiY+Jam3zCK7RDN/OjuWheIPGj/Qbx9JuNiwgX6yRj7OE1tjUx6d8g9y
    0H1fmLJbb3WZZbuuGFnK6qrE3bGeY8+AWaJAZ37wpWh1p0cAEQEAAYkBHwQYAQIA
    CQUCUw5EzQIbDAAKCRBRhS2HNI/8TJntCAClU7TOO/X053eKF1jqNW4A1qpxctVc
    z8eTcY8Om5O4f6a/rfxfNFKn9Qyja/OG1xWNobETy7MiMXYjaa8uUx5iFy6kMVaP
    0BXJ59NLZjMARGw6lVTYDTIvzqqqwLxgliSDfSnqUhubGwvykANPO+93BBx89MRG
    unNoYGXtPlhNFrAsB1VR8+EyKLv2HQtGCPSFBhrjuzH3gxGibNDDdFQLxxuJWepJ
    EK1UbTS4ms0NgZ2Uknqn1WRU1Ki7rE4sTy68iZtWpKQXZEJa0IGnuI2sSINGcXCJ
    oEIgXTMyCILo34Fa/C6VCm2WBgz9zZO8/rHIiQm1J5zqz0DrDwKBUM9C
    =LYpS
    -----END PGP PUBLIC KEY BLOCK-----
    1 change: 0 additions & 1 deletion 04-hashicorp.trust
    Original file line number Diff line number Diff line change
    @@ -1 +0,0 @@
    91A6E7F85D05C65630BEF18951852D87348FFC4C:4:
    1 change: 1 addition & 0 deletions README.md
    Original file line number Diff line number Diff line change
    @@ -0,0 +1 @@
    This gist is deprecated. Please see http://github.com/sethvargo/hashicorp-installer.
  2. sethvargo revised this gist Mar 29, 2018. 4 changed files with 0 additions and 0 deletions.
    File renamed without changes.
    File renamed without changes.
    File renamed without changes.
    File renamed without changes.
  3. sethvargo created this gist Mar 29, 2018.
    30 changes: 30 additions & 0 deletions hashicorp.asc
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,30 @@
    -----BEGIN PGP PUBLIC KEY BLOCK-----
    Version: GnuPG v1

    mQENBFMORM0BCADBRyKO1MhCirazOSVwcfTr1xUxjPvfxD3hjUwHtjsOy/bT6p9f
    W2mRPfwnq2JB5As+paL3UGDsSRDnK9KAxQb0NNF4+eVhr/EJ18s3wwXXDMjpIifq
    fIm2WyH3G+aRLTLPIpscUNKDyxFOUbsmgXAmJ46Re1fn8uKxKRHbfa39aeuEYWFA
    3drdL1WoUngvED7f+RnKBK2G6ZEpO+LDovQk19xGjiMTtPJrjMjZJ3QXqPvx5wca
    KSZLr4lMTuoTI/ZXyZy5bD4tShiZz6KcyX27cD70q2iRcEZ0poLKHyEIDAi3TM5k
    SwbbWBFd5RNPOR0qzrb/0p9ksKK48IIfH2FvABEBAAG0K0hhc2hpQ29ycCBTZWN1
    cml0eSA8c2VjdXJpdHlAaGFzaGljb3JwLmNvbT6JATgEEwECACIFAlMORM0CGwMG
    CwkIBwMCBhUIAgkKCwQWAgMBAh4BAheAAAoJEFGFLYc0j/xMyWIIAIPhcVqiQ59n
    Jc07gjUX0SWBJAxEG1lKxfzS4Xp+57h2xxTpdotGQ1fZwsihaIqow337YHQI3q0i
    SqV534Ms+j/tU7X8sq11xFJIeEVG8PASRCwmryUwghFKPlHETQ8jJ+Y8+1asRydi
    psP3B/5Mjhqv/uOK+Vy3zAyIpyDOMtIpOVfjSpCplVRdtSTFWBu9Em7j5I2HMn1w
    sJZnJgXKpybpibGiiTtmnFLOwibmprSu04rsnP4ncdC2XRD4wIjoyA+4PKgX3sCO
    klEzKryWYBmLkJOMDdo52LttP3279s7XrkLEE7ia0fXa2c12EQ0f0DQ1tGUvyVEW
    WmJVccm5bq25AQ0EUw5EzQEIANaPUY04/g7AmYkOMjaCZ6iTp9hB5Rsj/4ee/ln9
    wArzRO9+3eejLWh53FoN1rO+su7tiXJA5YAzVy6tuolrqjM8DBztPxdLBbEi4V+j
    2tK0dATdBQBHEh3OJApO2UBtcjaZBT31zrG9K55D+CrcgIVEHAKY8Cb4kLBkb5wM
    skn+DrASKU0BNIV1qRsxfiUdQHZfSqtp004nrql1lbFMLFEuiY8FZrkkQ9qduixo
    mTT6f34/oiY+Jam3zCK7RDN/OjuWheIPGj/Qbx9JuNiwgX6yRj7OE1tjUx6d8g9y
    0H1fmLJbb3WZZbuuGFnK6qrE3bGeY8+AWaJAZ37wpWh1p0cAEQEAAYkBHwQYAQIA
    CQUCUw5EzQIbDAAKCRBRhS2HNI/8TJntCAClU7TOO/X053eKF1jqNW4A1qpxctVc
    z8eTcY8Om5O4f6a/rfxfNFKn9Qyja/OG1xWNobETy7MiMXYjaa8uUx5iFy6kMVaP
    0BXJ59NLZjMARGw6lVTYDTIvzqqqwLxgliSDfSnqUhubGwvykANPO+93BBx89MRG
    unNoYGXtPlhNFrAsB1VR8+EyKLv2HQtGCPSFBhrjuzH3gxGibNDDdFQLxxuJWepJ
    EK1UbTS4ms0NgZ2Uknqn1WRU1Ki7rE4sTy68iZtWpKQXZEJa0IGnuI2sSINGcXCJ
    oEIgXTMyCILo34Fa/C6VCm2WBgz9zZO8/rHIiQm1J5zqz0DrDwKBUM9C
    =LYpS
    -----END PGP PUBLIC KEY BLOCK-----
    1 change: 1 addition & 0 deletions hashicorp.trust
    Original file line number Diff line number Diff line change
    @@ -0,0 +1 @@
    91A6E7F85D05C65630BEF18951852D87348FFC4C:4:
    59 changes: 59 additions & 0 deletions install_hashicorp_tool.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,59 @@
    #!/usr/bin/env bash
    set -e

    #
    # Installs the given HashiCorp tool, verifying checksums and GPG signatures. Exits
    # non-zero on failure.
    #
    # Usage:
    # install_hashicorp_tool.sh terraform 0.11.5
    #
    # Requirements:
    # - gpg, with hashicorp key trusted
    # - curl
    # - sha256sum


    NAME="$1"
    if [ -z "$NAME" ]; then
    echo "Missing name"
    exit 1
    fi

    VERSION="$2"
    if [ -z "$VERSION" ]; then
    echo "Missing version"
    exit
    fi

    DOWNLOAD_ROOT="https://releases.hashicorp.com/${NAME}/${VERSION}/${NAME}_${VERSION}"
    DOWNLOAD_ZIP="${DOWNLOAD_ROOT}_linux_amd64.zip"
    DOWNLOAD_SHA="${DOWNLOAD_ROOT}_SHA256SUMS"
    DOWNLOAD_SIG="${DOWNLOAD_ROOT}_SHA256SUMS.sig"

    echo "==> Installing ${NAME} v${VERSION}"

    echo "--> Downloading SHASUM and SHASUM signatures"
    curl -sfO "${DOWNLOAD_SHA}"
    curl -sfO "${DOWNLOAD_SIG}"

    echo "--> Verifying signatures file"
    gpg --verify "${NAME}_${VERSION}_SHA256SUMS.sig" "${NAME}_${VERSION}_SHA256SUMS"

    echo "--> Downloading ${NAME} v${VERSION} (linux/amd64)"
    curl -sfO "${DOWNLOAD_ZIP}"

    echo "--> Validating SHA256SUM"
    sha256sum --ignore-missing --quiet --strict --check "${NAME}_${VERSION}_SHA256SUMS"

    echo "--> Unpacking and installing"
    unzip "${NAME}_${VERSION}_linux_amd64.zip"
    mv "${NAME}" "/usr/local/bin/${NAME}"
    chmod +x "/usr/local/bin/${NAME}"

    echo "--> Removing temporary files"
    rm "${NAME}_${VERSION}_linux_amd64.zip"
    rm "${NAME}_${VERSION}_SHA256SUMS"
    rm "${NAME}_${VERSION}_SHA256SUMS.sig"

    echo "--> Done!"
    12 changes: 12 additions & 0 deletions trust.sh
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,12 @@
    #!/usr/bin/env bash
    set -e

    #
    # Run this only once to import and trust the HashiCorp GPG key
    #
    # Usage:
    # trust.sh
    #

    gpg --import /tmp/hashicorp.asc
    gpg --import-ownertrust /tmp/hashicorp.trust