Skip to content

Instantly share code, notes, and snippets.

@whip113
Last active February 14, 2020 20:23
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save whip113/e2c4d39f24490b34a89035850427da37 to your computer and use it in GitHub Desktop.
Save whip113/e2c4d39f24490b34a89035850427da37 to your computer and use it in GitHub Desktop.
#!/bin/bash
read -p "Enter the FQDN of the Master: " MASTER
read -p "Enter the FQDN of the first Standby: " STANDBY1
read -p "Enter the FQDN of the second Standby: " STANDBY2
read -p "Enter the Docker container name: " CONTAINER
read -p "Enter the Docker image tag: " TAG
read -p "Enter the cluster name: " CLUSTER
read -p "Enter the full path to the Docker image file name: " IMAGE
read -p "Enter the filename of the backup: " BACKUP_FILE
read -p "Enter the filename of the backup: " KEY
read -p "Enter the path to the SSH private key: " PRIVATEKEY
#
# Stop Postgres Replication on all nodes
#
ssh -i $PRIVATEKEY $STANDBY "docker exec $CONTAINER evoke replication stop"
ssh -i $PRIVATEKEY $STANDBY2 "docker exec $CONTAINER evoke replication stop"
#
# Stop standby nodes to prevent auto-failover being triggered
#
ssh -i $PRIVATEKEY $STANDBY1 "docker stop $CONTAINER"
ssh -i $PRIVATEKEY $STANDBY2 "docker stop $CONTAINER"
#
# Redeploy Standbys
#
ssh -i $PRIVATEKEY $STANDBY1 "docker load -i $IMAGE"
ssh -i $PRIVATEKEY $STANDBY1 "docker rm -f $CONTAINER"
ssh -i $PRIVATEKEY $STANDBY1 "docker run --name $CONTAINER -d --restart=always --security-opt seccomp:unconfined -v "/opt/conjur/backup:/opt/conjur/backup" -p "443:443" -p "636:636" -p "5432:5432" -p "1999:1999" $TAG"
ssh -i $PRIVATEKEY $MASTER "docker exec $CONTAINER evoke seed standby $STANDBY1 $MASTER" | ssh -i $PRIVATEKEY $STANDBY1 "docker exec -i $CONTAINER evoke unpack seed -"
ssh -i $PRIVATEKEY $STANDBY "docker exec $CONTAINER evoke configure standby"
ssh -i $PRIVATEKEY $STANDBY2 "docker load -i $IMAGE"
ssh -i $PRIVATEKEY $STANDBY2 "docker rm -f $CONTAINER"
ssh -i $PRIVATEKEY $STANDBY2 "docker run --name $CONTAINER -d --restart=always --security-opt seccomp:unconfined -v "/opt/conjur/backup:/opt/conjur/backup" -p "443:443" -p "636:636" -p "5432:5432" -p "1999:1999" $TAG"
ssh -i $PRIVATEKEY $MASTER "docker exec $CONTAINER evoke seed standby $STANDBY2 $MASTER" | ssh -i $PRIVATEKEY $STANDBY2 "docker exec -i $CONTAINER evoke unpack seed -"
ssh -i $PRIVATEKEY $STANDBY2 "docker exec $CONTAINER evoke configure standby"
#
# Reenroll standbys in the cluster
#
ssh -i $PRIVATEKEY $STANDBY2 "docker exec $CONTAINER evoke cluster enroll -n $MASTER $CLUSTER"
ssh -i $PRIVATEKEY $STANDBY "docker exec $CONTAINER evoke cluster enroll -n $STANDBY1 -m $MASTER $CLUSTER"
ssh -i $PRIVATEKEY $STANDBY2 "docker exec $CONTAINER evoke cluster enroll -n $STANDBY2 -m $MASTER $CLUSTER"
ssh -i $PRIVATEKEY $STANDBY1 "docker exec $CONTAINER evoke replication sync enable"
ssh -i $PRIVATEKEY $MASTER "docker exec $CONTAINER evoke replication sync start"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment