ansible-hashicorp-vault/files/vault-backup.sh
2023-08-27 17:05:59 +02:00

33 lines
779 B
Bash
Executable File

export PATH_SNAPSHOT=$1
export PATH_DIR="daily"
export PATH_BACKUP=$PATH_SNAPSHOT"/"$PATH_DIR
export VAULT_APPROLEID=$2
export VAULT_SECRETID=$3
export VAULT_ADDR="http://active.vault.service.consul:8200"
export RETENTION=30
export ENV="0" # (0 = staging, 1 = production)
export SNAPSHOT_FILE=$(date +%Y-%m-%d)
create_snapshot_folder(){
mkdir -p $PATH_BACKUP
}
run_snapshot() {
export VAULT_TOKEN=$(/usr/bin/vault write -field=token auth/approle/login role_id=$VAULT_APPROLEID secret_id=$VAULT_SECRETID)
/usr/bin/vault operator raft snapshot save $PATH_BACKUP/$SNAPSHOT_FILE.snap
}
retention() {
find $PATH_BACKUP -name "*.snap" -mtime +${RETENTION} -print -exec rm {} \;
}
main() {
create_snapshot_folder
run_snapshot
retention
}
### START HERE ###
main $@