Skip to content

Commit a0e90ef

Browse files
committed
Add support for restoring ES v1.x backups
1 parent e4eef73 commit a0e90ef

1 file changed

Lines changed: 22 additions & 2 deletions

File tree

libexec/ghe-restore-es-rsync

Lines changed: 22 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,22 +23,42 @@ ghe_remote_version_required "$host"
2323
# us run this script directly.
2424
: ${GHE_RESTORE_SNAPSHOT:=current}
2525

26+
# The directory holding the snapshot to restore
27+
snapshot_dir="$GHE_DATA_DIR/$GHE_RESTORE_SNAPSHOT"
28+
2629
# Use GNU tar on BSDs.
2730
TAR=tar
2831
if ! tar --version | grep -q GNU; then
2932
TAR=gtar
3033
fi
3134

3235
# Transfer all ES data from the latest snapshot to the GitHub instance.
33-
if [ ! -d "$GHE_DATA_DIR/$GHE_RESTORE_SNAPSHOT/elasticsearch" ]; then
36+
if [ ! -d "$snapshot_dir/elasticsearch" ]; then
3437
echo "Warning: Elasticsearch backup missing. Skipping ..."
3538
exit 0
36-
elif [ "$GHE_VERSION_MAJOR" -gt 1 ]; then
39+
40+
# restoring v11.10.x ES snapshot into a v2.0 appliance
41+
elif [ "$GHE_VERSION_MAJOR" -gt 1 -a -f "$snapshot_dir/elasticsearch/elasticsearch.yml" ]; then
3742
cd "$GHE_DATA_DIR/$GHE_RESTORE_SNAPSHOT/elasticsearch"
3843
ghe-ssh "$host" -- "sudo mkdir -p '$GHE_REMOTE_DATA_USER_DIR/elasticsearch-legacy'" 1>&3
3944

4045
$TAR -cf - --owner=root --group=root . |
4146
ghe-ssh "$host" -- "sudo tar -xf - -C '$GHE_REMOTE_DATA_USER_DIR/elasticsearch-legacy'" 1>&3
47+
48+
# restoring v2.0 ES snapshot into a v2.0 appliance
49+
elif [ "$GHE_VERSION_MAJOR" -gt 1 ]; then
50+
ghe-ssh "$host" -- "sudo mkdir -p '$GHE_REMOTE_DATA_USER_DIR/elasticsearch-snapshots'" 1>&3
51+
ghe-ssh "$host" -- "sudo chown elasticsearch:elasticsearch '$GHE_REMOTE_DATA_USER_DIR/elasticsearch-snapshots'" 1>&3
52+
53+
ghe-rsync -avz --delete \
54+
-e "ghe-ssh -p $(ssh_port_part "$host")" \
55+
--rsync-path="sudo -u elasticsearch rsync" \
56+
"$snapshot_dir/elasticsearch/" \
57+
"$(ssh_host_part "$host"):$GHE_REMOTE_DATA_USER_DIR/elasticsearch-snapshots" 1>&3
58+
59+
ghe-ssh "$host" -- "ghe-es-restore"
60+
61+
# restoring v11.10.x ES snapshot into a v11.10.x appliance
4262
else
4363
cd "$GHE_DATA_DIR/$GHE_RESTORE_SNAPSHOT"
4464
$TAR -cf - --owner=root --group=root elasticsearch |

0 commit comments

Comments
 (0)