mirror of
https://github.com/Security-Onion-Solutions/securityonion.git
synced 2026-07-03 15:48:29 +02:00
Merge pull request #16033 from Security-Onion-Solutions/jertel/wip
avoid setup failure reason ambiguity
This commit is contained in:
+17
-16
@@ -29,8 +29,12 @@ title() {
|
||||
}
|
||||
|
||||
fail_setup() {
|
||||
local err_msg=$1
|
||||
if [[ -n "$err_msg" ]]; then
|
||||
error "$err_msg"
|
||||
fi
|
||||
error "Setup encountered an unrecoverable failure, exiting"
|
||||
touch /root/failure
|
||||
echo "setup incomplete: $err_msg" > /root/failure
|
||||
exit 1
|
||||
}
|
||||
|
||||
@@ -697,7 +701,7 @@ compare_main_nic_ip() {
|
||||
EOM
|
||||
|
||||
[[ -n $TESTING ]] || whiptail --title "$whiptail_title" --msgbox "$message" 11 75
|
||||
kill -SIGINT "$(ps --pid $$ -oppid=)"; fail_setup
|
||||
kill -SIGINT "$(ps --pid $$ -oppid=)"; fail_setup "Main IP mismatch"
|
||||
fi
|
||||
else
|
||||
# Setup uses MAINIP, but since we ignore the equality condition when using a VPN
|
||||
@@ -755,8 +759,7 @@ configure_management_bond() {
|
||||
info "Setting up $bond_name management interface with mode $bond_mode"
|
||||
|
||||
if [[ ${#MBNICS[@]} -eq 0 ]]; then
|
||||
error "[ERROR] No management bond NICs were selected."
|
||||
fail_setup
|
||||
fail_setup "No management bond NICs selected"
|
||||
fi
|
||||
|
||||
nmcli -t -f NAME con show | grep -Fxq "$bond_name"
|
||||
@@ -914,8 +917,7 @@ detect_os() {
|
||||
is_rpm=true
|
||||
is_supported=true
|
||||
else
|
||||
info "This OS is not supported. Security Onion requires Oracle Linux 9."
|
||||
fail_setup
|
||||
fail_setup "This OS is not supported. Security Onion requires Oracle Linux 9."
|
||||
fi
|
||||
|
||||
info "Found OS: $OS $OSVER"
|
||||
@@ -923,7 +925,7 @@ detect_os() {
|
||||
|
||||
download_elastic_agent_artifacts() {
|
||||
if ! update_elastic_agent 2>&1 | tee -a "$setup_log"; then
|
||||
fail_setup
|
||||
fail_setup "Failed to update Elastic Agent"
|
||||
fi
|
||||
}
|
||||
|
||||
@@ -1567,7 +1569,7 @@ proxy_validate() {
|
||||
error "Received error: $proxy_test_err"
|
||||
if [[ -n $TESTING ]]; then
|
||||
error "Exiting setup"
|
||||
kill -SIGINT "$(ps --pid $$ -oppid=)"; fail_setup
|
||||
kill -SIGINT "$(ps --pid $$ -oppid=)"; fail_setup "Proxy validation failed"
|
||||
fi
|
||||
fi
|
||||
return $ret
|
||||
@@ -1774,8 +1776,7 @@ ensure_pyyaml() {
|
||||
local result=$?
|
||||
set +o pipefail
|
||||
if [[ $result -ne 0 ]] || ! rpm -q python3-pyyaml >/dev/null 2>&1; then
|
||||
error "Failed to install python3-pyyaml (exit=$result)"
|
||||
fail_setup
|
||||
fail_setup "Failed to install python3-pyyaml (exit=$result)"
|
||||
fi
|
||||
info "python3-pyyaml installed successfully"
|
||||
}
|
||||
@@ -1910,8 +1911,8 @@ repo_sync_local() {
|
||||
|
||||
if [[ ! $is_airgap ]]; then
|
||||
curl --retry 5 --retry-delay 60 -A "netinstall/$SOVERSION/$OS/$(uname -r)/1" https://sigs.securityonion.net/checkup --output /tmp/install
|
||||
retry 5 60 "dnf reposync --norepopath -g --delete -m -c /opt/so/conf/reposync/repodownload.conf --repoid=securityonionsync --download-metadata -p /nsm/repo/" >> "$setup_log" 2>&1 || fail_setup
|
||||
retry 5 60 "dnf reposync --norepopath -g --delete -m -c /opt/so/conf/reposync/repodownload.conf --repoid=securityonionkernel --download-metadata -p /nsm/kernelrepo/" >> "$setup_log" 2>&1 || fail_setup
|
||||
retry 5 60 "dnf reposync --norepopath -g --delete -m -c /opt/so/conf/reposync/repodownload.conf --repoid=securityonionsync --download-metadata -p /nsm/repo/" >> "$setup_log" 2>&1 || fail_setup "Failed to sync repos"
|
||||
retry 5 60 "dnf reposync --norepopath -g --delete -m -c /opt/so/conf/reposync/repodownload.conf --repoid=securityonionkernel --download-metadata -p /nsm/kernelrepo/" >> "$setup_log" 2>&1 || fail_setup "Failed to sync kernel repos"
|
||||
# After the download is complete run createrepo
|
||||
create_repo
|
||||
fi
|
||||
@@ -1924,10 +1925,10 @@ saltify() {
|
||||
|
||||
if [[ $waitforstate ]]; then
|
||||
# install all for a manager
|
||||
retry 30 10 "bash ../salt/salt/scripts/bootstrap-salt.sh -r -M -X stable $SALTVERSION" || fail_setup
|
||||
retry 30 10 "bash ../salt/salt/scripts/bootstrap-salt.sh -r -M -X stable $SALTVERSION" || fail_setup "Failed to install salt master"
|
||||
else
|
||||
# just a minion
|
||||
retry 30 10 "bash ../salt/salt/scripts/bootstrap-salt.sh -r -X stable $SALTVERSION" || fail_setup
|
||||
retry 30 10 "bash ../salt/salt/scripts/bootstrap-salt.sh -r -X stable $SALTVERSION" || fail_setup "Failed to install salt minion"
|
||||
fi
|
||||
|
||||
salt_install_module_deps
|
||||
@@ -1999,7 +2000,7 @@ set_main_ip() {
|
||||
info "MAINIP=$MAINIP"
|
||||
info "MNIC_IP=$MNIC_IP"
|
||||
whiptail_error_message "The management IP could not be determined. Please check the log at /root/sosetup.log and verify the network configuration. Select OK to exit."
|
||||
fail_setup
|
||||
fail_setup "Could not determine MAINIP or MNIC_IP"
|
||||
fi
|
||||
sleep 1
|
||||
done
|
||||
@@ -2203,7 +2204,7 @@ set_initial_firewall_access() {
|
||||
set_management_interface() {
|
||||
title "Setting up the main interface"
|
||||
if [[ $MNIC == "bond1" ]]; then
|
||||
configure_management_bond || fail_setup
|
||||
configure_management_bond || fail_setup "Failed to configure management bond"
|
||||
fi
|
||||
|
||||
if [ "$address_type" = 'DHCP' ]; then
|
||||
|
||||
+5
-9
@@ -90,8 +90,7 @@ if [[ "$setup_type" == 'iso' ]]; then
|
||||
if [[ $is_rpm ]]; then
|
||||
is_iso=true
|
||||
else
|
||||
echo "Only use 'so-setup iso' for an ISO install on Security Onion ISO images. Please run 'so-setup network' instead."
|
||||
fail_setup
|
||||
fail_setup "Only use 'so-setup iso' for an ISO install on Security Onion ISO images. Please run 'so-setup network' instead."
|
||||
fi
|
||||
fi
|
||||
|
||||
@@ -130,7 +129,7 @@ catch() {
|
||||
info "Fatal error occurred at $1 in so-setup, failing setup."
|
||||
grep --color=never "ERROR" "$setup_log" > "$error_log"
|
||||
whiptail_setup_failed
|
||||
fail_setup
|
||||
fail_setup "Fatal error occurred at $1 in so-setup"
|
||||
}
|
||||
|
||||
# Add the progress function for manager node type installs
|
||||
@@ -238,8 +237,7 @@ case "$setup_type" in
|
||||
info "Beginning Security Onion $setup_type install"
|
||||
;;
|
||||
*)
|
||||
error "Invalid install type, must be 'iso', 'network' or 'desktop'."
|
||||
fail_setup
|
||||
fail_setup "Invalid install type, must be 'iso', 'network' or 'desktop'."
|
||||
;;
|
||||
esac
|
||||
|
||||
@@ -773,8 +771,7 @@ if ! [[ -f $install_opt_file ]]; then
|
||||
logCmd "salt-call state.apply -l info registry"
|
||||
title "Seeding the docker registry"
|
||||
if ! docker_seed_registry; then
|
||||
error "Failed to seed the docker registry"
|
||||
fail_setup
|
||||
fail_setup "Failed to seed the docker registry"
|
||||
fi
|
||||
title "Applying the manager state"
|
||||
logCmd "salt-call state.apply -l info manager"
|
||||
@@ -797,8 +794,7 @@ if ! [[ -f $install_opt_file ]]; then
|
||||
title "Setting up Elastic Fleet"
|
||||
logCmd "salt-call state.apply elasticfleet.config"
|
||||
if ! logCmd so-elastic-fleet-setup; then
|
||||
error "Failed to run so-elastic-fleet-setup"
|
||||
fail_setup
|
||||
fail_setup "Failed to run so-elastic-fleet-setup"
|
||||
fi
|
||||
mark_setup_complete
|
||||
set_initial_firewall_access
|
||||
|
||||
+3
-3
@@ -143,15 +143,15 @@ main() {
|
||||
cat $error_log
|
||||
echo "--------------------------"
|
||||
exit_code=1
|
||||
touch /root/failure
|
||||
echo "Found setup errors. Check $error_log for details" > /root/failure
|
||||
elif using_iso && cron_error_in_mail_spool; then
|
||||
echo "WARNING: Unexpected cron job output in mail spool"
|
||||
exit_code=1
|
||||
touch /root/failure
|
||||
echo "Unexpected cron job output found in /var/spool/mail/" > /root/failure
|
||||
elif is_manager_node && status_failed; then
|
||||
echo "WARNING: Containers are not in a healthy state"
|
||||
exit_code=1
|
||||
touch /root/failure
|
||||
echo "Containers are not in a healthy state. Check so-status for details" > /root/failure
|
||||
else
|
||||
echo "Successfully completed setup!"
|
||||
touch /root/success
|
||||
|
||||
Reference in New Issue
Block a user