Improve error handling for SSH setup failures in option 3
Instead of exiting immediately when SSH key setup fails, the script now: - Offers retry option for transient issues - Allows skipping SSH setup with manual configuration instructions - Provides option to return to main menu - Continues deployment flow more gracefully This prevents frustrating exits when SSH configuration needs adjustment.
This commit is contained in:
@@ -1669,12 +1669,52 @@ deploy_remote_server() {
|
|||||||
log_info "Step 1: Setting up SSH key authentication to core server..."
|
log_info "Step 1: Setting up SSH key authentication to core server..."
|
||||||
log_info "Using ACTUAL_USER=$ACTUAL_USER for SSH key path"
|
log_info "Using ACTUAL_USER=$ACTUAL_USER for SSH key path"
|
||||||
log_info "Target: ${CORE_SERVER_USER}@${CORE_SERVER_IP}"
|
log_info "Target: ${CORE_SERVER_USER}@${CORE_SERVER_IP}"
|
||||||
if ! setup_ssh_key_to_core; then
|
|
||||||
log_error "Failed to setup SSH key authentication"
|
# Retry loop for SSH setup
|
||||||
return 1
|
while true; do
|
||||||
fi
|
if setup_ssh_key_to_core; then
|
||||||
log_success "SSH key authentication setup complete"
|
log_success "SSH key authentication setup complete"
|
||||||
echo ""
|
echo ""
|
||||||
|
break
|
||||||
|
else
|
||||||
|
log_error "Failed to setup SSH key authentication"
|
||||||
|
echo ""
|
||||||
|
echo "Options:"
|
||||||
|
echo " 1) Retry SSH setup"
|
||||||
|
echo " 2) Skip SSH setup (manual configuration required)"
|
||||||
|
echo " 3) Return to main menu"
|
||||||
|
echo ""
|
||||||
|
read -p "Choose an option (1-3): " ssh_retry_choice
|
||||||
|
|
||||||
|
case $ssh_retry_choice in
|
||||||
|
1)
|
||||||
|
echo ""
|
||||||
|
log_info "Retrying SSH setup..."
|
||||||
|
continue
|
||||||
|
;;
|
||||||
|
2)
|
||||||
|
echo ""
|
||||||
|
log_warning "Skipping SSH setup. You will need to manually configure SSH keys."
|
||||||
|
log_info "Manual steps:"
|
||||||
|
echo " 1. Generate SSH key: ssh-keygen -t ed25519 -f ~/.ssh/ez-homelab-${SERVER_HOSTNAME}"
|
||||||
|
echo " 2. Copy to core: ssh-copy-id -i ~/.ssh/ez-homelab-${SERVER_HOSTNAME}.pub ${CORE_SERVER_USER}@${CORE_SERVER_IP}"
|
||||||
|
echo " 3. Test: ssh -i ~/.ssh/ez-homelab-${SERVER_HOSTNAME} ${CORE_SERVER_USER}@${CORE_SERVER_IP}"
|
||||||
|
echo ""
|
||||||
|
read -p "Press Enter to continue deployment (or Ctrl+C to exit)..."
|
||||||
|
# Set a minimal SSH_KEY_PATH for functions that need it
|
||||||
|
export SSH_KEY_PATH="/home/$ACTUAL_USER/.ssh/ez-homelab-${SERVER_HOSTNAME}"
|
||||||
|
break
|
||||||
|
;;
|
||||||
|
3)
|
||||||
|
log_info "Returning to main menu..."
|
||||||
|
return 1
|
||||||
|
;;
|
||||||
|
*)
|
||||||
|
log_error "Invalid option. Please choose 1, 2, or 3."
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
|
||||||
# Step 2: Create required Docker networks
|
# Step 2: Create required Docker networks
|
||||||
log_info "Step 2: Creating required Docker networks..."
|
log_info "Step 2: Creating required Docker networks..."
|
||||||
|
|||||||
Reference in New Issue
Block a user