home · contact · privacy
Fix.
authorChristian Heller <c.heller@plomlompom.de>
Fri, 25 Apr 2025 10:26:24 +0000 (12:26 +0200)
committerChristian Heller <c.heller@plomlompom.de>
Fri, 25 Apr 2025 10:26:24 +0000 (12:26 +0200)
testing/scripts/init_server_access.sh
trixie/scripts/from_older_upgrade.sh

index 7b6fefac83726b09e05d5d623e3e4a95678fa0e2..1b57954107fcde047e482b8ef87def80c805a783 100755 (executable)
@@ -3,30 +3,49 @@ set -e
 cd $(dirname "$0")
 . lib/constants_ssh  # PATH_USER_SSH
 . lib/expect_n_args
+. lib/path_tmp_timestamped
+. lib/trapp
 
 PATH_KNOWN_HOSTS="${PATH_USER_SSH}/known_hosts"
+URL_REPO_CLONE='https://plomlompom.com/repos/clone/config'
 
 expect_n_args 1 1 '(server)' $@
 SERVER="$1"
 
-echo '\nKnow host.\n'
+echo "In ${PATH_KNOWN_HOSTS}, removing previous entry for ${SERVER} if found …"
+ssh-keygen -f "${PATH_KNOWN_HOSTS}" -R "${SERVER}" > /dev/null
+
+echo 'Scanning server for new key to add to file …'
+PATH_LOG_KEYSCAN_STDERR=$(path_tmp_timestamped)
+CMD_RM_LOG="rm ${PATH_LOG_KEYSCAN_STDERR}"
 set +e
-ssh-keygen -f "${PATH_KNOWN_HOSTS}" -R "${SERVER}"
-ssh-keyscan "${SERVER}" >> "${PATH_KNOWN_HOSTS}"
+ssh-keyscan -v "${SERVER}" >> "${PATH_KNOWN_HOSTS}" 2> "${PATH_LOG_KEYSCAN_STDERR}"
 RESULT=$?
+set -e
+trapp "${CMD_RM_LOG}"
 if [ "${RESULT}" != "0" ]; then
-    echo "ERROR: For some reason ssh-keyscan returned non-zero exit code, here's what a re-run with -v looks like:"
-    ssh-keyscan -v "${SERVER}"
-    exit 1 
+    echo "ERROR: For some reason ssh-keyscan returned non-zero exit code, here's it's stderr log:"
+    cat "${PATH_LOG_KEYSCAN_STDERR}"
+    exit "${RESULT}" 
 fi
-set -e
+${CMD_RM_LOG}
+trapp
 
-echo '\nAsking for new root password.\n'
+CMD_SSH="ssh root@${SERVER}"
+
+echo 'On server, asking for new root password …'
+stty echonl
 stty -echo
-ssh "root@${SERVER}" 'printf "\n\n" && passwd'
+${CMD_SSH} 'passwd'
 stty echo
 
-echo '\nSetting up config repo.'
-ssh "root@${SERVER}" 'apt-get -q update && apt-get -q -y install git && git clone https://plomlompom.com/repos/clone/config'
+echo 'On server, updating package database …'
+${CMD_SSH} 'apt-get update > /dev/null'
+
+echo 'On server, installing git …'
+${CMD_SSH} 'DEBIAN_FRONTEND=noninteractive apt-get -y install git > /dev/null'
+
+echo 'On server, pulling config repo …' 
+${CMD_SSH} "git clone -q ${URL_REPO_CLONE}"
 
-echo "\nServer ready, log in with: ssh root@${SERVER}"
+echo "Server ready, log in with: ssh root@${SERVER}"
index 811f61cbf3a3c3bc3f9cf2e34de42f77408eeff2..c91b1ae07372c8e932b1c48fbd74d46921bc2eac 100755 (executable)
@@ -9,15 +9,26 @@ PATH_COPY_TAG='../copy/all'
 export DEBIAN_FRONTEND=noninteractive
 
 apt_update_to_full_upgrade() {
-    apt-get -q -q update
-    apt-get -q -q -y -o Dpkg::Options::='--force-confnew' upgrade
-    apt-get -q -q -y -o Dpkg::Options::='--force-confnew' full-upgrade
+    echo '\nUpdating package database …\n'
+    apt-get update > /dev/null
+    echo '\nSoft-upgrading …\n'
+    apt-get -y -o Dpkg::Options::='--force-confnew' upgrade
+    echo '\nFull-upgrading …\n'
+    apt-get -y -o Dpkg::Options::='--force-confnew' full-upgrade
+    echo ''
 }
 
-cp "${PATH_COPY_TAG}${PATH_ETC_APT_CONF}/99_minimize_dependencies" "${PATH_ETC_APT_CONF}/"
+PATH_CONF_MIN_DEPS="${PATH_COPY_TAG}${PATH_ETC_APT_CONF}/99_minimize_dependencies"
+echo "Copying over ${PATH_CONF_MIN_DEPS} …"
+cp "${PATH_CONF_MIN_DEPS}""${PATH_ETC_APT_CONF}/"
+
 apt_update_to_full_upgrade
 
-cp "${PATH_COPY_TAG}${PATH_ETC_APT}/sources.list" "${PATH_ETC_APT}/"
-apt-get clean
+PATH_CONF_SOURCES="${PATH_COPY_TAG}${PATH_ETC_APT}/sources.list"
+echo "Copying over ${PATH_CONF_SOURCES} …"
+cp "${PATH_CONF_SOURCES}" "${PATH_ETC_APT}/"
+
 apt_update_to_full_upgrade
+
+echo '\nPurging …\n'
 apt-get -q -q -y autopurge