forked from aliyun/oos-templates
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathACS::ECS::InstallCloudAssistant.yml
130 lines (129 loc) · 3.93 KB
/
ACS::ECS::InstallCloudAssistant.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
FormatVersion: OOS-2019-06-01
Description: Installs cloud assistant on ECS instance by specifying instanceId.
Parameters:
regionId:
Description: The ID of region.
Type: String
Default: '{{ ACS::RegionId }}'
instanceId:
Description: The Id of ECS instance you will install cloud assistant.
Type: String
MinLength: 1
MaxLength: 30
Tasks:
- Name: checkInstanceReady
Action: 'ACS::CheckFor'
Description: Checks whether the ECS instance status is running or stopped.
Properties:
Service: ECS
API: DescribeInstances
Parameters:
RegionId: '{{ regionId }}'
InstanceIds:
- '{{ instanceId }}'
DesiredValues:
- Running
PropertySelector: 'Instances.Instance[].Status'
- Name: queryCloudAssistantReady
Action: 'ACS::ExecuteAPI'
Description: Views the cloud assistanat status.
Properties:
Service: ECS
API: DescribeCloudAssistantStatus
Parameters:
RegionId: '{{ regionId }}'
InstanceId:
- '{{ instanceId }}'
Outputs:
cloudAssistantStatus:
Type: String
ValueSelector: >-
InstanceCloudAssistantStatusSet.InstanceCloudAssistantStatus[].CloudAssistantStatus
- Name: whetherCloudAssistantIsReady
Action: 'ACS::Choice'
Description: Choose next task by CloudAssistant status.
Properties:
DefaultTask: waitDataRecover
Choices:
- When:
'Fn::Equals':
- 'true'
- '{{ queryCloudAssistantReady.cloudAssistantStatus }}'
NextTask: waitCloudAssistantStatusReachtrue
- Name: waitDataRecover
Action: 'ACS::Sleep'
Description: Waits data recover.
Properties:
Duration: PT1M
- Name: queryCloudAssistantStatus
Action: 'ACS::ExecuteAPI'
Description: Views the cloud assistanat status.
Properties:
Service: ECS
API: DescribeCloudAssistantStatus
Parameters:
RegionId: '{{ regionId }}'
InstanceId:
- '{{ instanceId }}'
Outputs:
cloudAssistantStatus:
Type: String
ValueSelector: >-
InstanceCloudAssistantStatusSet.InstanceCloudAssistantStatus[].CloudAssistantStatus
- Name: whetherCloudAssistantStatusIsTrue
Action: 'ACS::Choice'
Description: Choose next task by CloudAssistant status.
Properties:
DefaultTask: installCloudAssistant
Choices:
- When:
'Fn::Equals':
- 'true'
- '{{ queryCloudAssistantStatus.cloudAssistantStatus }}'
NextTask: waitCloudAssistantStatusReachtrue
- Name: installCloudAssistant
Action: 'ACS::ExecuteAPI'
Description: Install cloud assistant with specified instance ID.
Properties:
Service: ECS
API: InstallCloudAssistant
Parameters:
RegionId: '{{ regionId }}'
InstanceIds:
- '{{ instanceId }}'
- Name: rebootInstance
Action: 'ACS::ExecuteAPI'
Description: Restarts an ECS instance.
Properties:
Service: ECS
API: RebootInstance
Parameters:
RegionId: '{{ regionId }}'
InstanceId: '{{ instanceId }}'
- Name: untilInstanceReady
Action: 'ACS::WaitFor'
Description: Waits for the instance restart successfully.
Properties:
Service: ECS
API: DescribeInstances
Parameters:
RegionId: '{{ regionId }}'
InstanceIds:
- '{{ instanceId }}'
DesiredValues:
- Running
PropertySelector: 'Instances.Instance[].Status'
- Name: waitCloudAssistantStatusReachtrue
Action: 'ACS::WaitFor'
Description: Wait for the cloud assistant status reach true.
Properties:
Service: ECS
API: DescribeCloudAssistantStatus
Parameters:
RegionId: '{{ regionId }}'
InstanceIds:
- '{{ instanceId }}'
DesiredValues:
- 'true'
PropertySelector: >-
InstanceCloudAssistantStatusSet.InstanceCloudAssistantStatus[].CloudAssistantStatus