Đơn giản hóa các Hoạt động cho AWS Launch Wizard cho triển khai SAP bằng cách sử dụng AWS Systems Manager cho SAP

bởi Marcel Törpe | vào ngày 22 tháng 12 năm 2023 |

AWS Launch Wizard cho SAP cho phép khách hàng tự động hóa việc triển khai các ứng dụng SAP như SAP S/4HANA. Nó cũng cung cấp cho khách hàng khả năng cá nhân hóa hệ thống SAP của họ với sự giúp đỡ của các kịch bản cấu hình trước/sau. Các kịch bản cấu hình trước triển khai chạy ngay sau khi các máy ảo được triển khai và các hoạt động cấu hình Launch Wizard cơ bản – như triển khai AWS CLI, Amazon CloudWatch và các đại lý AWS Systems Manager – được hoàn thành. Các kịch bản cấu hình sau triển khai chạy khi Launch Wizard hoàn thành các hoạt động cấu hình cụ thể cho ứng dụng SAP trên tất cả các máy ảo trong một triển khai.

Xây dựng trên các khả năng này, chúng tôi rất vui mừng giới thiệu một Repository GitHub mới awslabs/aws-sap-automation, nơi bạn có thể tìm thấy các kịch bản tự động hóa và cá nhân hóa được tùy chỉnh cho Launch Wizard! Những kịch bản này đã được kiểm tra và hoạt động với Launch Wizard khi triển khai các khối công việc SAP, và có thể được tận dụng như thế hoặc điều chỉnh để đáp ứng nhu cầu cá nhân của bạn.

AWS Systems Manager (SSM) cho phép khách hàng quản lý, cập nhật và vá các máy chủ và máy ảo (VM) trên AWS, on-premises và trên các đám mây khác từ một bảng điều khiển duy nhất ở tỷ lệ. Trước đó trong năm nay, chúng tôi đã công bố sự có sẵn chung của AWS Systems Manager cho SAP (SSM cho SAP), xây dựng nền tảng để giúp khách hàng quản lý và vận hành các ứng dụng SAP của họ trên AWS hiệu quả hơn. Gần đây, ngoài việc truy cập thông qua giao diện dòng lệnh (CLI), chúng tôi đã giới thiệu sự hỗ trợ cho các ứng dụng SAP như một phần của SSM Application Manager trong AWS Console. SSM Application Manager cụ thể cho phép bạn hiểu và khám phá cấu trúc tổ hợp của môi trường SAP của bạn cho máy chủ ứng dụng SAP NetWeaver ABAP và cơ sở dữ liệu SAP HANA, cũng như các phụ thuộc của chúng. Và phần tốt nhất: Điều này có sẵn cho bạn mà không tốn thêm chi phí.

Bây giờ hãy xem xét cách bạn có thể tự động đăng ký các hệ thống SAP triển khai thông qua Launch Wizard với SSM cho SAP bằng cách sử dụng các kịch bản cấu hình sau triển khai cho các triển khai mới và tài liệu SSM cho các triển khai hiện có.

Yêu cầu Tiên quyết

Để bắt đầu, đảm bảo rằng bạn hoàn thành các yêu cầu tiên quyết sau cho việc thiết lập (hoạt động một lần cho mỗi Tài khoản AWS):

  • Trong bảng điều khiển AWS IAM, gắn AWS Managed Policy có tên AWSSystemsManagerForSAPFullAccess vào vai trò AmazonEC2RoleForLaunchWizard
  • Trong AWS Launch Wizard cho SAP, đảm bảo rằng bạn đã có một triển khai SAP hiện tại hoặc kế hoạch cho một ngăn xếp triển khai mới. Lưu ý: Hiện tại, SSM cho SAP chỉ hỗ trợ các môi trường SAP HANA 2.0 single-node, SAP HANA 2.0 HA, SAP NetWeaver trên SAP ABAP 7.50 hoặc cao hơn!

Tùy chọn 1: Tự động Đăng ký

Lưu ý: Thay vì đăng ký hệ thống Launch Wizard của bạn bằng cách thủ công, chúng ta sẽ sử dụng một kịch bản, có sẵn trên GitHub. Nếu bạn muốn đăng ký hệ thống SAP của mình một cách thủ công, hãy tuân theo “Tùy chọn 2” thay vì vậy!

Để bắt đầu, điều hướng đến bảng điều khiển IAM của AWS và, một lần nữa, tạo và gắn IAM Policy được cung cấp vào vai trò AmazonEC2RoleForLaunchWizard (một hoạt động một lần cho mỗi Tài khoản AWS).

Triển khai Mới của Launch Wizard: Sử dụng các kịch bản cấu hình sau triển khai

Trong AWS Launch Wizard cho SAP, tiến hành Cấu hình mô hình triển khai. Trong phần Kịch bản cấu hình sau triển khai, chọn URL Amazon S3 sau làm vị trí kịch bản:

s3://aws-sap-automation/ssm_sap/run.sh

HTTP

Launch Wizard

Nhấp vào “Next” để hoàn thành việc đăng ký. Trong quá trình triển khai và sau triển khai, hãy đảm bảo kiểm tra Amazon CloudWatch Log stream tương ứng được gọi là */postDeploymentConfiguration:

CloudWatch Log

Sau khi quá trình triển khai hoàn tất, bạn có thể tiếp tục đến phần “Verify your registration”.

Đối với các Triển khai Hiện có: Sử dụng Tài liệu SSM

Di chuyển đến AWS Systems Manager → Create document chọn Choose a name

Chọn một tên và sao chép và dán Content dưới YAML.

description: ”

schemaVersion: ‘2.2’

mainSteps:

– action: aws:runShellScript

  name: ‘RunSSMforSAPRegistration’

  inputs:

    runCommand:

    – aws s3 cp s3://aws-sap-automation/ssm_sap/run.sh ./ –region eu-central-1

    – chmod +x run.sh

    – ./run.sh

Để lưu, nhấn Create document.

SSM Document

Tiếp theo, định vị tài liệu của bạn và nhấn Run command. Chọn các phiên bản EC2 mục tiêu của bạn và nhấn Run.

SSM Run Command
Confirm

Sau khi lệnh hoàn thành thành công, bạn có thể tiếp tục đến phần “Verify your registration”. Trong trường hợp lệnh thất bại, kiểm tra đầu ra/lỗi của lệnh trực tiếp để biết thêm thông tin!

Tùy chọn 2: Đăng ký thủ công

Tuân theo các bước sau đây để đăng ký hệ thống SAP của bạn thủ công, như đã được chỉ định trong Tài liệu AWS:

Bước 1: Thu thập các tham số hệ thống SAP của bạn

Thu thập và ghi lại các thông số sau từ việc triển khai Launch Wizard của bạn, như ví dụ được hiển thị trong AWS CloudFormation → LaunchWizard-<STACK_NAME>:

ParamCloudFormation TabKey
EC2_INSTANCE_IDStack Resources“SapSingleInstance” / “HanaSingleInstance”
SAP_HANA_INSTANCE_NRStack Parameters“SAPInstanceNum“
SAP_HANA_SIDStack Parameters“HANASID”
SAP_SIDStack Parameters”SAPSID“ (if applicable)
CF Parameter
CF Parameter

Nếu cần, bạn cũng có thể lấy MASTER_PASSWORD từ AWS Secrets Manager → Tham số Stack “HANAMasterPassKey” với Secret ARN.

Bước 2: Gắn thẻ cho Instance EC2

Trong bảng điều khiển EC2, xác định EC2_INSTANCE_ID của bạn và thêm thẻ sau để cho phép AWS Systems Manager cho SAP truy cập vào instance của bạn:

Key: SSMForSAPManaged
Value: True

Tags

Bước 3: Đăng ký thông tin đăng nhập trong AWS Secrets Manager

Trên trang AWS Secrets Manager, chọn Lưu một bí mật mới. Đối với Loại bí mật, chọn Loại bí mật khác và tạo các cặp key-value sau: username = SYSTEM và password = <MASTER_PASSWORD>. Chọn Tiếp theo và nhập tên bí mật ví dụ LaunchWizard-<STACK_NAME>-SSMSAP. Trong phần Quyền tài nguyên, chọn Chỉnh sửa quyền và dán chính sách sau – điều chỉnh tên Amazon Resource Name (ARN) của vai trò instance Amazon EC2, và thay thế các chỗ giữ chỗ <AWS_ACCOUNT_ID> và <EC2_INSTANCE_ID> bằng các thông tin tương ứng. Chọn Tiếp theo và sau đó, chọn Lưu.

{   

“Version” : “2012-10-17”,   

“Statement” : [{     

  “Effect” : “Allow”,     

  “Principal” : {       

    “AWS” : “arn:aws:sts::<AWS_ACCOUNT_ID>:assumed-role/AmazonEC2RoleForLaunchWizard/<EC2_INSTANCE_ID>”

  },     

  “Action” : “secretsmanager:GetSecretValue”,     

  “Resource” : “*”   

}]

}

JSON

Kết quả sẽ giống như sau:

Secrets Manager

Hãy kiểm tra tài liệu AWS tương ứng để biết thêm thông tin. Đảm bảo ghi lại tên bí mật của bạn, ví dụ: LaunchWizard-<STACK_NAME>-SSMSAP, trong các phần tiếp theo được gọi là HANA_SECRET_ID_SSM.

Bước 4: Đăng ký SAP HANA

Bắt đầu một instance AWS CloudShell (hoặc CLI/terminal) và thực thi lệnh sau. Đảm bảo thay thế các biến với cấu hình cụ thể của bạn. Lưu ý: application-id không được chứa bất kỳ ký tự đặc biệt nào:

aws ssm-sap register-application \

–application-id <STACK_NAME><SAP_HANA_SID> \

–application-type “HANA” \

–instances <EC2_INSTANCE_ID> \

–sap-instance-number <SAP_HANA_INSTANCE_NR> \

–sid <SAP_HANA_SID> \

–credentials ‘[{“DatabaseName”:”‘<SAP_HANA_SID>’/'<SAP_HANA_SID>’”,”CredentialType”:”ADMIN”,”SecretId”:”‘<HANA_SECRET_ID_SSM>’”},{“DatabaseName”:”‘<SAP_HANA_SID>’/SYSTEMDB”,”CredentialType”:”ADMIN”,”SecretId”:”‘<HANA_SECRET_ID_SSM>’”}]’

Bash

Sẽ tốn thời gian đến khi thành công:

Bash Command

Bạn có thể kiểm tra trạng thái đăng ký như sau:

aws ssm-sap get-application –application-id <STACK_NAME><SAP_HANA_SID>

Bash

Bash Command

Lưu ý: Thay vì sử dụng cách tiếp cận CLI/programmatic, bạn cũng có thể đăng ký thông qua bảng điều khiển AWS → AWS Systems Manager → Application Manager và nhấp vào Tạo ứng dụng và chọn Tải trọng Doanh nghiệp, như được hiển thị dưới đây.

SSM Application Manager

Kiểm tra cũng hướng dẫn chi tiết liên quan.

Bước 5: Đăng ký Máy chủ ứng dụng SAP ABAP (nếu áp dụng)

Chạy lệnh sau để lấy ARN cơ sở dữ liệu HANA (Tenant DB), và thay thế các placeholder <STACK_NAME> và <SAP_HANA_SID> với thông tin tương ứng.

DB_ARN=$(aws ssm-sap list-databases –application-id <STACK_NAME><SAP_HANA_SID> –query “Databases[?DatabaseType==’TENANT’].Arn” –output text)

Bash

Tiếp theo, đăng ký máy chủ ứng dụng SAP ABAP. Một lần nữa, đừng quên thay thế các placeholder bằng các giá trị tương ứng của chúng.

aws ssm-sap register-application \ 

–application-id <STACK_NAME><SAP_SID> \ 

–application-type “SAP_ABAP” \ 

–instances <EC2_INSTANCE_ID> \ 

–sid <SAP_SID> \ 

–database-arn $DB_ARN

Bash

Kết quả đầu ra có thể giống như sau. Việc đăng ký có thể mất vài phút để hoàn thành!

Bash Command

Xác minh đăng ký của bạn

Xác minh trạng thái đăng ký trong AWS SSM → Quản lý Ứng dụng:

SSM Application Manager

The SAP HANA registration, for example, should look as follows:

SSM Application Manager

Bạn cũng có thể xác minh đăng ký từ dòng lệnh:

Đầu tiên, truy xuất ID Ứng dụng mong muốn:

aws ssm-sap list-applications

Bash

Tiếp theo, truy vấn thông tin thành phần:

MYCOMP=$(aws ssm-sap get-application –application-id <APP_ID> –output text –query “*.Components[0]”) 

aws ssm-sap get-component –application-id <APP_ID> –component-id $MYCOMP

Bash

Đầu ra sẽ trông giống như sau:

Bash Command

Sửa lỗi:

Trong trường hợp đăng ký không thành công, hãy đảm bảo kiểm tra lịch sử lệnh chạy tại AWS Systems Manager → Lịch sử lệnh. Tìm tài liệu AWSSystemsManagerSAP-Discovery và nhấp vào Xem chi tiết để tìm hiểu thêm về nguyên nhân có thể gây ra lỗi.

Run Command

Để lặp lại/làm lại đăng ký, chỉ cần hủy đăng ký như sau.

Nhận Id ứng dụng mong muốn:

aws ssm-sap list-applications

Bash

Tiếp theo, chạy dòng sau để hủy đăng ký ứng dụng:

aws ssm-sap deregister-application –application-id <APP_ID>

Bash

Sau khi đã làm sạch thành công, bạn có thể bắt đầu quá trình đăng ký lại từ đầu.

Bước Tiếp Theo

Chúng tôi đã hướng dẫn bạn cách đăng ký các triển khai của Launch Wizard với AWS Systems Manager cho SAP. Bây giờ bạn có thể sử dụng tích hợp AWS Backup để tự động sao lưu và khôi phục cơ sở dữ liệu SAP HANA. Hãy chờ đợi những cập nhật mới hơn trong lĩnh vực này!

  • Hãy kiểm tra các tài nguyên sau để tìm hiểu thêm:
  • AWS Systems Manager cho SAP
  • Github awslabs/aws-sap-automation
  • Tập lệnh cấu hình trước/sau của AWS Launch Wizard cho SAP