Vault

Ubuntu Installation

Consul is a dependency for Vault. Install that first.

Download latest version of Vault, unpack the zip file, and put the binary in /usr/local/sbin.

Set the proper file capabilities:

setcap cap_ipc_lock=+ep /usr/local/bin/vault

Set up a user for vault:

mkdir /var/lib/vault
useradd vault -d /var/lib/vault
chown vault: /var/lib/vault
chmod 0700 /var/lib/vault

Create an init script for the service, have it start on boot, and depend upon consul.

In /etc/init/vault.conf:

description "Vault process"

start on started consul
stop on stopping consul

respawn

setuid vault
setgid vault

exec vault server -config /etc/vault

Create a base configuration for Vault in /etc/vault/config.hcl using Consul:

backend "consul" {
  address = "127.0.0.1:8500"
  path = "vault"
}

listener "tcp" {
  address = "0.0.0.0:8200"
  tls_disable = 1
}

disable_mlock = true

Test Run

After installing Vault, you can run it in a development / testing mode. This will run it in the foreground:

vault server -dev

In another terminal window, export the VAULT_ADDR variable before accessing the service.

export VAULT_ADDR="http://127.0.0.1:8200"

Check that the service is running:

vault status

Write some sample data:

vault write secret/hello value=world

Verify the data has been written:

vault read secret/hello

Output data in JSON format as well:

vault read -format=json secret/hello

Delete the sample data:

vault delete secret/hello