-
Notifications
You must be signed in to change notification settings - Fork 17
/
ACS-ECS-BulkyConfigureOOSPackageWithTemporaryURL.yml
209 lines (209 loc) · 5.46 KB
/
ACS-ECS-BulkyConfigureOOSPackageWithTemporaryURL.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
FormatVersion: OOS-2019-06-01
Description:
en: Use this template to install oos package on ecs
zh-cn: 安装/卸载扩展程序
name-en: ACS-ECS-BulkyConfigureOOSPackageWithTemporaryURL
name-zh-cn: 安装/卸载扩展程序
categories:
- run_command
- application_manage
Parameters:
regionId:
Type: String
Label:
en: RegionId
zh-cn: 地域ID
AssociationProperty: RegionId
Default: '{{ ACS::RegionId }}'
action:
Label:
en: Action
zh-cn: 执行动作
Type: String
AllowedValues:
- install
- uninstall
- update
Default: install
AssociationPropertyMetadata:
LocaleKey: SoftwareOperationType
packageName:
Label:
en: packageName
zh-cn: 要安装的扩展程序
Type: String
AssociationProperty: 'ALIYUN::OOS::Package::PackageName'
AssociationPropertyMetadata:
RegionId: regionId
Target: ${targets}
packageVersion:
Label:
en: packageVersion
zh-cn: 扩展程序版本
Type: String
AssociationProperty: 'ALIYUN::OOS::Package::PackageVersion'
AssociationPropertyMetadata:
TemplateName: ${packageName}
PublicDisabled: true
DoRequestAtFirst: true
Default: ''
targets:
Type: Json
Label:
en: TargetInstance
zh-cn: 目标实例
Default:
Type: ResourceIds
ResourceIds: []
RegionId: '{{ regionId }}'
AssociationProperty: Targets
AssociationPropertyMetadata:
ResourceType: 'ALIYUN::ECS::Instance'
RegionId: regionId
Status: Running
orderId:
Description:
en: The ID of Order
zh-cn: 订单ID
Type: String
Default: ''
rateControl:
Label:
en: RateControl
zh-cn: 任务执行的并发比率
Type: Json
AssociationProperty: RateControl
Default:
Mode: Concurrency
MaxErrors: 0
Concurrency: 10
parameters:
Label:
en: Parameters
zh-cn: 命令中的参数
Type: Json
Default: {}
AssociationProperty: TemplateParameter
AssociationPropertyMetadata:
TemplateName: packageName
TemplateVersion: packageVersion
TemplateType: Package
OOSAssumeRole:
Label:
en: OOSAssumeRole
zh-cn: OOS扮演的RAM角色
Type: String
Default: ''
RamRole: '{{ OOSAssumeRole }}'
Tasks:
- Name: getInstanceFromOrderId
Action: ACS::WaitFor
When:
Fn::Not:
'Fn::Equals':
- '{{ orderId }}'
- ''
Description:
en: Views the ECS instances
zh-cn: 通过订单ID获取ECS实例
Properties:
Service: BssOpenApi
API: GetOrderDetail
Parameters:
RegionId: '{{ regionId }}'
OrderId: '{{ orderId }}'
DesiredValues:
- Paid
StopRetryValues:
- Cancelled
PropertySelector: Data.OrderList.Order[].PaymentStatus
Outputs:
instanceIds:
Type: List
ValueSelector: Data.OrderList.Order[].InstanceIDs | fromjson | .[]
- Name: getInstanceFromTargets
When:
'Fn::Equals':
- '{{ orderId }}'
- ''
Description:
en: Views the ECS instances
zh-cn: 获取ECS实例
Action: 'ACS::SelectTargets'
Properties:
ResourceType: 'ALIYUN::ECS::Instance'
RegionId: '{{ regionId }}'
Filters:
- '{{ targets }}'
Outputs:
instanceIds:
Type: List
ValueSelector: 'Instances.Instance[].InstanceId'
- Name: configurePackage
Description:
en: Configure Package
zh-cn: 配置软件包
Action: ACS::ECS::ConfigureOOSPackageWithTemporaryURLFullActions
Properties:
regionId: '{{ regionId }}'
instanceId: '{{ ACS::TaskLoopItem }}'
action: '{{ action }}'
packageName: '{{ packageName }}'
packageVersion: '{{ packageVersion }}'
parameters: '{{ parameters }}'
Loop:
Items:
Fn::If:
- 'Fn::Equals':
- '{{ orderId }}'
- ''
- '{{ getInstanceFromTargets.instanceIds }}'
- '{{ getInstanceFromOrderId.instanceIds }}'
RateControl: '{{ rateControl }}'
Outputs:
commandOutputs:
AggregateType: 'Fn::ListJoin'
AggregateField: commandOutput
configurationOutputs:
AggregateType: 'Fn::ListJoin'
AggregateField: configurationOutput
Outputs:
commandOutput:
Type: Json
ValueSelector: '.|{"InstanceId": "{{ ACS::TaskLoopItem }}", "InstanceResult": [{"Package": "{{packageName}}", "PackageResult": .commandOutput}]}'
configurationOutput:
Type: Json
ValueSelector: '.|{"InstanceId": "{{ ACS::TaskLoopItem }}", "InstanceResult": [{"Package": "{{packageName}}", "PackageResult": .configurationOutput}]}'
Outputs:
commandOutput:
Type: List
Value: '{{ configurePackage.commandOutputs }}'
configurationOutput:
Type: List
Value: '{{ configurePackage.configurationOutputs }}'
Metadata:
ALIYUN::OOS::Interface:
ParameterGroups:
- Parameters:
- packageName
- action
- packageVersion
- parameters
Label:
default:
zh-cn: 配置参数
en: Configure Parameters
- Parameters:
- regionId
- targets
Label:
default:
zh-cn: 选择实例
en: Select Instances
- Parameters:
- rateControl
- OOSAssumeRole
Label:
default:
zh-cn: 高级选项
en: Control Options