-
Notifications
You must be signed in to change notification settings - Fork 17
/
Copy pathACS::CN::UpgradeServiceInstanceByRunCommand.yml
187 lines (187 loc) · 5.63 KB
/
ACS::CN::UpgradeServiceInstanceByRunCommand.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
FormatVersion: OOS-2019-06-01
Description:
en: DownLoad file and run command in ComputeNest service instance‘s Upgrade stage
zh-cn: 通过下载OSS文件与运行命令执行服务实例升级
name-en: ACS::CN::UpgradeServiceInstanceByRunCommand
name-zh-cn: 执行升级阶段命令
categories:
- run_command
Parameters:
regionId:
Type: String
Label:
en: Region
zh-cn: 地域
AssociationProperty: RegionId
Default: '{{ ACS::RegionId }}'
serviceInstanceId:
Description:
en: The ID of the ComputeNest service instance
zh-cn: 计算巢服务实例ID
Type: String
resourceName:
Description:
en: The resource name of ECS instance
zh-cn: 运行命令的ECS实例资源名称
Type: String
Default: ''
applicationGroupName:
Description:
en: The applicationGroup name of ECS instance
zh-cn: 运行命令的ECS实例应用分组名称
Type: String
Default: ''
artifactsUrl:
Description:
en: 软件包地址
zh-cn: The URL of file artifacts
Type: String
Default: ''
artifactsDownloadDirectory:
Description:
en: 软件包下载目录
zh-cn: The artifacts download to directory
Type: String
Default: ''
commandType:
Label:
en: CommandType
zh-cn: 命令类型
AssociationPropertyMetadata:
LocaleKey: ECSCommandType
Type: String
AllowedValues:
- RunShellScript
- RunPythonScript
- RunPerlScript
- RunBatScript
- RunPowerShellScript
Default: RunShellScript
commandContent:
Label:
en: CommandContent
zh-cn: 命令内容
Type: String
MaxLength: 16384
AssociationProperty: ALIYUN::OOS::Command::CommandContent
AssociationPropertyMetadata:
CommandType: ${commandType}
workingDir:
Description:
en: 'Linux instances: under the home directory of the administrator (root user): /root.Windows instances: under the directory where the process of the Cloud Assistant client is located, such asC:\Windows\System32'
zh-cn: Linux系统实例默认在管理员(root用户)的home目录下,即/root。Windows系统实例默认在云助手客户端进程所在目录,例如C:\Windows\System32
Label:
en: WorkingDir
zh-cn: 运行目录
Type: String
Default: ''
AssociationPropertyMetadata:
Value:
- Condition:
Fn::Or:
- Fn::Equals:
- ${commandType}
- RunShellScript
- Fn::Equals:
- ${commandType}
- RunPythonScript
- Fn::Equals:
- ${commandType}
- RunPerlScript
Value: /root
- Condition:
Fn::Or:
- Fn::Equals:
- ${commandType}
- RunBatScript
- Fn::Equals:
- ${commandType}
- RunPowerShellScript
Value: C:\\Windows\\System32
timeout:
Label:
en: Timeout
zh-cn: 超时时间
Type: Number
Default: 600
enableParameter:
Label:
en: EnableParameter
zh-cn: 命令中是否包含加密参数或自定义参数
Type: Boolean
Default: false
parameters:
Description:
en: The parameters of the command
zh-cn: 命令参数
Type: Json
Default: {}
Tasks:
- Name: getInstance
Description:
en: Views the ECS instances
zh-cn: 获取ECS实例
Action: ACS::SelectTargets
Properties:
ResourceType: ALIYUN::ECS::Instance
RegionId: '{{ regionId }}'
Filters:
- Type: Tags
RegionId: '{{ regionId }}'
Tags:
Fn::If:
- Fn::Equals:
- ''
- '{{ resourceName }}'
- Fn::If:
- Fn::Equals:
- ''
- '{{ applicationGroupName }}'
- - Key: acs:computenest:serviceInstanceId
Value: '{{ serviceInstanceId }}'
- - Key: acs:computenest:serviceInstanceId
Value: '{{ serviceInstanceId }}'
- Key: acs:computenest:applicationGroup
Value: '{{ applicationGroupName }}'
- - Key: acs:computenest:serviceInstanceId
Value: '{{ serviceInstanceId }}'
- Key: acs:computenest:resourceName
Value: '{{ resourceName }}'
Outputs:
instanceIds:
Type: List
ValueSelector: Instances.Instance[].InstanceId
- Name: downloadFileAndRunCommand
Action: ACS::CN::UpgradeServiceInstanceStep
Description:
en: Execute command to upgrade service instance
zh-cn: 下载文件及执行升级服务实例命令
Properties:
regionId: '{{ regionId }}'
instanceId: '{{ ACS::TaskLoopItem }}'
artifactsUrl: '{{ artifactsUrl }}'
artifactsDownloadDirectory: '{{ artifactsDownloadDirectory }}'
commandType: '{{ commandType }}'
commandContent: '{{ commandContent }}'
workingDir: '{{ workingDir }}'
timeout: '{{ timeout }}'
enableParameter: '{{ enableParameter }}'
parameters: '{{ parameters }}'
Loop:
RateControl:
Mode: Concurrency
MaxErrors: 0
Concurrency: 1
Items: '{{ getInstance.instanceIds }}'
Outputs:
commandOutputs:
AggregateType: Fn::ListJoin
AggregateField: commandOutput
Outputs:
commandOutput:
Type: String
ValueSelector: commandOutput
Outputs:
commandOutput:
Type: List
Value: '{{ downloadFileAndRunCommand.commandOutputs }}'