1#!/usr/bin/env bash
2set -e
3
4# Install packages
5sudo apt-get update -y
6sudo apt-get install -y curl unzip
7
8# Download Vault into some temporary directory
9curl -L "${download_url}" > /tmp/vault.zip
10
11# Unzip it
12cd /tmp
13sudo unzip vault.zip
14sudo mv vault /usr/local/bin
15sudo chmod 0755 /usr/local/bin/vault
16sudo chown root:root /usr/local/bin/vault
17
18# Setup the configuration
19cat <<EOF >/tmp/vault-config
20${config}
21EOF
22sudo mv /tmp/vault-config /usr/local/etc/vault-config.json
23
24# Setup the init script
25cat <<EOF >/tmp/upstart
26description "Vault server"
27
28start on runlevel [2345]
29stop on runlevel [!2345]
30
31respawn
32
33script
34  if [ -f "/etc/service/vault" ]; then
35    . /etc/service/vault
36  fi
37
38  # Make sure to use all our CPUs, because Vault can block a scheduler thread
39  export GOMAXPROCS=`nproc`
40
41  exec /usr/local/bin/vault server \
42    -config="/usr/local/etc/vault-config.json" \
43    \$${VAULT_FLAGS} \
44    >>/var/log/vault.log 2>&1
45end script
46EOF
47sudo mv /tmp/upstart /etc/init/vault.conf
48
49# Extra install steps (if any)
50${extra-install}
51
52# Start Vault
53sudo start vault
54