diff --git a/b1.gen.sh b/b1.gen.sh index 2269f33..aa146c9 100644 --- a/b1.gen.sh +++ b/b1.gen.sh @@ -18,10 +18,27 @@ print_header() { echo "" } -# --- Function to read password securely --- +# --- Function to read password securely (single entry) --- read_password() { local prompt_text=$1 local -n pass_var=$2 # Use a nameref to pass the variable name + + # Loop until the entered password is not empty + while true; do + read -s -p "$prompt_text: " pass_var + echo + if [ -z "$pass_var" ]; then + echo "Password cannot be empty. Please try again." + else + break + fi + done +} + +# --- Function to read and verify password securely --- +read_password_verify() { + local prompt_text=$1 + local -n pass_var=$2 # Use a nameref to pass the variable name local pass_verify # Loop until the entered passwords match and are not empty @@ -46,6 +63,22 @@ read_password() { } # --- Main configuration logic --- +print_header + +# --- Installation Type --- +echo "--- Installation Type ---" +read -p "Is this a new installation or are you reconfiguring an existing instance? (new/reconfigure) [new]: " install_type +install_type=${install_type:-new} + +if [[ "$install_type" == "reconfigure" ]]; then + LANDSCAPE_INSTALL_ACTION="connect" + B1S_SHARED_FOLDER_OVERWRITE="false" +else + LANDSCAPE_INSTALL_ACTION="create" + B1S_SHARED_FOLDER_OVERWRITE="true" +fi +echo "" + # 1. Get Hostname/IP Details # Default to the current machine's hostname. @@ -77,16 +110,37 @@ read_password "Enter password for HANA User ('${HANA_DATABASE_USER_ID}')" HANA_D # 7. Get SLD and Site User Details echo "" -echo "--- System Landscape Directory (SLD) & Service Layer ---" +echo "--- System Landscape Directory (SLD) ---" read -p "Enter SLD Service Port [40000]: " SERVICE_PORT SERVICE_PORT=${SERVICE_PORT:-40000} read -p "Enter SLD Site User ID [B1SiteUser]: " SITE_USER_ID SITE_USER_ID=${SITE_USER_ID:-B1SiteUser} -read_password "Enter password for Site User ('${SITE_USER_ID}')" SITE_USER_PASSWORD +read_password_verify "Enter password for Site User ('${SITE_USER_ID}')" SITE_USER_PASSWORD + +# --- SLD Single Sign-On (SSO) Settings --- +echo "" +echo "--- SLD Single Sign-On (SSO) Settings ---" +read -p "Do you want to configure Active Directory SSO? [y/N]: " configure_sso + +if [[ "$configure_sso" =~ ^[yY]$ ]]; then + SLD_WINDOWS_DOMAIN_ACTION="use" + read -p "Enter AD Domain Controller: " SLD_WINDOWS_DOMAIN_CONTROLLER + read -p "Enter AD Domain Name: " SLD_WINDOWS_DOMAIN_NAME + read -p "Enter AD Domain User ID: " SLD_WINDOWS_DOMAIN_USER_ID + read_password "Enter password for AD Domain User ('${SLD_WINDOWS_DOMAIN_USER_ID}')" SLD_WINDOWS_DOMAIN_USER_PASSWORD +else + SLD_WINDOWS_DOMAIN_ACTION="skip" + SLD_WINDOWS_DOMAIN_CONTROLLER="" + SLD_WINDOWS_DOMAIN_NAME="" + SLD_WINDOWS_DOMAIN_USER_ID="" + SLD_WINDOWS_DOMAIN_USER_PASSWORD="" +fi # 10. & 11. Get Service Layer Load Balancer Details +echo "" +echo "--- Service Layer ---" read -p "Enter Service Layer Load Balancer Port [50000]: " SL_LB_PORT SL_LB_PORT=${SL_LB_PORT:-50000} @@ -108,11 +162,13 @@ done # 12. Display Summary and Ask for Confirmation clear echo "======================================================" -echo " Configuration Summary" +echo " Configuration Summary" echo "======================================================" echo "" echo " --- Installation & System Details ---" echo " INSTALLATION_FOLDER=/usr/sap/SAPBusinessOne" +echo " LANDSCAPE_INSTALL_ACTION=${LANDSCAPE_INSTALL_ACTION}" +echo " B1S_SHARED_FOLDER_OVERWRITE=${B1S_SHARED_FOLDER_OVERWRITE}" echo "" echo " --- SAP HANA Database Server Details ---" echo " HANA_DATABASE_SERVERS=${HANA_DATABASE_SERVERS}" @@ -129,6 +185,15 @@ echo " SERVICE_PORT=${SERVICE_PORT}" echo " SITE_USER_ID=${SITE_USER_ID}" echo " SITE_USER_PASSWORD=[hidden]" echo "" +echo " --- SLD Single Sign-On (SSO) ---" +echo " SLD_WINDOWS_DOMAIN_ACTION=${SLD_WINDOWS_DOMAIN_ACTION}" +if [ "$SLD_WINDOWS_DOMAIN_ACTION" == "use" ]; then + echo " SLD_WINDOWS_DOMAIN_CONTROLLER=${SLD_WINDOWS_DOMAIN_CONTROLLER}" + echo " SLD_WINDOWS_DOMAIN_NAME=${SLD_WINDOWS_DOMAIN_NAME}" + echo " SLD_WINDOWS_DOMAIN_USER_ID=${SLD_WINDOWS_DOMAIN_USER_ID}" + echo " SLD_WINDOWS_DOMAIN_USER_PASSWORD=[hidden]" +fi +echo "" echo " --- Service Layer ---" echo " SL_LB_PORT=${SL_LB_PORT}" echo " SL_LB_MEMBERS=${SL_LB_MEMBERS}" @@ -167,6 +232,13 @@ SLD_SERVER_PROTOCOL=https SITE_USER_ID=${SITE_USER_ID} SITE_USER_PASSWORD=${SITE_USER_PASSWORD} +# --- SLD Single Sign-On (SSO) Settings --- +SLD_WINDOWS_DOMAIN_ACTION=${SLD_WINDOWS_DOMAIN_ACTION} +SLD_WINDOWS_DOMAIN_CONTROLLER=${SLD_WINDOWS_DOMAIN_CONTROLLER} +SLD_WINDOWS_DOMAIN_NAME=${SLD_WINDOWS_DOMAIN_NAME} +SLD_WINDOWS_DOMAIN_USER_ID=${SLD_WINDOWS_DOMAIN_USER_ID} +SLD_WINDOWS_DOMAIN_USER_PASSWORD=${SLD_WINDOWS_DOMAIN_USER_PASSWORD} + SL_LB_MEMBER_ONLY=false SL_LB_PORT=${SL_LB_PORT} SL_LB_MEMBERS=${SL_LB_MEMBERS} @@ -175,9 +247,10 @@ SL_THREAD_PER_SERVER=10 SELECTED_FEATURES=B1ServerTools,B1ServerToolsLandscape,B1ServerToolsSLD,B1ServerToolsLicense,B1ServerToolsJobService,B1ServerToolsXApp,B1SLDAgent,B1BackupService,B1Server,B1ServerSHR,B1ServerHelp,B1AnalyticsPlatform,B1ServerCommonDB,B1ServiceLayerComponent B1S_SAMBA_AUTOSTART=true -B1S_SHARED_FOLDER_OVERWRITE=true -LANDSCAPE_INSTALL_ACTION=create +B1S_SHARED_FOLDER_OVERWRITE=${B1S_SHARED_FOLDER_OVERWRITE} +LANDSCAPE_INSTALL_ACTION=${LANDSCAPE_INSTALL_ACTION} EOL echo "Success! The configuration file 'install.properties' has been created in the current directory." -exit 0 \ No newline at end of file +exit 0 +