elasticsearch/example/prep.d/10-elasticsearch-rand-secrets.sh

26 lines
826 B
Bash
Executable File

#!/bin/sh
set -euo pipefail
# vim: syntax=sh
export LC_ALL=C
VAULT_KV_PATH=kv/service/elasticsearch
RAND_CMD="tr -dc A-Za-z0-9\-_\/=~\.+ < /dev/urandom | head -c 50"
if ! vault kv list $(dirname ${VAULT_KV_PATH}) 2>/dev/null | grep -q -E "^$(basename ${VAULT_KV_PATH})\$"; then
vault kv put ${VAULT_KV_PATH} \
elastic_pwd="$(sh -c "${RAND_CMD}")" \
es_bootstrap_pwd="$(sh -c "${RAND_CMD}")" \
exporter_pwd="$(sh -c "${RAND_CMD}")" \
healthdata_services_pwd="$(sh -c "${RAND_CMD}")" \
stock_services_pwd="$(sh -c "${RAND_CMD}")" \
fi
for SECRET in elastic_pwd es_bootstrap_pwd exporter_pwd healthdata_services_pwd stock_services_pwd; do
if ! vault kv get -field ${SECRET} ${VAULT_KV_PATH} >/dev/null 2>&1; then
vault kv patch ${VAULT_KV_PATH} \
${SECRET}=$(sh -c "${RAND_CMD}")
fi
done