[refactor][fix] Update reinstall logic

* Only set reinstall flag if new accept_changes file exists
* Instead of stopping highstate from running, kill all salt processes and remove their configs
* Make end of non-reinstall logs clear in cases where user cancels (and log not rotated)
This commit is contained in:
William Wernert
2020-11-18 12:29:54 -05:00
parent 8a4defcffa
commit ad74b4b3e0
4 changed files with 22 additions and 24 deletions

View File

@@ -1382,20 +1382,13 @@ reinstall_init() {
info "Putting system in state to run setup again"
{
local minion_config=/etc/salt/minion
rm -f "$change_file"
# Remove startup_states from minion config so we don't immediately highstate when salt starts back up
if [[ -f $minion_config ]] && grep -q "startup_states" $minion_config; then
sed -i '/startup_states/d' $minion_config
fi
# Kill any salt processes
pkill -9 -ef /usr/bin/salt
if command -v salt-call &> /dev/null; then
# Disable schedule so highstate doesn't start running during the install
salt-call -l info schedule.disable
# Kill any currently running salt jobs, also to prevent issues with highstate.
salt-call -l info saltutil.kill_all_jobs
fi
# Remove all salt configs
rm -rf /etc/salt/global /etc/salt/minion /etc/salt/master /etc/salt/pki/*
if command -v docker &> /dev/null; then
# Stop and remove all so-* containers so files can be changed with more safety

View File

@@ -24,19 +24,10 @@ fi
cd "$(dirname "$0")" || exit 255
source ./so-variables
is_reinstall=false
if [[ -f $setup_log ]]; then
is_reinstall=true
# Move last setup log to backup
mv $setup_log $setup_log.bak
fi
source ./so-functions
source ./so-common-functions
source ./so-whiptail
source ./so-variables
# Parse command line arguments
setup_type=$1
@@ -63,6 +54,13 @@ while [[ $# -gt 0 ]]; do
esac
done
is_reinstall=false
if [[ -f $change_file ]]; then
is_reinstall=true
# Move last setup log to backup
mv "$setup_log" "$setup_log.bak"
fi
# Begin Installation pre-processing
parse_install_username
@@ -320,7 +318,6 @@ if [[ $is_import ]]; then
PLAYBOOK=0
fi
# Start user prompts
if [[ $is_helix || $is_sensor ]]; then
@@ -428,6 +425,7 @@ fi
if [[ $is_manager || $is_import ]]; then whiptail_so_allow; fi
whiptail_make_changes
touch $change_file
# From here on changes will be made.

View File

@@ -21,6 +21,9 @@ export node_es_port
setup_log="/root/sosetup.log"
export setup_log
change_file="/root/accept_changes"
export change_file
filesystem_root=$(df / | awk '$3 ~ /[0-9]+/ { print $2 * 1000 }')
export filesystem_root

View File

@@ -168,8 +168,12 @@ whiptail_cancel() {
echo "/root/installtmp removed";
} >> $setup_log 2>&1
fi
exit
echo "----------" >> "$setup_log" 2>&1
info "User cancelled setup, no changes made."
echo "----------" >> "$setup_log" 2>&1
exit
}
whiptail_check_exitstatus() {