--- schemaVersion: "2.2" description: "Execute installation" parameters: ProductId: type: String description: "(Required) The id of the product to be installed" default: '' Sid: type: String description: "(Required) The system id of SAP system" default: '' MasterPassword: type: String description: '(Required) SAP NetWeaver Master Password' default: '' IniFile: type: String description: '(Optional) Path to INI file' default: '/sapmnt/software/aas.params' AscsHostname: type: String description: '(Required) The hostname of HANA DB Host' default: '' DnsPrivateZoneName: type: String description: "(Optional) DNS Zone name to specify FQDN in hosts" default: '${DNSPrivateZoneName}' mainSteps: - action: "aws:runShellScript" name: "Set_services_file" inputs: runCommand: - #!/bin/bash - # Copy the service file from mounted /sapmnt EFS - cat /sapmnt/services >> /etc/services - action: "aws:runShellScript" name: "Prepare_ascs_ini" inputs: runCommand: - #!/bin/bash - AAS_INI_FILE={{ IniFile }} - SID=`echo "{{Sid}}" | tr a-z A-Z` - SIDadmUID=1003 - SAPsysGID=1004 - SW_TARGET=/sapmnt/software - SAPInstanceNum=00 - HOSTED_ZONE={{ DnsPrivateZoneName }} - LHOSTNAME=`hostname` - FQDN=$${LHOSTNAME}.$${HOSTED_ZONE} - ASCS_HOSTNAME={{ AscsHostname }} - SAPMasterPassword={{ MasterPassword }} - SID=`echo {{ Sid }} | tr '[:lower:]' '[:upper:]'}` - SAP_SCHEMA_NAME=SAPHANADB - #set the password from the SSM parameter store - sed -i "/NW_GetMasterPassword.masterPwd/ c\NW_GetMasterPassword.masterPwd = {{ MasterPassword }}" $AAS_INI_FILE - sed -i "/storageBasedCopy.hdb.systemPassword/ c\storageBasedCopy.hdb.systemPassword = {{ MasterPassword }}" $AAS_INI_FILE - sed -i "/storageBasedCopy.abapSchemaPassword/ c\storageBasedCopy.abapSchemaPassword = {{ MasterPassword }}" $AAS_INI_FILE - sed -i "/HDB_Schema_Check_Dialogs.schemaPassword/ c\HDB_Schema_Check_Dialogs.schemaPassword = {{ MasterPassword }}" $AAS_INI_FILE - sed -i "/nwUsers.sidadmPassword/ c\nwUsers.sidadmPassword = {{ MasterPassword }}" $AAS_INI_FILE - sed -i "/hostAgent.sapAdmPassword/ c\hostAgent.sapAdmPassword = {{ MasterPassword }}" $AAS_INI_FILE - sed -i "/NW_HDB_getDBInfo.systemDbPassword/ c\NW_HDB_getDBInfo.systemDbPassword = {{ MasterPassword }}" $AAS_INI_FILE - #set the profile directory - sed -i "/NW_readProfileDir.profileDir/ c\NW_readProfileDir.profileDir = /sapmnt/$${SID}/profile" $AAS_INI_FILE - #set the Schema - sed -i "/HDB_Schema_Check_Dialogs.schemaName/ c\HDB_Schema_Check_Dialogs.schemaName = $${SAP_SCHEMA_NAME}" $AAS_INI_FILE - #set the UID and GID - sed -i "/nwUsers.sidAdmUID/ c\nwUsers.sidAdmUID = $${SIDadmUID}" $AAS_INI_FILE - sed -i "/nwUsers.sapsysGID/ c\nwUsers.sapsysGID = $${SAPsysGID}" $AAS_INI_FILE - #set the CD location based on $SW_TARGET - sed -i "/archives.downloadBasket/ c\archives.downloadBasket = $${SW_TARGET}/s4-1809" $AAS_INI_FILE - sed -i "/NW_getFQDN.FQDN/ c\NW_getFQDN.FQDN = $${HOSTED_ZONE}" $AAS_INI_FILE - sed -i "/NW_CI_Instance.ascsVirtualHostname/ c\NW_CI_Instance.ascsVirtualHostname = $${HOSTNAME}" $AAS_INI_FILE - sed -i "/storageBasedCopy.hdb.instanceNumber/ c\storageBasedCopy.hdb.instanceNumber = $${SAPInstanceNum}" $AAS_INI_FILE - sed -i "/NW_AS.instanceNumber/ c\NW_AS.instanceNumber = $${SAPInstanceNum}" $AAS_INI_FILE - sed -i "/NW_DI_Instance.virtualHostname/ c\NW_DI_Instance.virtualHostname = $${HOSTNAME}" $AAS_INI_FILE - echo '`date` Prepared the Ini File:...' | tee -a $SSM_LOG_FILE - action: "aws:runShellScript" name: "Execute_installation" inputs: runCommand: - #!/bin/bash - echo '`date` Starting the Installation process...' | tee -a $SSM_LOG_FILE - SYSTEMNUMBER=00 - SAPAliasName=`hostname` - chmod 755 /sapmnt/software/sapinst/sapinst - cd /sapmnt/software/sapinst - ./sapinst SAPINST_INPUT_PARAMETERS_URL={{ IniFile }} SAPINST_EXECUTE_PRODUCT_ID={{ProductId}} SAPINST_USE_HOSTNAME=$${SAPAliasName} SAPINST_SKIP_DIALOGS="true" SAPINST_START_GUISERVER=false | tee -a $SSM_LOG_FILE - action: "aws:runShellScript" name: "Validate_Installation" inputs: runCommand: - #!/bin/bash - sid=`echo {{ Sid }} | tr '[:upper:]' '[:lower:]'}` - SID=`echo {{ Sid }} | tr '[:lower:]' '[:upper:]'}` - HOSTNAME=`hostname` - SIDADM=$${sid}adm - chown -R $${SIDADM}:sapsys /usr/sap/trans - su - $SIDADM -c "stopsap $HOSTNAME" | tee -a $SSM_LOG_FILE - su - $SIDADM -c "startsap $HOSTNAME" | tee -a $SSM_LOG_FILE - sleep 15 - _SAP_UP=$(netstat -an | grep 3200 | grep tcp | grep LISTEN | wc -l ) - echo "This is the value of SAP_UP - $_SAP_UP" | tee -a $SSM_LOG_FILE - if [ "$_SAP_UP" -eq 1 ] - then - echo "$(date) __ done installing AAS." | tee -a $SSM_LOG_FILE - exit 0 - else - echo "$(date) __ Additional application server could not be installed successfully. Fix the issue and rerun the automation" | tee -a $SSM_LOG_FILE - exit 1 - fi