ACS-HBR-SAPHanaRestorationAutomation SAP HANA備份可用性驗證(恢復到新建實例)
模板描述
在已有的SAP HANA實例(源實例)同一VPC下,自動創建單節點SAP HANA目的實例,通過HBR服務將源實例備份數據恢復到目的實例,并檢查恢復后的目的實例狀態立即執行。
模板類型
自動化
所有者
Alibaba Cloud
輸入參數
參數名稱 | 描述 | 類型 | 是否必填 | 默認值 | 約束 |
zoneId | 期望部署的可用區 | String | 是 | ||
vpcId | 源實例所在專有網絡VPC | String | 是 | ||
vSwitchId | 目的實例所在交換機 | String | 是 | ||
sourceClusterId | HBR源實例ID | String | 是 | ||
vaultId | HBR備份庫ID | String | 是 | ||
HANASID | 目的實例SAP HANA SID | String | 是 | 字符串校驗正則表達式 : ^[A-Z][A-Z0-9][A-Z0-9]$ | |
masterPass | 源實例SAP HANA Master賬號密碼 | String | 是 | 字符串校驗正則表達式 : ^(?=.[0-9].)(?=.[A-Z].)(?=.[a-z].)[a-zA-Z][0-9a-zA-Z_@#$]{7,}$ | |
imageId | 目的實例的操作系統版本 | String | 是 | ||
instanceType | 目的實例的實例規格 | String | 是 | ||
privateIpAddress | 目的實例私有IP地址 | String | 是 | 字符串校驗正則表達式 : ^((192.168 | |
loginPassword | 目的實例root用戶密碼 | String | 是 | 字符串校驗正則表達式 : ^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W_]+$)(?![a-z0-9]+$)(?![a-z\W_]+$)(?![0-9\W_]+$)[a-zA-Z0-9\W_]{8,}$ | |
dataSize | 目的實例的/hana/data大小 | String | 是 | 字符串校驗正則表達式 : (^[2-9]\d{1}$) | |
logSize | 目的實例的/hana/log大小 | String | 是 | 字符串校驗正則表達式 : (^[2-9]\d{1}$) | |
sharedSize | 目的實例的/hana/shared大小 | String | 是 | 字符串校驗正則表達式 : (^[2-9]\d{1}$) | |
mediaPath | SAP HANA軟件包OSS路徑 | String | 是 | 字符串校驗正則表達式 : ^(oss | |
dingTalkWebhook | 釘釘機器人Webhook地址 | String | 是 | ||
databaseName | 數據庫實例列表 | List | 否 | ['SYSTEMDB@:SYSTEMDB'] | |
customizedImage | 使用自定義鏡像 | Boolean | 否 | False | |
customizedImageId | 自定義鏡像Id | String | 否 | "" | |
ECSHostname | 目的實例主機名 | String | 否 | hana001 | 字符串校驗正則表達式 : ^([a-zA-Z0-9] |
HANAInstanceNumber | 目的實例SAP HANA實例編號 | String | 否 | 00 | 字符串校驗正則表達式 : ^([0-8][0-9] |
systemDiskCategory | 目的實例系統盤類型 | String | 否 | cloud_ssd | |
systemDiskSize | 目的實例系統盤大小 | String | 否 | 100 | 字符串校驗正則表達式 : (^2[0-9]$) |
dataLogDiskCategory | /hana/data和/hana/log文件系統所在磁盤類型 | String | 否 | cloud_ssd | |
sharedDiskCategory | 目的實例的/hana/shared文件系統所在磁盤類型 | String | 否 | cloud_ssd | |
usrsapDiskCategory | 目的實例的/usr/sap文件系統所在磁盤類型 | String | 否 | cloud_ssd | |
usrsapSize | 目的實例的/usr/sap大小 | String | 否 | 50 | 字符串校驗正則表達式 : (^[2-9]\d{1}$) |
systemUsage | 目的實例的SAP HANA系統類型 | String | 否 | custom | |
HANASapSidAdmUid | 目的實例的SAP HANA sidadm用戶Id | String | 否 | 1001 | 字符串校驗正則表達式 : (^[5-9]\d{2}$) |
HANASapSysGid | 目的實例的SAP HANA sapsys組Id | String | 否 | 79 | 字符串校驗正則表達式 : (^\d+$) |
userName | 目的實例的用戶名 | String | 否 | SYSTEM | |
weatherDeleteResource | 驗證成功后保留云資源. | Boolean | 否 | False | |
timeout | 云資源保留時長(單位:分鐘) | Number | 否 | 30 |
輸出參數
參數名稱 | 描述 | 類型 |
Result | String |
執行此模板需要的權限策略
關于創建角色并授權,詳情,請參見創建RAM角色并授權。
{
"Version": "1",
"Statement": [
{
"Action": [
"ecs:DescribeAvailableResource",
"ecs:DescribeInvocationResults",
"ecs:DescribeInvocations",
"ecs:RunCommand"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"hbr:CreateClients",
"hbr:CreateHanaInstance",
"hbr:CreateHanaRestore",
"hbr:DeleteHanaInstance",
"hbr:DescribeClients",
"hbr:DescribeHanaBackupSetting",
"hbr:DescribeHanaBackupsAsync",
"hbr:DescribeHanaInstances",
"hbr:DescribeHanaRestores",
"hbr:DescribeTask",
"hbr:UpdateHanaBackupSetting"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"ros:CreateStack",
"ros:DeleteStack",
"ros:GetStack"
],
"Resource": "*",
"Effect": "Allow"
},
{
"Action": [
"oos:ListExecutions"
],
"Resource": "*",
"Effect": "Allow"
}
]
}
詳情
ACS-HBR-SAPHanaRestorationAutomation詳情
模板內容
FormatVersion: OOS-2019-06-01
Description:
en: 'This template uses an existing VPC and SAP HANA instance(source instance) to create a single-node SAP instance(destination instance), restore the source instance backup data to the destination instance through the HBR service, and check the restored destination instance status.'
zh-cn: 在已有的SAP HANA實例(源實例)同一VPC下,自動創建單節點SAP HANA目的實例,通過HBR服務將源實例備份數據恢復到目的實例,并檢查恢復后的目的實例狀態。
name-en: ACS-HBR-SAPHanaRestorationAutomation
name-zh-cn: SAP HANA備份可用性驗證(恢復到新建實例)
Parameters:
zoneId:
Type: String
AssociationProperty: 'ALIYUN::ECS::Instance::ZoneId'
Label:
zh-cn: 期望部署的可用區
en: Availability Zones
Description:
zh-cn: '可用區列表請參考, <a href=''http://bestwisewords.com/document_detail/40654.html'' target=''_blank''>地域和可用區信息</a>。'
en: The Availability Zone where SAP HANA instance will be deployed
vpcId:
Type: String
AssociationProperty: 'ALIYUN::ECS::VPC::VPCId'
Label:
zh-cn: 源實例所在專有網絡VPC
en: Source VPC ID
Description:
zh-cn: 源實例所在專有網絡VPC
en: VPC ID of source instance
vSwitchId:
Type: String
AssociationProperty: 'ALIYUN::VPC::VSwitch::VSwitchId'
Label:
zh-cn: 目的實例所在交換機
en: Target VSwitch ID
Description:
zh-cn: 目的實例所在交換機
en: VSwitch ID of destination instance
sourceClusterId:
Label:
zh-cn: HBR源實例Id
en: Source SAP HANA instance ID
Description:
zh-cn: '源實例Id, 需要恢復的SAP HANA備份實例的Id,請在云備份控制臺-ECS應用備份-實例名稱/Id一欄查看。'
en: 'Source SAP HANA instance ID, can be found in the Cloud Backup Console - ECS Application Backup - Instance Name/ID.'
Type: String
vaultId:
Label:
zh-cn: HBR備份庫ID
en: Backup Vault ID
Description:
zh-cn: 備份庫的Id
en: Backup vault ID
Type: String
databaseName:
Label:
zh-cn: 數據庫實例列表
en: SAP HANA Database List
Description:
zh-cn: 需要恢復備份的SAP HANA數據庫實例列表,格式:<源數據庫名>@<SID>:<目的數據庫名>,多個數據庫實例請以換行分隔。
en: SAP HANA database list in format of "<Source SAP HANA database name>@<Source SAP HANA system Id>". Separate multiple SAP HANA database with line breaks.
Type: List
Default:
- 'SYSTEMDB@<SID>:SYSTEMDB'
HANASID:
Type: String
ConstraintDescription:
zh-cn: '必須輸入3個字符,可包含大寫字母或數字,首位必須是大寫字母。'
en: '3 characters,can including capital letter or number, must starting with capital letter.'
Label:
zh-cn: 目的實例SAP HANA SID
en: SAP HANA SID
Description:
zh-cn: 目的實例SAP HANA SID
en: Destination instance SAP HANA SID
AllowedPattern: '^[A-Z][A-Z0-9][A-Z0-9]$'
masterPass:
Type: String
Label:
zh-cn: 源實例SAP HANA Master賬號密碼
en: SAP HANA Master Password
Description:
zh-cn: 源實例SAP HANA Master賬號密碼
en: SAP HANA master password
ConstraintDescription:
zh-cn: '至少8個字符,至少包含一個數字,大寫字母和小寫字母,可以使用特殊字符(_,@,#,$),但不能以數字和特殊字符開頭。'
en: 'Must be at least 8 characters with uppercase, lowercase, and numeric values,can use special characters include(_,@,#,$),but can''t staring with number and specical characters.'
AllowedPattern: '^(?=.*[0-9].*)(?=.*[A-Z].*)(?=.*[a-z].*)[a-zA-Z][0-9a-zA-Z_@#$]{7,}$'
NoEcho: true
imageId:
Type: String
Label:
zh-cn: 目的實例的操作系統版本
en: Operating System And Version
Description:
zh-cn: '目的實例的操作系統版本,該操作系統為CSP官方收費版本,詳情連接:<a href=''https://market.aliyun.com/products/57742013/cmjj00037618.html'' target=''_blank''>SUSE15SP1-SAP</a>、<a href=''https://market.aliyun.com/products/57742013/cmjj00036800.html'' target=''_blank''>SUSE12SP4-SAP</a>、<a href=''https://market.aliyun.com/products/57742013/cmjj031975.html'' target=''_blank''>SUSE12SP3-SAP</a>。'
en: 'Operating system and version: <a href=''https://market.aliyun.com/products/57742013/cmjj00037618.html'' target=''_blank''>SUSE15SP1-SAP</a>、<a href=''https://market.aliyun.com/products/57742013/cmjj00036800.html'' target=''_blank''>SUSE12SP4-SAP</a>、<a href=''https://market.aliyun.com/products/57742013/cmjj031975.html'' target=''_blank''>SUSE12SP3-SAP</a>.'
AllowedValues:
- SUSE15SP1-SAP
- SUSE12SP4-SAP
- SUSE12SP3-SAP
customizedImage:
Type: Boolean
Label:
zh-cn: 使用自定義鏡像
en: Use Custom Image
Description:
zh-cn: 是否使用自定義鏡像作為目的實例的鏡像,如果選擇該項,'目的實例的操作系統版本'參數將無效,且需指定'自定義鏡像Id'參數
en: Use custom image or not
Default: false
customizedImageId:
Type: String
Label:
zh-cn: 自定義鏡像Id
en: Custom Image Id
Description:
zh-cn: 使用自定義鏡像創建目的實例,僅'使用自定義鏡像'參數選中時有效
en: Please enter a custom image id
Default: ''
instanceType:
Type: String
Label:
zh-cn: 目的實例的實例規格
en: Instance Type For SAP HANA Host
Description:
zh-cn: '<font color=''blue''><b>1.選擇機型前請先確認當前可用區下該機型是否有貨,部分機型需要提前報備</b></font><br><font color=''blue''><b>2.可選機型列表</b></font><br>[ecs.r5.2xlarge 非認證機型 64G]<br>[ecs.r5.4xlarge 非認證機型 128G]<br>[ecs.c5.8xlarge <font color=''green''>SAP認證機型 64G</font>]<br>[ecs.g5.8xlarge <font color=''green''>SAP認證機型 128G</font>]<br>[ecs.r5.8xlarge <font color=''green''>SAP認證機型 256G</font>]<br>[ecs.r6.13xlarge <font color=''green''>SAP認證機型 384G</font>]<br>[ecs.se1.14xlarge <font color=''green''>SAP認證機型 480G</font>]<br>[ecs.r5.16xlarge <font color=''green''>SAP認證機型 512G</font>]<br>[ecs.re4.20xlarge <font color=''green''>SAP認證機型 960G</font>]<br>[ecs.re4.40xlarge <font color=''green''>SAP認證機型 1920G</font>]<br>[ecs.re4e.40xlarge <font color=''green''>SAP認證機型 3840G</font>]<br><font color=''blue''><b>3.詳情請參考</font> <a href=''http://bestwisewords.com/document_detail/25378.html'' target=''_blank''><b>實例族詳情</b></a>。'
en: '<font color=''blue''><b>Instance type list</b></font><br> [ecs.r5.2xlarge Non-certified instance type 64G]<br>[ecs.r5.4xlarge Non-certified instance type 128G]<br>[ecs.c5.8xlarge <font color=''green''>SAP certified instance type 64G</font>]<br>[ecs.g5.8xlarge <font color=''green''>SAP certified instance type 128G</font>]<br>[ecs.r5.8xlarge <font color=''green''>SAP certified instance type 256G</font>]<br>[ecs.r6.13xlarge <font color=''green''>SAP certified instance type 384G</font>]<br>[ecs.se1.14xlarge <font color=''green''>SAP certified instance type 480G</font>]<br>[ecs.r5.16xlarge <font color=''green''>SAP certified instance type 512G</font>]<br>[ecs.re4.20xlarge <font color=''green''>SAP certified instance type 960G</font>]<br>[ecs.re4.40xlarge <font color=''green''>SAP certified instance type 1920G</font>]<br>[ecs.re4e.40xlarge <font color=''green''>SAP certified instance type 3840G</font>].'
AllowedValues:
- ecs.r5.2xlarge(8vCPUs 64GiB)
- ecs.r5.4xlarge(16vCPUs 128GiB)
- ecs.c5.8xlarge(32vCPUs 64GiB)
- ecs.g5.8xlarge(32vCPUs 128GiB)
- ecs.r5.8xlarge(32vCPUs 256GiB)
- ecs.r6.13xlarge(52vCPUs 384GiB)
- ecs.se1.14xlarge(56vCPUs 480GiB)
- ecs.r5.16xlarge(64vCPUs 512GiB)
- ecs.re4.20xlarge(80vCPUs 960GiB)
- ecs.re4.40xlarge(160vCPUs 1920GiB)
- ecs.re4e.40xlarge(160vCPUs 3840GiB)
ECSHostname:
Type: String
Label:
zh-cn: 目的實例主機名
en: Hostname
Description:
zh-cn: 目的實例主機名
en: SAP HANA ECS hostname
Default: hana001
AllowedPattern: '^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9\-])*([a-zA-Z0-9])$'
ConstraintDescription:
zh-cn: 長度為 2-13 個字符,允許使用大小寫字母、數字或連字符(-),但不能以連字符(-)開頭或結尾
en: 'The length is 2-13 characters,can starting with a capital or lowercase letter,and can contain numbers,or -,but can''t starting with - or end with -.'
privateIpAddress:
Type: String
Label:
zh-cn: 目的實例私有IP地址
en: Private IP Address
Description:
zh-cn: '目的實例私有IP地址,請注意IP地址的范圍要在交換機網段。'
en: 'Private IP address for SAP HANA ECS host,please pay attention:IP address should be within VSwitch CIdR Block.'
ConstraintDescription:
zh-cn: 請輸入正確的私有IP地址
en: Please input the right private IP address
AllowedPattern: '^((192\.168|172\.([1][6-9]|[2]\d|3[01]))(\.([2][0-4]\d|[2][5][0-5]|[01]?\d?\d)){2}|(\D)*10(\.([2][0-4]\d|[2][5][0-5]|[01]?\d?\d)){3})$'
loginPassword:
Type: String
Label:
zh-cn: 目的實例root用戶密碼
en: root Passowrd
Description:
zh-cn: 目的實例root用戶登錄密碼
en: SAP HANA ECS root passowrd
AllowedPattern: '^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\W_]+$)(?![a-z0-9]+$)(?![a-z\W_]+$)(?![0-9\W_]+$)[a-zA-Z0-9\W_]{8,}$'
ConstraintDescription:
zh-cn: 8-30個字符,且同時包含三項(大寫字母,小寫字母,數字或特殊符號)
en: '8-30 characters,include(capital letter,lowercase letter,numbers or special characters).'
NoEcho: true
HANAInstanceNumber:
Type: String
Label:
zh-cn: 目的實例SAP HANA實例編號
en: SAP HANA Instance Number
Description:
zh-cn: 目的實例SAP HANA實例編號
en: SAP HANA instance number
ConstraintDescription:
zh-cn: 2位數字,00-97
en: '2 numbers,00-97.'
AllowedPattern: '^([0-8][0-9]|9[0-6])$'
Default: '00'
systemDiskCategory:
Default: cloud_ssd
AllowedValues:
- cloud_efficiency
- cloud_ssd
Label:
zh-cn: 目的實例系統盤類型
en: System Disk Type
Description:
zh-cn: '目的實例系統盤類型,系統盤分類: 高效云盤,SSD云盤。'
en: 'System disk category: Ultra Disk,SSD disk.'
Type: String
systemDiskSize:
Default: '100'
Type: String
Label:
zh-cn: 目的實例系統盤大小
en: System Disk Size
Description:
zh-cn: 目的實例系統盤大小,單位GB,容量20-500G
en: '/ file system size,unit:GB,range:20~500G.'
ConstraintDescription:
zh-cn: 必須輸入整數,單位GB,容量20-500G
en: 'Must be an integer,range:20~500G.'
AllowedPattern: '(^2[0-9]$)|(^[3-9]\d$)|(^[1-4]\d{2}$)|500$'
dataLogDiskCategory:
Default: cloud_ssd
AllowedValues:
- cloud_essd PL1
- cloud_essd PL2
- cloud_essd PL3
- cloud_ssd
Label:
zh-cn: /hana/data和/hana/log文件系統所在磁盤類型
en: /hana/data And /hana/log File System Disk Category
Description:
zh-cn: '1.可選磁盤類型:ESSD云盤PL1、ESSD云盤PL2、ESSD云盤PL3、SSD云盤。<br>2. ESSD 云盤容量越大,可供選擇的性能級別越高(460 GiB 以上可選 PL2,1260 GiB 以上可選 PL3),性能級別越高相應的費用也越高:<ul><li> cloud_essd PL1(單盤IOPS性能上限5萬)</li><li> cloud_essd PL2(單盤IOPS性能上限10萬)</li><li> cloud_essd PL3(單盤IOPS性能上限100萬)</li></ul>如何合理選擇 ESSD 云盤性能級別,<a href=''http://bestwisewords.com/document_detail/122389.html'' target=''view_window''>查看詳情></a>。'
en: '1. /hana/data and /hana/log file system disk category: ESSD disk,SSD disk.<br>2. The higher the performance level that you can select. For example, PL2 is available for an enhanced SSD of more than 460 GiB and PL3 is available for an enhanced SSD of more than 1260 GiB. A higher performance level indicates a higher fee:<ul><li> cloud_essd PL1(up to 50,000 IOPS per disk)</li><li> cloud_essd PL2(up to 100,000 IOPS per disk)</li><li> cloud_essd PL3(up to 1,000,000 IOPS per disk)</li></ul>For more information about how to select the performance level of an enhanced SSD, <a href=''http://bestwisewords.com/document_detail/122389.html'' target=''view_window''>click here></a>.'
Type: String
dataSize:
Type: String
Label:
zh-cn: 目的實例的/hana/data大小
en: /hana/data File System Size
Description:
zh-cn: 目的實例的/hana/data文件系統大小,單位GB,SAP官方推薦:Size >= 1 x RAM
en: '/hana/data file system size,unit:GB,SAP recommendation:Size >= 1 x RAM.'
ConstraintDescription:
zh-cn: 必須輸入整數,容量20-32768G
en: 'Must be an integer,range:20~32768G.'
AllowedPattern: '(^[2-9]\d{1}$)|(^[1-9]\d{2}$)|(^[1-9]\d{3}$)|(^[1-2]\d{4}$)|(^3[0-2][0-7][0-6][0-8]$)'
logSize:
Type: String
Label:
zh-cn: 目的實例的/hana/log大小
en: /hana/log File System Size
Description:
zh-cn: '目的實例的/hana/log文件系統大小,單位GB,SAP官方推薦:[systems ≤ 512GB ] Sizeredolog = 1/2 x RAM;[systems > 512GB ] Sizeredolog(min) = 512GB。'
en: '/hana/log file system size,unit:GB,SAP recommendation:[systems ≤ 512GB ] Sizeredolog = 1/2 x RAM;[systems > 512GB ] Sizeredolog(min) = 512GB.'
ConstraintDescription:
zh-cn: '必須輸入整數,容量20-32768GB。'
en: 'Must be an integer,range:20~32768G.'
AllowedPattern: '(^[2-9]\d{1}$)|(^[1-9]\d{2}$)|(^[1-9]\d{3}$)|(^[1-2]\d{4}$)|(^3[0-2][0-7][0-6][0-8]$)'
sharedDiskCategory:
Default: cloud_ssd
AllowedValues:
- cloud_efficiency
- cloud_ssd
- cloud_essd
Label:
zh-cn: 目的實例的/hana/shared文件系統所在磁盤類型
en: /hana/shared File System Disk Category
Description:
zh-cn: 目的實例的/hana/shared文件系統所在磁盤類型:高效云盤、SSD云盤、ESSD云盤
en: '/hana/shared file system disk category: Ultra Disk, SSD disk, ESSD disk.'
Type: String
sharedSize:
Type: String
Label:
zh-cn: 目的實例的/hana/shared大小
en: /hana/shared File System Size
Description:
zh-cn: 目的實例的/hana/shared文件系統大小,單位GB,SAP官方推薦:Sizeinstallation(single-node) = MIN(1 x RAM; 1 TB)
en: '/hana/shared file system size,unit:GB,SAP recommendation: Sizeinstallation(single-node) = MIN(1 x RAM; 1 TB).'
ConstraintDescription:
zh-cn: 必須輸入整數,容量20-32768GB
en: 'Must be an integer,range:20~32768G.'
AllowedPattern: '(^[2-9]\d{1}$)|(^[1-9]\d{2}$)|(^[1-9]\d{3}$)|(^[1-2]\d{4}$)|(^3[0-2][0-7][0-6][0-8]$)'
usrsapDiskCategory:
Default: cloud_ssd
AllowedValues:
- cloud_efficiency
- cloud_ssd
- cloud_essd
Label:
zh-cn: 目的實例的/usr/sap文件系統所在磁盤類型
en: /usr/sap File System Disk Category
Description:
zh-cn: 目的實例的/usr/sap文件系統所在磁盤類型:高效云盤、SSD云盤、ESSD云盤
en: '/usr/sap file system disk category: Ultra Disk, SSD disk, ESSD disk.'
Type: String
usrsapSize:
Type: String
Label:
zh-cn: 目的實例的/usr/sap大小
en: /usr/sap File System Size
Description:
zh-cn: 目的實例的/usr/sap文件系統大小,單位GB
en: '/usr/sap file system size,unit:GB.'
Default: '50'
ConstraintDescription:
zh-cn: 必須輸入整數,容量20-32768G
en: 'Must be an integer,range:20~32768G.'
AllowedPattern: '(^[2-9]\d{1}$)|(^[1-9]\d{2}$)|(^[1-9]\d{3}$)|(^[1-2]\d{4}$)|(^3[0-2][0-7][0-6][0-8]$)'
mediaPath:
Type: String
Label:
zh-cn: SAP HANA軟件包OSS路徑
en: SAP HANA Software OSS Path
Description:
zh-cn: '請從SAP官網下載SAP HANA安裝介質,上傳至SAP系統部署所在的OSS地域,輸入該目錄的路徑,例:oss://{bucket_name}/hana。'
en: 'Please download the SAP HANA installation media from SAP software download center(Don''t need to extract, the packages are like these:51053381_part1.exe or.rar)and upload them into OSS bucket,input the full path starting with oss://. eg: oss://{bucket_name}/hana.'
ConstraintDescription:
zh-cn: 'oss:開頭,例:oss://{bucket_name}/hana。'
en: 'Starting with oss.eg: oss://{bucket_name}/hana.'
AllowedPattern: '^(oss|https|http)://[\S\w]+([\S\w])+$'
systemUsage:
Type: String
Label:
zh-cn: 目的實例的SAP HANA系統類型
en: SAP HANA System Usage
Description:
zh-cn: '目的實例的SAP HANA系統類型,包括custom,development,test,production。'
en: 'SAP HANA system usage(custom,development,test,production).'
Default: custom
AllowedValues:
- custom
- development
- test
- production
HANASapSidAdmUid:
Type: String
Label:
zh-cn: 目的實例的SAP HANA sidadm用戶Id
en: SAP HANA sidadm User Id
Description:
zh-cn: '目的實例的sidadm user Id,只能填寫數字,大于500且小于65532,默認值是1001。'
en: 'sidadm user Id,Only number,range:500~65532,default value:1001.'
Default: '1001'
ConstraintDescription:
zh-cn: '只能填寫數字,大于500且小于65532。'
en: 'Only number,range:500~65532.'
AllowedPattern: '(^[5-9]\d{2}$)|(^[1-9]\d{3}$)|(^[1-5]\d{4}$)|(^6[0-5][0-5][0-3][0-2]$)'
HANASapSysGid:
Type: String
Label:
zh-cn: 目的實例的SAP HANA sapsys組Id
en: SAP HANA sapsys Group Id
Description:
zh-cn: '目的實例的sapsys group Id,只能填寫數字,默認值是79。'
en: 'Sapsys group Id,Only number,default value:79.'
Default: '79'
ConstraintDescription:
zh-cn: 只能填寫數字
en: Only number
AllowedPattern: (^\d+$)
userName:
Label:
zh-cn: 目的實例的用戶名
en: Username of SYSTEMDB
Description:
zh-cn: 目的實例的用戶名
en: Input username of SYSTEMDB.
Type: String
Default: SYSTEM
weatherDeleteResource:
Label:
zh-cn: 驗證成功后保留云資源.
en: Retain Cloud Resources
Description:
zh-cn: '是否在驗證備份成功后,保留云資源, 默認不保留。該參數為選中狀態且成功恢復備份時,''云資源保留時長''參數將失效。'
en: 'Whether to reserve cloud resources after verifying the successful backup, not reserved by default. When this parameter is selected and the backup is successfully restored, the''Cloud Resource Retention Duration'' parameter will be invalid.'
Type: Boolean
Default: false
timeout:
Label:
zh-cn: 云資源保留時長(單位:分鐘)
en: 'Cloud Resource Retention Time (Unit: Minutes)'
Description:
zh-cn: 測試完成/失敗后,保留云資源的時長(單位:分鐘)。
en: 'After the test is completed/failed, the length of time to reserve cloud resources (unit: minutes).'
Type: Number
Default: '30'
dingTalkWebhook:
Label:
zh-cn: 釘釘機器人Webhook地址
en: DingTalk Robot Webhook
Description:
zh-cn: '釘釘自定義機器人Webhook地址,用以向釘釘發送測試結果消息和刪除云資源審批消息,更多請瀏覽<a href=''https://open-doc.dingtalk.com/microapp/serverapi2/qf2nxq'' target=''_blank''>釘釘自定義機器人</a>。'
en: 'Sends notification to DingTalk via webhook for asking approval. The execution remains paused until approved or rejected. Please refer https://open-doc.dingtalk.com/microapp/serverapi2/qf2nxq for details.'
Type: String
Tasks:
- Name: checkHanaInstanceType
Action: 'ACS::CheckFor'
Description:
zh-cn: 查詢SAP HANA實例規格在當前可用區是否可用
en: Check SAP HANA instance type availability in current available zones
Properties:
Service: ECS
API: DescribeAvailableResource
Parameters:
ZoneId: '{{ zoneId }}'
RegionId: '{{ACS::RegionId}}'
InstanceType:
'Fn::Select':
- 0
- 'Fn::Split':
- (
- '{{ instanceType }}'
DestinationResource: InstanceType
PropertySelector: 'AvailableZones.AvailableZone[0].Status'
DesiredValues:
- Available
Retries: 2
- Name: checkHanaBackupSetting
Action: 'ACS::CheckFor'
Description:
zh-cn: 查詢源實例SAP HANA數據庫備份設置
en: Check source SAP HANA backup settings
Properties:
Service: HBR
API: DescribeHanaBackupSetting
Parameters:
VaultId: '{{ vaultId }}'
ClusterId: '{{ sourceClusterId }}'
DatabaseName:
'Fn::Select':
- 0
- 'Fn::Split':
- '@'
- '{{ ACS::TaskLoopItem }}'
PropertySelector: HanaBackupSetting.CatalogBackupUsingBackint
DesiredValues:
- true
Retries: 2
Loop:
Items: '{{ databaseName }}'
RateControl:
MaxErrors: 0
Mode: Concurrency
Concurrency: 1
- Name: createStack
Action: 'ACS::ExecuteAPI'
Description:
en: Create a SAP HANA single node stack.
zh-cn: 創建SAP HANA單節點資源棧
Properties:
Service: ROS
API: CreateStack
Parameters:
StackName: 'HBR-{{ACS::ExecutionId}}'
TimeoutInMinutes: 60
DisableRollback: true
Parameters:
- ParameterKey: ImageId
ParameterValue: '{{ imageId }}'
- ParameterKey: CustomizedImageId
ParameterValue: '{{ customizedImageId }}'
- ParameterKey: CustomizedImage
ParameterValue: '{{ customizedImage }}'
- ParameterKey: ZoneId
ParameterValue: '{{ zoneId }}'
- ParameterKey: VpcId
ParameterValue: '{{ vpcId }}'
- ParameterKey: VSwitchId
ParameterValue: '{{ vSwitchId }}'
- ParameterKey: InstanceType
ParameterValue: '{{ instanceType }}'
- ParameterKey: ECSHostname
ParameterValue: '{{ ECSHostname }}'
- ParameterKey: PrivateIpAddress
ParameterValue: '{{ privateIpAddress }}'
- ParameterKey: LoginPassword
ParameterValue: '{{ loginPassword }}'
- ParameterKey: HANASID
ParameterValue: '{{ HANASID }}'
- ParameterKey: HANAInstanceNumber
ParameterValue: '{{ HANAInstanceNumber }}'
- ParameterKey: SystemDiskCategory
ParameterValue: '{{ systemDiskCategory }}'
- ParameterKey: SystemDiskSize
ParameterValue: '{{ systemDiskSize }}'
- ParameterKey: DataLogDiskCategory
ParameterValue: '{{ dataLogDiskCategory }}'
- ParameterKey: DataSize
ParameterValue: '{{ dataSize }}'
- ParameterKey: LogSize
ParameterValue: '{{ logSize }}'
- ParameterKey: SharedDiskCategory
ParameterValue: '{{ sharedDiskCategory }}'
- ParameterKey: SharedSize
ParameterValue: '{{ sharedSize }}'
- ParameterKey: UsrsapDiskCategory
ParameterValue: '{{ usrsapDiskCategory }}'
- ParameterKey: UsrsapSize
ParameterValue: '{{ usrsapSize }}'
- ParameterKey: MasterPass
ParameterValue: '{{ masterPass }}'
- ParameterKey: MediaPath
ParameterValue: '{{ mediaPath }}'
- ParameterKey: SystemUsage
ParameterValue: '{{ SystemUsage }}'
- ParameterKey: HANASapSidAdmUid
ParameterValue: '{{ HANASapSidAdmUid }}'
- ParameterKey: HANASapSysGid
ParameterValue: '{{ HANASapSysGid }}'
TemplateURL: 'https://sap-automation-{{ACS::RegionId}}.oss-{{ACS::RegionId}}.aliyuncs.com/Public_V1/HANA/HANA_Single_Node.json'
Outputs:
StackId:
Type: String
ValueSelector: StackId
- Name: untilStackReady
Action: 'ACS::WaitFor'
OnError: getExecutionFaildMessage
Description:
en: Wait the stack status util CREATE_COMPLETE
zh-cn: 等待資源棧至創建成功狀態
DelayType: Constant
Delay: 300
Retries: 12
Properties:
Service: ROS
API: GetStack
Parameters:
StackId: '{{createStack.StackId}}'
DesiredValues:
- CREATE_COMPLETE
StopRetryValues:
- CREATE_FAILED
- CHECK_FAILED
- ROLLBACK_FAILED
- ROLLBACK_COMPLETE
- CREATE_ROLLBACK_COMPLETE
- CREATE_ROLLBACK_FAILED
PropertySelector: Status
Outputs:
HANAServerId:
Type: String
ValueSelector: '.Outputs[] | select(.OutputKey == "HANAServerId") | .OutputValue'
HANAServerLog:
Type: Json
ValueSelector: '.Outputs[] | select(.OutputKey == "InstallLog") | .OutputValue'
- Name: checkHanaServerLog
Action: 'ACS::CheckFor'
OnError: getExecutionFaildMessage
Description:
zh-cn: 檢查SAP HANA安裝日志
en: Check SAP HANA installation log
Properties:
Service: ROS
API: GetStack
Parameters:
StackId: '{{createStack.StackId}}'
PropertySelector: '.Outputs[] | select(.OutputKey == "InstallLog") | .OutputValue'
DesiredValues:
- '{"HANANode": "SUCCESS"}'
Retries: 2
- Name: createHANAInstance
Action: 'ACS::ExecuteAPI'
OnError: getExecutionFaildMessage
Description:
zh-cn: 創建HBR SAP HANA實例
en: Create HBR SAP HANA instance
Properties:
Service: HBR
API: CreateHanaInstance
Parameters:
VaultId: '{{ vaultId }}'
EcsInstanceId: '{{ untilStackReady.HANAServerId }}'
Host: '{{ privateIpAddress }}'
HanaName: '{{ ECSHostname }}'
InstanceNumber: '{{ HANAInstanceNumber }}'
UserName: '{{ userName }}'
Password: '{{ masterPass }}'
UseSsl: true
Outputs:
ClusterId:
Type: String
ValueSelector: ClusterId
- Name: createClients
Action: 'ACS::ExecuteAPI'
OnError: getExecutionFaildMessage
Description:
zh-cn: 創建HBR SAP HANA實例客戶端
en: Create HBR SAP HANA instance client
Properties:
Service: HBR
API: CreateClients
Parameters:
VaultId: '{{ vaultId }}'
AlertSetting: INHERITED
ClientInfo:
- instanceId: '{{ untilStackReady.HANAServerId }}'
accessKeyId: ''
accessKeySecret: ''
clusterId: '{{ createHANAInstance.ClusterId }}'
sourceTypes:
- HANA
Outputs:
TaskId:
Type: String
ValueSelector: TaskId
- Name: waitForCreateClient
Action: 'ACS::WaitFor'
OnError: getExecutionFaildMessage
Description:
zh-cn: 等待客戶端創建完成
en: Wait for the client to be created
DelayType: Constant
Delay: 5
Retries: 15
Properties:
Service: HBR
API: DescribeTask
Parameters:
TaskId: '{{ createClients.TaskId }}'
PropertySelector: Description
StopRetryValues:
- completed
DesiredValues:
- completed
- Name: waitForActivateClient
Action: 'ACS::WaitFor'
OnError: getExecutionFaildMessage
Description:
zh-cn: 等待HBR客戶端激活完成
en: Wait for client activation to complete
Properties:
Service: HBR
API: DescribeClients
Parameters:
ClusterId: '{{ createHANAInstance.ClusterId }}'
VaultId: '{{ vaultId }}'
SourceType: HANA
ClientType: ECS_AGENT
PropertySelector: 'Clients.Client[].Status'
StopRetryValues:
- ACTIVATED
- INSTALL_FAILED
DesiredValues:
- ACTIVATED
Retries: 5
Outputs:
ClientId:
Type: String
ValueSelector: 'Clients.Client[].ClientId'
- Name: RestoreBuckup
Action: 'ACS::HBR::RestoreHanaDatabaseBackup'
OnError: getExecutionFaildMessage
Description:
zh-cn: 恢復并驗證備份
en: Restore and verify backup
Properties:
vaultId: '{{ vaultId }}'
sourceClusterId: '{{ sourceClusterId }}'
sourceSystemName:
'Fn::Select':
- 0
- 'Fn::Split':
- ':'
- '{{ ACS::TaskLoopItem }}'
clusterId: '{{ createHANAInstance.ClusterId }}'
databaseName:
'Fn::Select':
- 1
- 'Fn::Split':
- ':'
- '{{ ACS::TaskLoopItem }}'
HANAInstanceServerId: '{{ untilStackReady.HANAServerId }}'
HANASID: '{{ HANASID }}'
masterClientId: '{{ waitForActivateClient.ClientId }}'
Loop:
Items: '{{ databaseName }}'
RateControl:
MaxErrors: 0
Mode: Concurrency
Concurrency: 1
- Name: runCommand
Action: 'ACS::ECS::RunCommand'
OnSuccess: DingTalkNotify
OnError: getExecutionFaildMessage
Description:
en: Verify the running status of the SAP HANA instance
zh-cn: 校驗SAP HANA實例運行狀態
Properties:
regionId: '{{ ACS::RegionId }}'
commandContent:
'Fn::Join':
- ''
- - 'su - '
- 'Fn::Jq':
- First
- .key | ascii_downcase
- key: '{{ HANASID }}'
- 'adm -c "sapcontrol -nr '
- '{{ HANAInstanceNumber }}'
- ' -function GetProcessList"; if [[ $? -eq 3 ]]; then exit 0;fi'
instanceId: '{{ untilStackReady.HANAServerId }}'
commandType: RunShellScript
timeout: '180'
Outputs:
commandOutputs:
Type: String
ValueSelector: invocationOutput
- Name: getExecutionFaildMessage
Action: 'ACS::ExecuteAPI'
Description:
en: Get execution failure information
zh-cn: 獲取執行失敗信息
Properties:
Service: OOS
API: ListExecutions
Parameters:
ExecutionId: '{{ ACS::ExecutionId }}'
Outputs:
statusMessage:
Type: String
ValueSelector: 'Executions[].StatusMessage'
- Name: DingTalkNotifyExecutionFailed
Action: 'ACS::Notify'
OnSuccess: sleepTask
Description:
en: Notification execution failure message
zh-cn: 通知執行失敗消息
Properties:
NotifyType: WebHook
WebHook:
URI: '{{ dingTalkWebhook }}'
Headers:
Content-Type: application/json
Content:
msgtype: markdown
markdown:
title: '{{ ACS::CurrentUTCTime }}-HBR自動測試執行失敗報告'
text:
'Fn::Join':
- |+
- - '#### {{ ACS::CurrentUTCTime }}-HBR自動測試執行失敗報告'
- '檢測數據庫:{{ databaseName }}'
- '錯誤信息:{{ getExecutionFaildMessage.statusMessage }}'
- '**測試將在{{ timeout }}分鐘后自動清理測試云資源,如需保留云資源,請到[OOS控制臺](https://oos.console.aliyun.com/{{ ACS::RegionId }}/execution/detail/{{ ACS::ExecutionId }})取消執行**'
at:
atMobiles: []
isAtAll: true
- Name: DingTalkNotify
Action: 'ACS::Notify'
Description:
en: Notify test results
zh-cn: 釘釘通知測試結果
Properties:
NotifyType: WebHook
WebHook:
URI: '{{ dingTalkWebhook }}'
Headers:
Content-Type: application/json
Content:
msgtype: markdown
markdown:
title: '{{ ACS::CurrentUTCTime }}-HBR自動測試報告'
text:
'Fn::Join':
- |+
- - '#### {{ ACS::CurrentUTCTime }}-HBR自動測試報告'
- 測試結果:SUCCESS
- '檢測數據庫:{{ databaseName }}'
- '目的實例:{{ ECSHostname }}'
- '目的實例Id:{{ untilStackReady.HANAServerId }}'
- '**如果您選擇清理云資源,測試將在{{ timeout }}分鐘后自動清理測試云資源,如需保留云資源,請到[OOS控制臺](https://oos.console.aliyun.com/{{ACS::RegionId}}/execution/detail/{{ ACS::ExecutionId }})取消執行**'
at:
atMobiles: []
isAtAll: true
- Name: whetherDeleteResource
Action: 'ACS::Choice'
Properties:
DefaultTask: sleepTask
Choices:
- When: '{{ weatherDeleteResource }}'
NextTask: 'ACS::END'
- Name: sleepTask
Action: 'ACS::Sleep'
Properties:
Duration: 'PT{{ timeout }}M'
- Name: deleteStack
Action: 'ACS::ExecuteApi'
OnError: getCleanupFaildMessage
Description:
en: Delete the stack
zh-cn: 刪除資源棧
Properties:
Service: ROS
API: DeleteStack
Parameters:
StackId: '{{createStack.StackId}}'
- Name: describeHanaInstances
Action: 'ACS::ExecuteAPI'
OnError: getCleanupFaildMessage
Description:
zh-cn: 查詢HBR SAP HANA實例
en: Query HBR SAP HANA instance
Properties:
Service: HBR
API: DescribeHanaInstances
Parameters:
VaultId: '{{ vaultId }}'
Outputs:
Hanas:
Type: Json
ValueSelector: Hanas
- Name: whetherDeleteHanaInstances
Action: 'ACS::Choice'
Properties:
DefaultTask: untilStackCleanup
Choices:
- When:
'Fn::Equals':
- '{{ ECSHostname }}'
- 'Fn::Jq':
- First
- '.key.Hana[] | select(.Host == "{{ privateIpAddress }}") | .HanaName'
- key: '{{ describeHanaInstances.Hanas }}'
NextTask: deleteHanaInstance
- Name: deleteHanaInstance
Action: 'ACS::ExecuteApi'
OnError: getCleanupFaildMessage
Description:
en: Delete the stack
zh-cn: 刪除測試SAP HANA實例
Properties:
Service: HBR
API: DeleteHanaInstance
Parameters:
VaultId: '{{ vaultId }}'
ClusterId: '{{ createHANAInstance.ClusterId }}'
Sid: '{{ HANASID }}'
- Name: untilStackCleanup
Action: 'ACS::WaitFor'
OnError: getCleanupFaildMessage
OnSuccess: 'ACS::END'
Description:
en: Wait the stack status util DELETE_COMPLETE
zh-cn: 等待資源棧至刪除成功狀態
DelayType: Constant
Delay: 300
Retries: 12
Properties:
Service: ROS
API: GetStack
Parameters:
StackId: '{{createStack.StackId}}'
DesiredValues:
- DELETE_COMPLETE
StopRetryValues:
- DELETE_FAILED
- DELETE_COMPLETE
PropertySelector: Status
- Name: getCleanupFaildMessage
Action: 'ACS::ExecuteAPI'
Description:
en: Get cleanup failure information
zh-cn: 獲取清理失敗信息
Properties:
Service: OOS
API: ListExecutions
Parameters:
ExecutionId: '{{ ACS::ExecutionId }}'
Outputs:
statusMessage:
Type: String
ValueSelector: 'Executions[].StatusMessage'
- Name: DingTalkNotifyCleanupFailed
Action: 'ACS::Notify'
Description:
en: Notification cleanup failed
zh-cn: 清理失敗通知
Properties:
NotifyType: WebHook
WebHook:
URI: '{{ dingTalkWebhook }}'
Headers:
Content-Type: application/json
Content:
msgtype: markdown
markdown:
title: '{{ ACS::CurrentUTCTime }}-HBR自動測試清理失敗報告'
text:
'Fn::Join':
- |+
- - '#### {{ ACS::CurrentUTCTime }}-HBR自動測試清理失敗報告'
- '檢測數據庫:{{ databaseName }}'
- '錯誤信息:{{ getCleanupFaildMessage.statusMessage }}'
- '**自動清理云資源失敗,請手動清理**'
at:
atMobiles: []
isAtAll: true
Outputs:
Result:
Type: String
Value: '{{ untilStackReady.HANAServerId }}'