--- schemaVersion: '0.3' description: 'Bootstrap the sap hana instances' assumeRole: '{{ AutomationAssumeRole }}' parameters: AutomationAssumeRole: type: String description: "(Optional) The ARN of the role that allows Automation to perform the actions on your behalf. " default: '' InstanceId: type: String description: "(Required) The instance ids to bootstrap before HANA installation" default: '' HostnameTagKey: type: String description: "(Required) The tag key where the hostname is stored" default: 'Hostname' DnsPrivateZoneName: type: String description: "(Optional) DNS Zone name to specify FQDN in hosts" default: '${DNSPrivateZoneName}' CloudWatchLogGroupName: type: String description: "(Required) Cloud Watch log group for the log output" default: '${CloudWatchLogGroupName}' mainSteps: - name: Prepare_logs action: aws:runCommand inputs: DocumentName: ${PrepareLogsDocumentName} InstanceIds: - '{{ InstanceId }}' CloudWatchOutputConfig: CloudWatchLogGroupName: '{{ CloudWatchLogGroupName }}' CloudWatchOutputEnabled: True - name: Get_hostname action: aws:executeAwsApi inputs: Service: ec2 Api: describe_tags Filters: - Name: 'key' Values: - '{{ HostnameTagKey }}' - Name: 'resource-id' Values: - '{{ InstanceId }}' outputs: - Name: Hostname Selector: $.Tags[0].Value Type: String - name: Set_hostname action: aws:runCommand inputs: DocumentName: ${SetHostnameDocumentName} InstanceIds: - '{{ InstanceId }}' Parameters: PrivateZone: '{{ DnsPrivateZoneName }}' Hostname: '{{ Get_hostname.Hostname }}' CloudWatchOutputConfig: CloudWatchLogGroupName: '{{ CloudWatchLogGroupName }}' CloudWatchOutputEnabled: True - name: Install_Packages action: aws:runCommand inputs: DocumentName: ${InstallPackagesDocumentName} InstanceIds: - '{{ InstanceId }}' CloudWatchOutputConfig: CloudWatchLogGroupName: '{{ CloudWatchLogGroupName }}' CloudWatchOutputEnabled: True - name: Set_OS_Parameters action: aws:runCommand inputs: DocumentName: ${SetParametersDocumentName} InstanceIds: - '{{ InstanceId }}' CloudWatchOutputConfig: CloudWatchLogGroupName: '{{ CloudWatchLogGroupName }}' CloudWatchOutputEnabled: True - name: Mount_Disks action: aws:runCommand inputs: DocumentName: ${MountDisksDocumentName} InstanceIds: - '{{ InstanceId }}' CloudWatchOutputConfig: CloudWatchLogGroupName: '{{ CloudWatchLogGroupName }}' CloudWatchOutputEnabled: True - name: Install_Aws_Sap_Data_Provider action: aws:runCommand isCritical: false inputs: DocumentName: ${InstallAwsDataProviderDocumentName} InstanceIds: - '{{ InstanceId }}' CloudWatchOutputConfig: CloudWatchLogGroupName: '{{ CloudWatchLogGroupName }}' CloudWatchOutputEnabled: True - name: Reboot_instance action: 'aws:executeAutomation' maxAttempts: 3 timeoutSeconds: 1200 onFailure: Abort inputs: DocumentName: AWS-RestartEC2Instance RuntimeParameters: InstanceId: '{{ InstanceId }}'