Skip to content

Instantly share code, notes, and snippets.

@yunano
Last active August 17, 2023 08:51
Show Gist options
  • Star 18 You must be signed in to star a gist
  • Fork 7 You must be signed in to fork a gist
  • Save yunano/66caf8c5ed993bb2f4e3 to your computer and use it in GitHub Desktop.
Save yunano/66caf8c5ed993bb2f4e3 to your computer and use it in GitHub Desktop.
/etc/systemd/system/vault.service
[Unit]
Description=vault server
Requires=network-online.target
After=network-online.target consul.service
[Service]
EnvironmentFile=-/etc/sysconfig/vault
Restart=on-failure
ExecStart=/usr/local/sbin/vault server $OPTIONS -config=/etc/vault.d
ExecStartPost=/bin/bash -c "for key in $KEYS; do /usr/local/sbin/vault unseal $CERT $key; done"
[Install]
WantedBy=multi-user.target
@bweston92
Copy link

Thank you!

@mohamedhaleem
Copy link

can you share the setup of the EnvironmentFile (/etc/sysconfig/vault) ?

@JanisOrlovs
Copy link

I could suggest, that best practice is to run vault under specific non-administrative user

@bramswenson
Copy link

Your unseal keys should never be variables in your environment. Unsealing is meant to be the one and only manual process. What you are doing is extremely unsafe. You may know this already, but just in case, the details are here: hashicorp/vault#72

Note: Unsealing makes the process of automating a Vault install difficult. Automated tools can easily install, configure, and start Vault, but unsealing it is a very manual process. We have plans in the future to make it easier. For the time being, the best method is to manually unseal multiple Vault servers in HA mode. Use a tool such as Consul to make sure you only query Vault servers that are unsealed.

https://www.vaultproject.io/docs/concepts/seal.html

@bramswenson
Copy link

bramswenson commented Nov 12, 2017

Also, this file would not safely stop vault on shutdown.

This would be much safer...

ExecStop=/full/path/to/vault step-down

@okeddie
Copy link

okeddie commented Dec 30, 2018

@vjanssens
Copy link

@ilanni2460
Copy link

vim /etc/systemd/system/multi-user.target.wants/vault.service

Environment="VAULT_ADDR=https://vlt-uat-app-02.intranet.ilanni.com:8200"
ExecStartPost=/usr/bin/vault operator unseal 2rMyAS1PzBtuGTc/ArxCnb6xdB

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment