diff options
author | Alex Auvolat <alex@adnab.me> | 2020-11-15 19:27:57 +0100 |
---|---|---|
committer | Alex Auvolat <alex@adnab.me> | 2020-11-15 19:27:57 +0100 |
commit | e2a0c40e6bf3919e6cef6ed1789251b30367dc11 (patch) | |
tree | 5a236ef52f6af0a595815bd4132b203304d0c1d6 /app/build/backup-consul | |
parent | 2051a21662a9b7a029bd18c7874d61c3b4d28325 (diff) | |
download | infrastructure-e2a0c40e6bf3919e6cef6ed1789251b30367dc11.tar.gz infrastructure-e2a0c40e6bf3919e6cef6ed1789251b30367dc11.zip |
Script to backup Consul KV store
Diffstat (limited to 'app/build/backup-consul')
-rw-r--r-- | app/build/backup-consul/Dockerfile | 21 | ||||
-rwxr-xr-x | app/build/backup-consul/do_backup.sh | 19 |
2 files changed, 40 insertions, 0 deletions
diff --git a/app/build/backup-consul/Dockerfile b/app/build/backup-consul/Dockerfile new file mode 100644 index 0000000..ff052bf --- /dev/null +++ b/app/build/backup-consul/Dockerfile @@ -0,0 +1,21 @@ +FROM amd64/debian:buster + +RUN apt-get update && \ + apt-get -qq -y full-upgrade && \ + apt-get install -y rsync wget openssh-client unzip && \ + apt-get clean && \ + rm -f /var/lib/apt/lists/*_* + +RUN mkdir -p /root/.ssh +WORKDIR /root + +RUN wget https://releases.hashicorp.com/consul/1.8.5/consul_1.8.5_linux_amd64.zip && \ + unzip consul_1.8.5_linux_amd64.zip && \ + chmod +x consul && \ + mv consul /usr/local/bin && \ + rm consul_1.8.5_linux_amd64.zip + +COPY do_backup.sh /root/do_backup.sh + +CMD "/root/do_backup.sh" + diff --git a/app/build/backup-consul/do_backup.sh b/app/build/backup-consul/do_backup.sh new file mode 100755 index 0000000..049c998 --- /dev/null +++ b/app/build/backup-consul/do_backup.sh @@ -0,0 +1,19 @@ +#!/bin/sh + +set -x -e + +cd /root + +chmod 0600 .ssh/id_ed25519 + +cat > .ssh/config <<EOF +Host backuphost + HostName $TARGET_SSH_HOST + Port $TARGET_SSH_PORT + User $TARGET_SSH_USER +EOF + +consul kv export > consul_kv_dump.json +gzip consul_kv_dump.json + +rsync -vvvz --progress consul_kv_dump.json.gz "backuphost:$TARGET_SSH_DIR/consul/" |