Skip to content

Commit 63e6526

Browse files
authored
Merge pull request #230 from github/fix-git-over-ssh-keys-restore
Clusters: Restore Git over SSH host keys
2 parents 18a2006 + cbc9bc6 commit 63e6526

File tree

2 files changed

+7
-58
lines changed

2 files changed

+7
-58
lines changed

bin/ghe-restore

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -314,6 +314,13 @@ ghe_remote_logger "Completed restore from $(hostname) / snapshot ${GHE_RESTORE_S
314314
if ! $cluster; then
315315
echo "Restoring SSH host keys ..."
316316
ghe-ssh "$GHE_HOSTNAME" -- 'ghe-import-ssh-host-keys' < "$GHE_RESTORE_SNAPSHOT_PATH/ssh-host-keys.tar" 1>&3
317+
else
318+
# This will make sure that Git over SSH host keys (babeld) are
319+
# copied to all the cluster nodes so babeld uses the same keys.
320+
echo "Restoring Git over SSH host keys ..."
321+
ghe-ssh "$GHE_HOSTNAME" -- "sudo tar -xpf - -C /data/user/common" < "$GHE_RESTORE_SNAPSHOT_PATH/ssh-host-keys.tar" 1>&3
322+
ghe-ssh "$GHE_HOSTNAME" -- "sudo chown babeld:babeld /data/user/common/ssh_host_*" 1>&3
323+
ghe-ssh "$GHE_HOSTNAME" -- "/usr/local/share/enterprise/ghe-cluster-config-update -s" 1>&3
317324
fi
318325

319326
echo "Completed restore of $GHE_HOSTNAME from snapshot $GHE_RESTORE_SNAPSHOT"

test/test-ghe-restore.sh

Lines changed: 0 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -466,61 +466,3 @@ begin_test "ghe-restore with tarball strategy"
466466
echo "$output" | grep -q 'fake ghe-export-repositories data'
467467
)
468468
end_test
469-
470-
begin_test "cluster: ghe-restore from v2.4.0 snapshot"
471-
(
472-
set -e
473-
rm -rf "$GHE_REMOTE_ROOT_DIR"
474-
setup_remote_cluster || exit 0
475-
setup_remote_metadata
476-
477-
# set restore host environ var
478-
GHE_RESTORE_HOST=127.0.0.1
479-
export GHE_RESTORE_HOST
480-
481-
# create file used to determine if instance is in maintenance mode.
482-
mkdir -p "$GHE_REMOTE_DATA_DIR/github/current/public/system"
483-
touch "$GHE_REMOTE_DATA_DIR/github/current/public/system/maintenance.html"
484-
485-
echo "v2.4.0" > "$GHE_DATA_DIR/current/version"
486-
487-
# run ghe-restore and write output to file for asserting against
488-
if ghe-restore -v -f > "$TRASHDIR/restore-out" 2>&1; then
489-
cat "$TRASHDIR/restore-out"
490-
: ghe-restore should have exited non-zero
491-
false
492-
fi
493-
494-
# verify restore error message
495-
grep -q "Error: Snapshot must be from" "$TRASHDIR/restore-out"
496-
)
497-
end_test
498-
499-
begin_test "cluster: ghe-restore from v2.5.0 snapshot"
500-
(
501-
set -e
502-
rm -rf "$GHE_REMOTE_ROOT_DIR"
503-
setup_remote_cluster || exit 0
504-
setup_remote_metadata
505-
506-
# set restore host environ var
507-
GHE_RESTORE_HOST=127.0.0.1
508-
export GHE_RESTORE_HOST
509-
510-
# create file used to determine if instance is in maintenance mode.
511-
mkdir -p "$GHE_REMOTE_DATA_DIR/github/current/public/system" "$GHE_REMOTE_DATA_USER_DIR/common"
512-
touch "$GHE_REMOTE_DATA_DIR/github/current/public/system/maintenance.html"
513-
514-
echo "v2.5.0" > "$GHE_DATA_DIR/current/version"
515-
516-
# run ghe-restore and write output to file for asserting against
517-
if ! ghe-restore -v -f > "$TRASHDIR/restore-out" 2>&1; then
518-
cat "$TRASHDIR/restore-out"
519-
: ghe-restore should have exited successfully
520-
false
521-
fi
522-
523-
# verify that ghe-backup wrote its version information to the host
524-
[ -f "$GHE_REMOTE_DATA_USER_DIR/common/backup-utils-version" ]
525-
)
526-
end_test

0 commit comments

Comments
 (0)