Skip to content

Instantly share code, notes, and snippets.

@chrismatteson
Last active January 9, 2020 00:00
Show Gist options
  • Save chrismatteson/baa6d0d18c7fb98cffe2ee6a29250edd to your computer and use it in GitHub Desktop.
Save chrismatteson/baa6d0d18c7fb98cffe2ee6a29250edd to your computer and use it in GitHub Desktop.
setupvault.tpl
#!/bin/bash
sudo apt-get update
sudo apt-get install -y unzip
sudo apt-get install -y jq
USER="vault"
COMMENT="Hashicorp vault user"
GROUP="vault"
HOME="/srv/vault"
# Detect package management system.
YUM=$(which yum 2>/dev/null)
APT_GET=$(which apt-get 2>/dev/null)
user_rhel() {
# RHEL user setup
sudo /usr/sbin/groupadd --force --system $${GROUP}
if ! getent passwd $${USER} >/dev/null ; then
sudo /usr/sbin/adduser \
--system \
--gid $${GROUP} \
--home $${HOME} \
--no-create-home \
--comment "$${COMMENT}" \
--shell /bin/false \
$${USER} >/dev/null
fi
}
user_ubuntu() {
# UBUNTU user setup
if ! getent group $${GROUP} >/dev/null
then
sudo addgroup --system $${GROUP} >/dev/null
fi
if ! getent passwd $${USER} >/dev/null
then
sudo adduser \
--system \
--disabled-login \
--ingroup $${GROUP} \
--home $${HOME} \
--no-create-home \
--gecos "$${COMMENT}" \
--shell /bin/false \
$${USER} >/dev/null
fi
}
if [[ ! -z $${YUM} ]]; then
logger "Setting up user $${USER} for RHEL/CentOS"
user_rhel
elif [[ ! -z $${APT_GET} ]]; then
logger "Setting up user $${USER} for Debian/Ubuntu"
user_ubuntu
else
logger "$${USER} user not created due to OS detection failure"
exit 1;
fi
logger "User setup complete"
VAULT_ZIP="vault.zip"
VAULT_URL=${vault_url}
sudo curl --output /tmp/$${VAULT_ZIP} $${VAULT_URL}
sudo unzip -o /tmp/$${VAULT_ZIP} -d /usr/local/bin/
sudo chmod 0755 /usr/local/bin/vault
sudo chown vault:vault /usr/local/bin/vault
sudo mkdir -pm 0755 /etc/vault.d
sudo mkdir -pm 0755 /opt/vault
sudo chown vault:vault /opt/vault
cat << EOF | sudo tee /lib/systemd/system/vault.service
[Unit]
Description=Vault Agent
Requires=network-online.target
After=network-online.target
[Service]
Restart=on-failure
PermissionsStartOnly=true
ExecStartPre=/sbin/setcap 'cap_ipc_lock=+ep' /usr/local/bin/vault
ExecStart=/usr/local/bin/vault server -config /etc/vault.d
ExecReload=/bin/kill -HUP $MAINPID
KillSignal=SIGTERM
User=vault
Group=vault
[Install]
WantedBy=multi-user.target
EOF
cat << EOF | sudo tee /etc/vault.d/vault.hcl
storage "file" {
path = "/opt/vault"
}
listener "tcp" {
address = "0.0.0.0:8200"
tls_disable = 1
}
ui=true
EOF
sudo chmod 0664 /lib/systemd/system/vault.service
sudo systemctl daemon-reload
sudo chown -R vault:vault /etc/vault.d
sudo chmod -R 0644 /etc/vault.d/*
sudo systemctl enable vault
sudo systemctl start vault
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment