forked from aliyun/ros-templates
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ecs-group-vpc.yml
214 lines (214 loc) · 5.6 KB
/
ecs-group-vpc.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
210
211
212
213
214
ROSTemplateFormatVersion: '2015-09-01'
Description:
zh-cn: 创建VPC、VSwitch、安全组及ECS实例,支持实例数量、类型、磁盘、网络等配置。
en: Create VPCs, VSwitches, security groups, and ECS instances, with support for
configuring instance quantities, types, disks, and networks.
Parameters:
ImageId:
Type: String
Label: ECS Image Id
Description: Image Id, represents the image resource to startup the ECS instance,
<a href='#/product/cn-beijing/list/imageList' target='_blank'>View image resources</a>
Default: centos_7
InstanceName:
Type: String
Label: ECS Instance Name
Description: The name of ECS instance
Default: ecsInstance
InstanceType:
Type: String
Label: Ecs Instance type
Description: The ECS instance type, <a href='#/product/cn-beijing/list/typeList'
target='_blank'>View instance types</a>
Default: ecs.c5.large
AllowedValues:
- ecs.c5.large
- ecs.c5.xlarge
- ecs.g5.large
- ecs.g5.xlarge
InternetChargeType:
Type: String
Label: Internet ChargeType
Description: Instance internet access charge type.Support 'PayByBandwidth' and
'PayByTraffic' only.
Default: PayByBandwidth
AllowedValues:
- PayByBandwidth
- PayByTraffic
IoOptimized:
Type: String
Label: Io Optimized
Description: The 'optimized' instance can provide better IO performance. Support
'none' and 'optimized' only, default is 'optimized'.
Default: optimized
AllowedValues:
- none
- optimized
MaxAmount:
Type: Number
Label: The Maximum Of ECS Instances
Description: The maximum of ECS instances, must be greater than or equal to the
minimum.
ConstraintDescription: An integer within [1, 100]
Default: 2
MinValue: 1
MaxValue: 100
Password:
Type: String
Label: ECS Instance Password
Description: The login password of ECS instance
ConstraintDescription: '[8, 30] characters, consists of uppercase letter, lowercase
letter and special characters.'
AllowedPattern: '[a-zA-Z][a-zA-Z0-9]*'
MinLength: 8
MaxLength: 30
NoEcho: true
Confirm: true
SystemDiskCategory:
Type: String
Label: System Disk Category
Description: 'System disk category, allowed values: cloud|cloud_efficiency|cloud_ssd'
Default: cloud_ssd
AllowedValues:
- cloud
- cloud_efficiency
- cloud_ssd
SecurityGroupName:
Type: String
Label: Security Group Name
Description: The security group name
Default: mysg
VpcName:
Type: String
Label: Vpc Name
Description: VPC name
ConstraintDescription: '[2, 128] alphanumeric characters'
Default: myvpc
MinLength: 2
MaxLength: 128
VpcCidrBlock:
Type: String
Label: VPC Cidrblock
Description: |-
The IP address range of the VPC in the CIDR block form. You can use the following IP address ranges and their subnets:
10.0.0.0/8
172.16.0.0/12 (Default)
192.168.0.0/16
Default: 192.168.0.0/16
AllowedValues:
- 192.168.0.0/16
- 172.16.0.0/12
- 10.0.0.0/8
VSwitchName:
Type: String
Label: VSwitch Name
Description: VSwitch name
ConstraintDescription: '[2, 128] alphanumeric characters'
Default: myvsw
MinLength: 2
MaxLength: 128
VSwitchCidrBlock:
Type: String
Label: VSwitch CidrBlock
Description: VSwitch subnet which is within VPC
Default: 192.168.1.0/24
ZoneId:
Type: String
Label: Zone Id
Description: The available zone Id, <a href='#/product/cn-beijing/list/zoneList'
target='_blank'>View zoneid info.
Resources:
Vpc:
Type: ALIYUN::ECS::VPC
Properties:
CidrBlock:
Ref: VpcCidrBlock
VpcName:
Ref: VpcName
VSwitch:
Type: ALIYUN::ECS::VSwitch
Properties:
ZoneId:
Ref: ZoneId
VpcId:
Fn::GetAtt:
- Vpc
- VpcId
CidrBlock:
Ref: VSwitchCidrBlock
VSwitchName:
Ref: VSwitchName
DependsOn: Vpc
securityGroup:
Type: ALIYUN::ECS::SecurityGroup
Properties:
VpcId:
Fn::GetAtt:
- Vpc
- VpcId
SecurityGroupName:
Ref: SecurityGroupName
ecsInstanceGroup:
Type: ALIYUN::ECS::InstanceGroup
Properties:
VpcId:
Fn::GetAtt:
- Vpc
- VpcId
VSwitchId:
Fn::GetAtt:
- VSwitch
- VSwitchId
SecurityGroupId:
Fn::GetAtt:
- securityGroup
- SecurityGroupId
ImageId:
Ref: ImageId
InstanceName:
Ref: InstanceName
InstanceType:
Ref: InstanceType
InternetChargeType:
Ref: InternetChargeType
MaxAmount:
Ref: MaxAmount
MinAmount:
Ref: MaxAmount
IoOptimized:
Ref: IoOptimized
Password:
Ref: Password
SystemDisk_Category:
Ref: SystemDiskCategory
Outputs:
PrivateIps:
Description: Private IP address list of created ecs instance. Only for VPC instance.
Value:
Fn::GetAtt:
- ecsInstanceGroup
- PrivateIps
InstanceIds:
Description: The instance id list of created ecs instance
Value:
Fn::GetAtt:
- ecsInstanceGroup
- InstanceIds
PublicIps:
Description: Public IP address list of created ecs instance.
Value:
Fn::GetAtt:
- ecsInstanceGroup
- PublicIps
ZoneIds:
Description: Zone id of created instance.
Value:
Fn::GetAtt:
- ecsInstanceGroup
- ZoneIds
SecurityGroupId:
Description: generated security group id for security group.
Value:
Fn::GetAtt:
- securityGroup
- SecurityGroupId