All Products
Search
Document Center

Resource Orchestration Service:ALIYUN::ECS::Instance

Last Updated:Feb 11, 2026

The ALIYUN::ECS::Instance resource type creates an Elastic Compute Service (ECS) instance.

Important

This resource is no longer updated. Use the ALIYUN::ECS::InstanceGroup resource instead.

Syntax

{
  "Type": "ALIYUN::ECS::Instance",
  "Properties": {
    "DedicatedHostId": String,
    "Period": Number,
    "AutoRenew": String,
    "RamRoleName": String,
    "IoOptimized": String,
    "InternetChargeType": String,
    "PrivateIpAddress": String,
    "KeyPairName": String,
    "SystemDiskDiskName": String,
    "PeriodUnit": String,
    "Description": String,
    "Tags": List,
    "HostName": String,
    "AutoRenewPeriod": Number,
    "ImageId": String,
    "ResourceGroupId": String,
    "InstanceChargeType": String,
    "VSwitchId": String,
    "Password": String,
    "PasswordInherit": Boolean,
    "InstanceType": String,
    "SystemDiskCategory": String,
    "SubscriptionDeletionForce": Boolean,
    "UserData": String,
    "SystemDiskSize": Number,
    "ZoneId": String,
    "InternetMaxBandwidthOut": Integer,
    "VpcId": String,
    "SpotStrategy": String,
    "InstanceName": String,
    "DeletionProtection": Boolean,
    "DeploymentSetId": String,
    "SecurityGroupIds": List,
    "SecurityGroupId": String,
    "SecurityEnhancementStrategy": String,
    "SpotPriceLimit": String,
    "HpcClusterId": String,
    "AllocatePublicIP": Boolean,
    "SystemDiskDescription": String,
    "SystemDiskPerformanceLevel": String,
    "DiskMappings": List,
    "SpotInterruptionBehavior": String,
    "ZoneIds": List,
    "SpotDuration": Integer,
    "CreditSpecification": String,
    "PrivatePoolOptions": Map,
    "StorageSetId": String,
    "HttpTokens": String,
    "HttpEndpoint": String,
    "Tenancy": String,
    "StorageSetPartitionNumber": Integer,
    "DeploymentSetGroupNo": Integer,
    "Affinity": String,
    "UseAdditionalService": Boolean,
    "ImageFamily": String
  }
}

Properties

Property name

Type

Required

Update allowed

Description

Constraint

ResourceGroupId

String

No

Yes

The ID of the resource group.

None

SpotInterruptionBehavior

String

No

No

The interruption mode for a spot instance.

Only Terminate is supported. This value releases the instance immediately. Terminate is the default value.

ZoneIds

List

No

No

A list of zones.

This property takes effect only when you select parameters in the console.

SpotDuration

Integer

No

No

The retention period for a spot instance.

Valid values: 0 to 6.

Unit: hours.

  • Set the value to 0 to use the no-protection-period pattern.

  • The retention period of 2 to 6 days is in invitational preview. To enable it, submit a ticket.

  • The default value is 1.

SecurityGroupIds

List

No

No

A list of security group IDs.

You can specify either SecurityGroupId or SecurityGroupIds, but not both.

ImageId

String

No

Yes

The image ID. Valid values include public images, custom images, and Alibaba Cloud Marketplace images.

To specify a public image, you can enter a partial image ID instead of the complete image ID. Public images support fuzzy search. For example:

  • Specifying ubuntu matches ubuntu16_0402_64_20G_alibase_20170818.vhd.

  • Specifying ubuntu_14 matches ubuntu_14_0405_64_20G_alibase_20170824.vhd.

  • Specifying ubuntu*14*32 matches ubuntu_14_0405_32_40G_alibase_20170711.vhd.

  • Specifying ubuntu_16_0402_32 matches ubuntu_16_0402_32_40G_alibase_20170711.vhd.

InstanceType

String

Yes

Yes

The ECS instance type.

For more information about ECS instance types, see Instance families.

SecurityGroupId

String

No

No

The security group ID.

You can specify either SecurityGroupId or SecurityGroupIds, but not both.

SecurityEnhancementStrategy

String

No

No

Specifies whether to enable security hardening.

Valid values are:

  • Active: Enable security hardening. This setting applies only to public images.

  • Inactive (default): Do not enable security hardening. This setting applies to all image types.

Description

String

No

Yes

The description.

Length: 2 to 256 characters.

InstanceName

String

No

Yes

The instance name.

The name must be 2 to 128 characters long. It must start with an English letter or a Chinese character and cannot start with http:// or https://. It can contain digits, colons (:), underscores (_), and hyphens (-).

If you leave this property empty, the instance ID is used by default.

Password

String

No

Yes

The logon password for the ECS instance.

Length: 8 to 30 characters. The password must contain at least three of the following character types: uppercase letters, lowercase letters, digits, and special characters. Valid special characters: ( ) ' ~ ! @ # $ % ^ & * - + = | { } [ ] : ; < > , . ? / -. If you specify this property, call the API over HTTPS to prevent password leaks.

PasswordInherit

Boolean

No

No

Specifies whether to use the password preset in the image.

Valid values are:

  • true: Enabled.

  • false (default): Disabled.

Note

Set Password to empty when you use this property. Also, make sure the runtime image that you use has a password configured.

HostName

String

No

Yes

The hostname of the ECS instance.

The hostname must be at least two characters in length. It cannot start or end with a period (.) or hyphen (-), or contain consecutive periods (.) or hyphens (-).

  • For Windows platforms, the name can be up to 15 characters long. It can contain letters, digits, and hyphens (-). The name cannot contain periods (.) or consist only of digits.

  • For other platforms, such as Linux, the name can be up to 30 characters long. It consists of segments separated by periods (.). Each segment can contain letters, digits, and hyphens (-).

AllocatePublicIP

Boolean

No

No

Specifies whether to assign a public IP address.

Value:

  • true (default): Assigns a public IP.

  • false: Does not assign a public IP.

Note

If InternetMaxBandwidthOut is greater than 0, a public IP address is assigned.

PrivateIpAddress

String

No

No

The private IP address in a virtual private cloud (VPC).

The IP address cannot duplicate another instance's IP address in the VPC.

InternetChargeType

String

No

Yes

The billing method for public network access.

Valid values:

  • PayByBandwidth: Pay-by-bandwidth.

  • PayByTraffic (default): Pay-by-data-transfer.

InternetMaxBandwidthOut

Integer

No

Yes

The maximum outbound public bandwidth.

Valid values: 0 to 100.

Default value: 0.

Unit: Mbit/s.

IoOptimized

String

No

No

Specifies whether to create an I/O optimized instance.

Valid values:

  • none: Do not create an I/O optimized instance.

  • optimized (default): Create an I/O optimized instance.

DiskMappings

List

No

Yes

The data disks to attach.

You can specify up to 16 data disks.

For more information, see DiskMappings syntax and DiskMappings properties.

SystemDiskCategory

String

No

Yes

The system disk category.

Valid values are:

  • cloud: basic disk.

  • cloud_ssd: Standard SSD.

  • cloud_efficiency: ultra disk.

  • cloud_essd refers to an enterprise SSD.

  • ephemeral_ssd: local SSD disk.

For non-I/O optimized instances of a retired instance type, the default value is cloud. For instances of other types, the default value is cloud_efficiency.

SystemDiskDescription

String

No

No

The system disk description.

None

SystemDiskDiskName

String

No

No

The system disk name.

Length: 2 to 128 characters. The name must start with a letter or a Chinese character. It cannot start with http:// or https://. It can contain letters, digits, colons (:), underscores (_), and hyphens (-).

SystemDiskSize

Number

No

Yes

The system disk size.

Valid values: 20 to 500.

Unit: GB.

If you use a custom image to create a system disk, you must ensure that the system disk is larger than the custom image size.

Tags

List

No

Yes

The custom tags.

You can specify up to 20 tags. Format: [{"Key": "tagKey", "Value": "tagValue"},{"Key": "tagKey2", "Value": "tagValue2"}].

For more information, see Tags syntax and Tags properties.

UserData

String

No

Yes

The user data passed when creating the ECS instance.

The content must be less than 16 KiB. Do not Base64-encode the content. Escape special characters with backslashes (\).

ZoneId

String

No

No

The zone ID.

None

HpcClusterId

String

No

No

The ID of the HPC cluster to which the instance belongs.

None

VpcId

String

No

No

The virtual private cloud (VPC) ID.

None

VSwitchId

String

No

No

The vSwitch ID.

None

InstanceChargeType

String

No

No

The billing method for the ECS instance.

Valid values are:

  • PrePaid: Subscription. If you specify PrePaid, ensure that your account has a sufficient balance. Otherwise, instance creation fails.

  • PostPaid (default): Pay-as-you-go.

Period

Number

No

No

The billing period.

If InstanceChargeType is PrePaid, Period is required. If InstanceChargeType is PostPaid, Period is optional.

KeyPairName

String

No

Yes

The name of the key pair bound to the ECS instance.

If the instance type is Windows, ignore this property. If the instance type is Linux, password-based logon is disabled during initialization. To improve security, use key pair-based logon.

RamRoleName

String

No

No

The name of the instance RAM role.

For more information, see CreateRole and ListRoles.

SpotPriceLimit

String

No

No

The maximum hourly price for the instance.

Up to three decimal places are supported. This property takes effect only when SpotStrategy is SpotWithPriceLimit.

SpotStrategy

String

No

No

The bidding strategy for a pay-as-you-go instance.

You must specify this property when InstanceChargeType is set to PostPaid.

Values:

  • NoSpot (default): Normal pay-as-you-go instance.

  • SpotWithPriceLimit: Spot instance with an upper price limit.

  • SpotAsPriceGo: The system bids automatically, up to the pay-as-you-go price.

DedicatedHostId

String

No

No

The Dedicated Host on which to create the ECS instance.

You can query the list of Dedicated Host IDs by calling the DescribeDedicatedHosts API.

You cannot create spot instances on Dedicated Hosts. If you specify `DedicatedHostId`, the system automatically ignores the `SpotStrategy` and `SpotPriceLimit` settings in the request.

PeriodUnit

String

No

No

The duration of the purchase.

Valid values are:

  • Week.

  • Month (default)

AutoRenewPeriod

Number

No

No

The duration of each auto-renewal.

AutoRenewPeriod is a required property when AutoRenew is set to True.

Values:

  • If PeriodUnit is Week, AutoRenewPeriod can be 1, 2, or 3.

  • If PeriodUnit is Month, AutoRenewPeriod can be 1, 2, 3, 6, or 12.

AutoRenew

String

No

No

Specifies whether to enable auto-renewal.

Valid values:

  • True: Enable auto-renewal.

  • False (default): Disable auto-renewal.

This property is required when you set the InstanceChargeType property to PrePaid.

DeletionProtection

Boolean

No

Yes

The instance release protection setting. Specifies whether to allow releasing the instance through the console or the DeleteInstance operation.

Values:

  • true: Enable instance release protection.

  • false (default): Disable instance release protection.

Note

This property applies only to pay-as-you-go instances. It restricts only manual release operations. It does not affect system-initiated release operations.

DeploymentSetId

String

No

No

The deployment set ID.

None

SystemDiskPerformanceLevel

String

No

Yes

You can set the performance level when you create an enterprise SSD as a system disk.

Valid values:

  • PL0: Maximum random read/write IOPS per single disk is 10,000.

  • PL1 (default value): Maximum random read/write IOPS per single disk is 50,000.

  • PL2: Maximum random read/write IOPS per single disk is 100,000.

  • PL3: Maximum random read/write IOPS per single disk is 1,000,000.

For more information about how to select an ESSD performance level, see Enterprise SSDs.

CreditSpecification

String

No

Yes

The running mode for a burstable instance.

Valid values:

PrivatePoolOptions

Map

No

No

The private pool capacity options for instance startup.

For more information, see PrivatePoolOptions properties.

StorageSetId

String

No

No

The storage set ID.

None

HttpTokens

String

No

Yes

Specifies whether to enforce the hardened mode (IMDSv2) when accessing instance metadata.

Valid values are:

  • optional (default): Not enforced.

  • required: Enforced. If set, NAT mode cannot access instance metadata.

Note

For information about patterns for accessing instance metadata, see Instance metadata.

SubscriptionDeletionForce

Boolean

No

No

This property applies only to subscription instances. If this property is true, the instance converts to a pay-as-you-go instance before deletion. If this property is false, forced deletion does not occur. This action incurs additional fees. Use caution.

None

HttpEndpoint

String

No

Yes

Specifies whether to enable the instance metadata endpoint.

Valid values include the following:

  • Enabled (default): Enables the feature.

  • Disabled: Disables the feature.

Note

For more information about instance metadata, see Instance Metadata.

Tenancy

String

No

No

Specifies whether to create the instance on a Dedicated Host.

Valid values are:

  • default: Create a regular instance.

  • host: Create a Dedicated Host instance. If you do not specify a DedicatedHostId, Alibaba Cloud automatically selects a Dedicated Host to place the instance.

StorageSetPartitionNumber

Integer

No

No

The maximum number of partitions in the storage set.

Valid values: integers greater than or equal to 2.

DeploymentSetGroupNo

Integer

No

No

If the deployment set uses the AvailabilityGroup policy, use this parameter to specify the group number of the instance in the deployment set.

Valid values: 1 to 7.

Affinity

String

No

No

Specifies whether the Dedicated Host instance is associated with the Dedicated Host.

Valid values:

  • default: The instance is not associated with a Dedicated Host. When a stopped instance with economical mode enabled is restarted, it is moved to a different Dedicated Host in the automatic deployment resource pool if the original host lacks sufficient resources.

  • host: The instance is associated with a Dedicated Host. When a stopped instance with economical mode enabled is restarted, it remains on the original Dedicated Host. If the original host lacks sufficient resources, the restart fails.

UseAdditionalService

Boolean

No

No

Specifies whether to use Alibaba Cloud-provided VM system configurations (Windows: NTP and KMS; Linux: NTP and YUM).

Valid values are:

  • true

  • false

ImageFamily

String

No

No

The image family name.

You can specify this parameter to query the latest available image that belongs to the current image family and use the image to create an instance.

  • If you set the ImageId parameter, do not set this parameter.

  • If you do not set the ImageId parameter, but the launch template specified by LaunchTemplateId or LaunchTemplateName has ImageId set, do not set this parameter.

  • If you do not set ImageId, and the launch template specified by LaunchTemplateId or LaunchTemplateName does not have ImageId set, you can set this parameter.

  • If you do not set ImageId, and you do not set LaunchTemplateId or LaunchTemplateName, you can set this parameter.

Note

For information about the image families associated with Alibaba Cloud Images, see public image.

DiskMappings syntax

"DiskMappings": [
  {
    "Category": String,
    "DiskName": String,
    "Description": String,
    "Device": String,
    "SnapshotId": String,
    "PerformanceLevel": String,
    "Size": String
  }
]

DiskMappings properties

Property name

Type

Required

Update allowed

Description

Constraint

Size

String

Yes

No

The data disk size.

Valid range: 20 to 500.

Unit: GB.

Category

String

No

No

The data disk category.

Valid values are:

  • Cloud: basic disk.

  • cloud_ssd: Standard SSD.

  • cloud_essd is an enterprise SSD.

  • cloud_efficiency: ultra disk

  • ephemeral_ssd: local SSD

For I/O optimized instances, the default value is cloud_efficiency. For non-I/O optimized instances, the default value is cloud.

If a custom image contains a data disk, you can set the Category property to the data disk category that you want to use in an ROS template when you create an ECS instance. For example:

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Resources": {
    "Instance": {
      "Type": "ALIYUN::ECS::Instance",
      "Properties": {
        "InstanceName": "rostest",
        "ImageId": "m-2ze5ysugu8ss7nxr****",
        "InstanceType": "ecs.g6e.large",
        "Password": "Ros1****",
        "IoOptimized": "optimized",
        "VSwitchId": "vsw-2zej7phc6euuelo8l****",
        "VpcId": "vpc-2zebbi27bn7w42n30****",
        "SecurityGroupId": "sg-2ze5bdyyg7sfrcv6****",
        "SystemDiskCategory": "cloud_essd",
        "DiskMappings": [
          {
            "Category": "cloud_essd",
            "Size": 40,
            "Device": "/dev/xvdb"
          }
        ]
      }
    }
  }
}
                                

DiskName

String

No

No

The data disk name.

Length: 2 to 128 characters. The name must start with a letter or a Chinese character. It cannot start with http:// or https://. It can contain letters, Chinese characters, digits, underscores (_), colons (:), and hyphens (-).

Description

String

No

No

The description.

Length: 2 to 256 characters. The description cannot start with http:// or https://.

Device

String

No

No

The mount target.

None

PerformanceLevel

String

No

No

The performance level of an enterprise SSD used as the data disk.

Valid values are:

  • PL1 (default): Up to 50,000 random read/write IOPS per disk.

  • PL2: Up to 100,000 random read/write IOPS per disk.

  • PL3: Up to 1,000,000 random read/write IOPS per disk.

For information about how to select an ESSD performance level, see enterprise SSD.

SnapshotId

String

No

No

The snapshot ID used for the data disk.

None

Tags syntax

"Tags": [
  {
    "Value": String,
    "Key": String
  }
]

Tags properties

Property name

Type

Required

Update allowed

Description

Constraint

Key

String

Yes

No

The tag key.

Length: 1 to 128 characters. The key cannot start with aliyun or acs:. It cannot contain http:// or https://.

Value

String

No

No

The tag value.

Length: 0 to 128 characters. The value cannot start with aliyun or acs:. It cannot contain http:// or https://.

PrivatePoolOptions syntax

"PrivatePoolOptions": [
  {
    "Id": String,
    "MatchCriteria": String
  }
]

PrivatePoolOptions properties

Property name

Type

Required

Update allowed

Description

Constraint

Id

String

No

No

The private pool ID. This is the ID of the elastic guarantee service or capacity reservation service.

None

MatchCriteria

String

No

No

After the elastic guarantee service or capacity reservation service becomes effective, it generates private pool capacity for instance startup.

Valid values:

  • Open: Launch instances using available capacity from private pools that match your criteria. If no matching private pool capacity is available, Alibaba Cloud uses public pool resources instead. Do not set the PrivatePoolOptions.Id parameter in this mode.

  • Target: Launch instances using a specific private pool. If the specified private pool is unavailable, the instance launch fails. Set the PrivatePoolOptions.Id parameter in this mode.

  • None (default): Do not use private pool capacity. Instances launch using only public pool resources.

In any of the following scenarios, the private pool capacity option for an instance launch can only be set to None or be omitted.

  • Create a spot instance.

  • Create an ECS instance of the classic network type.

  • Create an ECS instance on a Dedicated Host (DDH).

Return values

Fn::GetAtt

  • InstanceId: The instance ID. This is a globally unique identifier generated by the system.

  • PrivateIp: The private IP address of a VPC-type instance.

  • InnerIp: The internal IP address of a classic-type instance.

  • PublicIp: The public IP address of a classic-type instance.

  • ZoneId: The zone ID.

  • HostName: The hostname of the ECS instance.

  • PrimaryNetworkInterfaceId: The primary NIC ID.

  • SecurityGroupIds: A list of security group IDs for the created instance.

Examples

Scenario 1: Create two ECS instances and enable passwordless logon.

Quick create

ROSTemplateFormatVersion: '2015-09-01'
Description: Creates VPC ECS instance
Metadata: {}
Parameters:
  VpcId:
    AssociationProperty: ALIYUN::ECS::VPC::VPCId
    Type: String
    Description:
      en: Please search the ID starting with (vpc-xxx) from console-Virtual Private Cloud
      zh-cn: Existing virtual private cloud (VPC) ID
    Label:
      en: VPC ID
      zh-cn: Virtual private cloud (VPC) ID
  VSwitchZoneId:
    AssociationProperty: ALIYUN::ECS::Instance:ZoneId
    Type: String
    Description:
      zh-cn: Zone ID.
<b>Note: <font color='blue'>Before selecting, confirm that the zone supports the ECS instance type. We recommend selecting a different zone than other vSwitches.</font>
en: Availability Zone ID.
<b>Note: <font color='blue'>Before selecting, confirm that the Availability Zone supports the ECS instance type. We recommend selecting a different zone than other vSwitches.</font>

Label:

zh-cn: vSwitch zone

en: vSwitch Availability Zone

VSwitchId:

AssociationProperty: ALIYUN::ECS::VSwitch::VSwitchId

AssociationPropertyMetadata:

VpcId: ${VpcId}

ZoneId: ${VSwitchZoneId}

Type: String

Description:

en: Existing vSwitch ID, found in console-Virtual Private Cloud-vSwitches

zh-cn: Existing vSwitch ID

Label:

en: vSwitch ID

zh-cn: vSwitch ID

SecurityGroupId:

Type: String

AssociationProperty: ALIYUN::ECS::SecurityGroup::SecurityGroupId

AssociationPropertyMetadata:

VpcId: ${VpcId}

Description:

en: Business security group ID starting with (sg-xxx), found in console-ECS-Network & Security

zh-cn: Existing business security group ID

Label:

en: Business Security Group ID

zh-cn: Business Security Group ID

InstanceType:

Type: String

Description:

zh-cn: Instance type available in the vSwitch zone.

en: Instance type available in the vSwitch availability zone.

Label:

zh-cn: Instance type

en: Instance Type

AssociationProperty: ALIYUN::ECS::Instance::InstanceType

AssociationPropertyMetadata:

ZoneId: ${VSwitchZoneId}

SystemDiskCategory:

Type: String

AssociationProperty: ALIYUN::ECS::Disk::SystemDiskCategory

AssociationPropertyMetadata:

ZoneId: ${VSwitchZoneId}

InstanceType: ${InstanceType}

Label:

en: System Disk Type

zh-cn: System disk type

Description:

en: '<font color=''blue''>Optional values:</font>
[cloud_efficiency: <font color=''green''>Efficient Cloud Disk</font>]<br>[cloud_ssd: <font color=''green''>SSD Cloud Disk</font>]<br>[cloud_essd: <font color=''green''>ESSD Cloud Disk</font>]<br>[cloud: <font color=''green''>Cloud Disk</font>]<br>[ephemeral_ssd: <font color=''green''>Local SSD Cloud Disk</font>]'

zh-cn: '<font color=''blue''><b>Optional values:</font><br>[cloud_efficiency: <font color=''green''>Efficient Cloud Disk</font>]<br>[cloud_ssd: <font color=''green''>SSD Cloud Disk</font>]<br>[cloud_essd: <font color=''green''>ESSD Cloud Disk</font>]<br>[cloud: <font color=''green''>Cloud Disk</font>]<br>[ephemeral_ssd: <font color=''green''>Local SSD Cloud Disk</font>]'

SystemDiskSize:

Default: 40

Type: Number

Description:

zh-cn: System disk size. Valid values: 40 to 500. Unit: GiB.

en: 'System disk size, range of values: 40-500, units: GiB.'

Label:

zh-cn: System disk space

en: System Disk Space

Resources:

OpsEcsInstance:

Type: ALIYUN::ECS::Instance

Properties:

HostName: OpsEcsInstance

UserData:

Fn::Sub:

- |

#!/bin/bash

RootPassword=${RootPassword}

ProdIP=${ProdIP}

SSHConfig() {

echo '[ ! -f /root/.ssh/id_rsa.pub ] && ssh-keygen -t rsa -P "" -f ~/.ssh/id_rsa &>/dev/null' >> /tmp/auto_ssh.sh

echo 'while read line;do' >> /tmp/auto_ssh.sh

echo ' ip=`echo $line | cut -d " " -f1`' >> /tmp/auto_ssh.sh

echo ' user_name=`echo $line | cut -d " " -f2`' >> /tmp/auto_ssh.sh

echo ' pass_word=`echo $line | cut -d " " -f3`' >> /tmp/auto_ssh.sh

echo 'expect <<EOF' >> /tmp/auto_ssh.sh

echo ' spawn ssh-copy-id -i /root/.ssh/id_rsa.pub $user_name@$ip' >> /tmp/auto_ssh.sh

echo ' expect {' >> /tmp/auto_ssh.sh

echo ' "yes/no" { send "yes\n";exp_continue}' >> /tmp/auto_ssh.sh

echo ' "password" { send "$pass_word\n"}' >> /tmp/auto_ssh.sh

echo ' }' >> /tmp/auto_ssh.sh

echo ' expect eof' >> /tmp/auto_ssh.sh

echo 'EOF' >> /tmp/auto_ssh.sh

echo 'done < /tmp/host_ip.txt' >> /tmp/auto_ssh.sh

}

SetHostsConfig() {

echo "`ifconfig eth0 | awk '/inet /{print $2}'` root ${RootPassword}" >> /tmp/host_ip.txt

echo "${ProdIP} root ${RootPassword}" >> /tmp/host_ip.txt

sh /tmp/auto_ssh.sh

}

main() {

yum install -y expect

SSHConfig

SetHostsConfig

rm -rf /tmp/host_ip.txt

}

main

- ProdIP:

Fn::GetAtt:

- ProdEcsInstance

- PrivateIp

RootPassword: Admin@123!

VpcId:

Ref: VpcId

SecurityGroupId:

Ref: SecurityGroupId

VSwitchId:

Ref: VSwitchId

ImageId: centos_7

AllocatePublicIP: false

InstanceType:

Ref: InstanceType

SystemDiskSize: 40

SystemDiskCategory:

Ref: SystemDiskCategory

Password: Admin@123!

ProdEcsInstance:

Type: ALIYUN::ECS::Instance

Properties:

HostName: ProdEcsInstance

SystemDiskCategory:

Ref: SystemDiskCategory

VpcId:

Ref: VpcId

SecurityGroupId:

Ref: SecurityGroupId

SystemDiskSize: 40

ImageId: centos_7

VSwitchId:

Ref: VSwitchId

Password: Admin@123!

InstanceType:

Ref: InstanceType

AllocatePublicIP: false

Outputs: {}
{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Description": "Creates VPC ECS instance",
  "Metadata": {},
  "Parameters": {
    "VpcId": {
      "AssociationProperty": "ALIYUN::ECS::VPC::VPCId",
      "Type": "String",
      "Description": {
        "en": "Please search the ID starting with (vpc-xxx) from console-Virtual Private Cloud",
        "zh-cn": "Existing virtual private cloud (VPC) ID"
      },
      "Label": {
        "en": "VPC ID",
        "zh-cn": "Virtual private cloud (VPC) ID"
      }
    },
    "VSwitchZoneId": {
      "AssociationProperty": "ALIYUN::ECS::Instance:ZoneId",
      "Type": "String",
      "Description": {
        "zh-cn": "Zone ID.
<b>Note: <font color='blue'>Before selecting, confirm that the zone supports the ECS instance type. We recommend selecting a different zone than other vSwitches.</font>",
"en": "Availability Zone ID.
<b>Note: <font color='blue'>Before selecting, confirm that the Availability Zone supports the ECS instance type. We recommend selecting a different zone than other vSwitches.</font>"

},

"Label": {

"zh-cn": "vSwitch zone",

"en": "vSwitch Availability Zone"

}

},

"VSwitchId": {

"AssociationProperty": "ALIYUN::ECS::VSwitch::VSwitchId",

"AssociationPropertyMetadata": {

"VpcId": "${VpcId}",

"ZoneId": "${VSwitchZoneId}"

},

"Type": "String",

"Description": {

"en": "Existing vSwitch ID, found in console-Virtual Private Cloud-vSwitches",

"zh-cn": "Existing vSwitch ID"

},

"Label": {

"en": "vSwitch ID",

"zh-cn": "vSwitch ID"

}

},

"SecurityGroupId": {

"Type": "String",

"AssociationProperty": "ALIYUN::ECS::SecurityGroup::SecurityGroupId",

"AssociationPropertyMetadata": {

"VpcId": "${VpcId}"

},

"Description": {

"en": "Business security group ID starting with (sg-xxx), found in console-ECS-Network & Security",

"zh-cn": "Existing business security group ID"

},

"Label": {

"en": "Business Security Group ID",

"zh-cn": "Business Security Group ID"

}

},

"InstanceType": {

"Type": "String",

"Description": {

"zh-cn": "Instance type available in the vSwitch zone.",

"en": "Instance type available in the vSwitch availability zone."

},

"Label": {

"zh-cn": "Instance type",

"en": "Instance Type"

},

"AssociationProperty": "ALIYUN::ECS::Instance::InstanceType",

"AssociationPropertyMetadata": {

"ZoneId": "${VSwitchZoneId}"

}

},

"SystemDiskCategory": {

"Type": "String",

"AssociationProperty": "ALIYUN::ECS::Disk::SystemDiskCategory",

"AssociationPropertyMetadata": {

"ZoneId": "${VSwitchZoneId}",

"InstanceType": "${InstanceType}"

},

"Label": {

"en": "System Disk Type",

"zh-cn": "System disk type"

},

"Description": {

"en": "<font color='blue'>Optional values:</font>
[cloud_efficiency: <font color='green'>Efficient Cloud Disk</font>]<br>[cloud_ssd: <font color='green'>SSD Cloud Disk</font>]<br>[cloud_essd: <font color='green'>ESSD Cloud Disk</font>]<br>[cloud: <font color='green'>Cloud Disk</font>]<br>[ephemeral_ssd: <font color='green'>Local SSD Cloud Disk</font>]",

"zh-cn": "<font color='blue'><b>Optional values:</font><br>[cloud_efficiency: <font color='green'>Efficient Cloud Disk</font>]<br>[cloud_ssd: <font color='green'>SSD Cloud Disk</font>]<br>[cloud_essd: <font color='green'>ESSD Cloud Disk</font>]<br>[cloud: <font color='green'>Cloud Disk</font>]<br>[ephemeral_ssd: <font color='green'>Local SSD Cloud Disk</font>]"

}

},

"SystemDiskSize": {

"Default": 40,

"Type": "Number",

"Description": {

"zh-cn": "System disk size. Valid values: 40 to 500. Unit: GiB.",

"en": "System disk size, range of values: 40-500, units: GiB."

},

"Label": {

"zh-cn": "System disk space",

"en": "System Disk Space"

}

}

},

"Resources": {

"OpsEcsInstance": {

"Type": "ALIYUN::ECS::Instance",

"Properties": {

"HostName": "OpsEcsInstance",

"UserData": {

"Fn::Sub": [

"#!/bin/bash\nRootPassword=${RootPassword}\nProdIP=${ProdIP}\nSSHConfig() {\necho '[ ! -f /root/.ssh/id_rsa.pub ] && ssh-keygen -t rsa -P \"\" -f ~/.ssh/id_rsa &>/dev/null' >> /tmp/auto_ssh.sh\necho 'while read line;do' >> /tmp/auto_ssh.sh\necho ' ip=`echo $line | cut -d \" \" -f1`' >> /tmp/auto_ssh.sh\necho ' user_name=`echo $line | cut -d \" \" -f2`' >> /tmp/auto_ssh.sh\necho ' pass_word=`echo $line | cut -d \" \" -f3`' >> /tmp/auto_ssh.sh\necho 'expect <<EOF' >> /tmp/auto_ssh.sh\necho ' spawn ssh-copy-id -i /root/.ssh/id_rsa.pub $user_name@$ip' >> /tmp/auto_ssh.sh\necho ' expect {' >> /tmp/auto_ssh.sh\necho ' \"yes/no\" { send \"yes\\n\";exp_continue}' >> /tmp/auto_ssh.sh\necho ' \"password\" { send \"$pass_word\\n\"}' >> /tmp/auto_ssh.sh\necho ' }' >> /tmp/auto_ssh.sh\necho ' expect eof' >> /tmp/auto_ssh.sh\necho 'EOF' >> /tmp/auto_ssh.sh\necho 'done < /tmp/host_ip.txt' >> /tmp/auto_ssh.sh\n}\nSetHostsConfig() {\necho \"`ifconfig eth0 | awk '/inet /{print $2}'` root ${RootPassword}\" >> /tmp/host_ip.txt\necho \"${ProdIP} root ${RootPassword}\" >> /tmp/host_ip.txt\nsh /tmp/auto_ssh.sh\n}\nmain() {\nyum install -y expect\nSSHConfig\nSetHostsConfig\nrm -rf /tmp/host_ip.txt\n}\nmain\n",

{

"ProdIP": {

"Fn::GetAtt": [

"ProdEcsInstance",

"PrivateIp"

]

},

"RootPassword": "Admin@123!"

}

]

},

"VpcId": {

"Ref": "VpcId"

},

"SecurityGroupId": {

"Ref": "SecurityGroupId"

},

"VSwitchId": {

"Ref": "VSwitchId"

},

"ImageId": "centos_7",

"AllocatePublicIP": false,

"InstanceType": {

"Ref": "InstanceType"

},

"SystemDiskSize": 40,

"SystemDiskCategory": {

"Ref": "SystemDiskCategory"

},

"Password": "Admin@123!"

}

},

"ProdEcsInstance": {

"Type": "ALIYUN::ECS::Instance",

"Properties": {

"HostName": "ProdEcsInstance",

"SystemDiskCategory": {

"Ref": "SystemDiskCategory"

},

"VpcId": {

"Ref": "VpcId"

},

"SecurityGroupId": {

"Ref": "SecurityGroupId"

},

"SystemDiskSize": 40,

"ImageId": "centos_7",

"VSwitchId": {

"Ref": "VSwitchId"

},

"Password": "Admin@123!",

"InstanceType": {

"Ref": "InstanceType"

},

"AllocatePublicIP": false

}

}

},

"Outputs": {}

}

Scenario 2: Create an ECS instance with multiple private IP addresses.

Quick create

ROSTemplateFormatVersion: '2015-09-01'
Description:
  zh-cn: Create an ECS instance, configure VPC, security group, multiple IP addresses, system disk and network interface, and support customizing instance specifications, mirroring and network settings.
  en: Create an ECS instance, configure VPC, security group, multiple IP addresses, system disk and network interface, and support customizing instance specifications, mirroring and network settings.
Parameters:
  EcsInstanceType:
    AssociationProperty: ALIYUN::ECS::Instance::InstanceType
    AssociationPropertyMetadata:
      ZoneId: VSwitchZoneId
    Type: String
    Description:
      zh-cn: <font color='blue'>1. Before selecting the instance type, confirm that it is available in the current zone. Some instance types require advance registration.</font>
<font color='blue'><b>2. Available instance types</font><br></font>[ecs.c5.large <font color='green'>2 vCPUs, 4 GiB memory, 1 Gbit/s intranet bandwidth, 300,000 PPS</font>]
[ecs.c5.xlarge <font color='green'>4 vCPUs, 8 GiB memory, 1.5 Gbit/s intranet bandwidth, 500,000 PPS</font>]
[ecs.c5.2xlarge <font color='green'>8 vCPUs, 16 GiB memory, 2.5 Gbit/s intranet bandwidth, 800,000 PPS</font>]

en: <font color='blue'>1. Before selecting the instance type, confirm that it is available in the current zone. Some instance types require advance registration.</font>
<font color='blue'><b>2. Available instance types</font><br></font>[ecs.c5.large <font color='green'>2 vCPUs, 4 GiB memory, 1 Gbit/s intranet bandwidth, 300,000 PPS</font>]
[ecs.c5.xlarge <font color='green'>4 vCPUs, 8 GiB memory, 1.5 Gbit/s intranet bandwidth, 500,000 PPS</font>]
[ecs.c5.2xlarge <font color='green'>8 vCPUs, 16 GiB memory, 2.5 Gbit/s intranet bandwidth, 800,000 PPS</font>]



Label:



zh-cn: Instance type



en: Instance Type



VSwitchZoneId:



AssociationProperty: ALIYUN::ECS::Instance:ZoneId



Type: String



Description:



zh-cn: Zone ID.
<b>Note: <font color='blue'>Before selecting, confirm that the zone supports the ECS instance type.</font>




en: Availability Zone ID.
<b>Note: <font color='blue'>Before selecting, confirm that the Availability Zone supports the ECS instance type.</font>





Label:





zh-cn: vSwitch zone





en: vSwitch Availability Zone





EcsSystemDiskSize:





Default: 40





Type: Number





Description:





zh-cn: System disk size. Valid values: 40 to 500. Unit: GiB.





en: 'System disk size, range of values: 40-500, units: GiB.'





Label:





zh-cn: System disk space





en: System Disk Space





EcsPassword:





Description:





zh-cn: Server logon password. Length: 8 to 30 characters. Must contain three of the following: uppercase letters, lowercase letters, digits, and special characters ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/.





en: Server logon password. Length: 8 to 30 characters. Must contain three of the following: uppercase letters, lowercase letters, digits, and special characters ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/.





Type: String





Label:





zh-cn: Instance password





en: Instance Password





NoEcho: true





AssociationProperty: ALIYUN::ECS::Instance::Password





ConstraintDescription:





zh-cn: Length: 8 to 30 characters. Must contain three of the following: uppercase letters, lowercase letters, digits, and special characters ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/.





en: Length: 8 to 30 characters. Must contain three of the following: uppercase letters, lowercase letters, digits, and special characters ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/.





EcsImageId:





AssociationPropertyMetadata:





InstanceType: ${EcsInstanceType}





SupportedImageOwnerAlias:





- system





- self





- others





Description:





zh-cn: Image ID. See: <a href='https://www.alibabacloud.com/help/document_detail/112977.html' target='_blank'><font color='blue'>Find the image</font></a>





en: 'Image ID. See detail: <a href=''https://www.alibabacloud.com/help/doc-detail/112977.html'' target=''_blank''><font color=''blue''>Find the mirror</font></a>'





Default: centos_7_04_64_20G_alibase_201701015.vhd





Label:





zh-cn: Image ID





en: Image ID





AssociationProperty: ALIYUN::ECS::Image::ImageId





Type: String





EcsSystemDiskCategory:





AssociationProperty: ALIYUN::ECS::Disk::SystemDiskCategory





AssociationPropertyMetadata:





LocaleKey: DiskCategory





InstanceType: ${EcsInstanceType}





Type: String





Description:





zh-cn: '<font color=''blue''>Optional values:</font>
[cloud_efficiency: <font color=''green''>Efficient Cloud Disk</font>]<br>[cloud_ssd: <font color=''green''>SSD Cloud Disk</font>]<br>[cloud_essd: <font color=''green''>ESSD Cloud Disk</font>]<br>[cloud: <font color=''green''>Cloud Disk</font>]<br>[ephemeral_ssd: <font color=''green''>Local SSD Cloud Disk</font>]'





en: '<font color=''blue''><b>Optional values:</font><br>[cloud_efficiency: <font color=''green''>Efficient Cloud Disk</font>]<br>[cloud_ssd: <font color=''green''>SSD Cloud Disk</font>]<br>[cloud_essd: <font color=''green''>ESSD Cloud Disk</font>]<br>[cloud: <font color=''green''>Cloud Disk</font>]<br>[ephemeral_ssd: <font color=''green''>Local SSD Cloud Disk</font>]'





Label:





zh-cn: System disk type





en: System Disk Type





IpAddressCount:





Description:





zh-cn: Valid values: 1 to 9.





en: 'Allowed values: 1~9.'





Default: 1





MaxValue: 9





MinValue: 1





Label:





zh-cn: Number of IPv4 addresses for the network interface





en: Number of IPv4 Network Card





Type: Number





Outputs:





InstanceId:





Value:





Ref: EcsInstance





EIP:





Value:





Fn::GetAtt:





- Eip





- EipAddress





PrimaryPrivateIPAddress:





Value:





Fn::GetAtt:





- EcsInstance





- PrivateIp





AddPrivateIPAddressList:





Value:





Fn::GetAtt:





- EcsAssignPrivateIpAddresses





- PrivateIpAddresses





Resources:





EcsAssignPrivateIpAddresses:





Type: ALIYUN::ECS::AssignPrivateIpAddresses





Properties:





NetworkInterfaceId:





Ref: EcsENI





SecondaryPrivateIpAddressCount:





Ref: IpAddressCount





DependsOn:





- EcsENI





EcsENI:





Type: ALIYUN::ECS::NetworkInterface





Properties:





SecurityGroupId:





Ref: EcsSecurityGroup





VSwitchId:





Ref: EcsVSwitch





EcsSecurityGroup:





Type: ALIYUN::ECS::SecurityGroup





Properties:





VpcId:





Ref: EcsVpc





SecurityGroupName:





Fn::Join:





- _





- - StackId





- Ref: ALIYUN::StackId





Eip:





Type: ALIYUN::VPC::EIP





Properties:





InternetChargeType: PayByTraffic





InstanceChargeType: Postpaid





EcsVSwitch:





Type: ALIYUN::ECS::VSwitch





Properties:





VSwitchName:





Fn::Join:





- _





- - StackId





- Ref: ALIYUN::StackId





VpcId:





Ref: EcsVpc





CidrBlock: 192.168.0.0/24





ZoneId:





Ref: VSwitchZoneId





EcsEniAttachment:





Type: ALIYUN::ECS::NetworkInterfaceAttachment





Properties:





InstanceId:





Ref: EcsInstance





NetworkInterfaceId:





Ref: EcsENI





DependsOn:





- EcsInstance





- EipAssociation





EcsInstance:





Type: ALIYUN::ECS::Instance





Properties:





SystemDiskCategory:





Ref: EcsSystemDiskCategory





VpcId:





Ref: EcsVpc





SecurityGroupId:





Ref: EcsSecurityGroup





SystemDiskSize:





Ref: EcsSystemDiskSize





ImageId:





Ref: EcsImageId





AllocatePublicIP: false





InstanceChargeType: Postpaid





VSwitchId:





Ref: EcsVSwitch





IoOptimized: optimized





Password:





Ref: EcsPassword





InstanceType:





Ref: EcsInstanceType





EcsVpc:





Type: ALIYUN::ECS::VPC





Properties:





VpcName:





Fn::Join:





- '-'





- - StackId





- Ref: ALIYUN::StackId





CidrBlock: 192.168.0.0/16





EipAssociation:





Type: ALIYUN::VPC::EIPAssociation





Properties:





InstanceId:





Ref: EcsENI





AllocationId:





Ref: Eip





Mode: NAT





DependsOn:





- EcsAssignPrivateIpAddresses





- Eip





Metadata:





ALIYUN::ROS::Interface:





ParameterGroups:





- Parameters:





- VSwitchZoneId





- IpAddressCount





Label:





default:





zh-cn: Virtual private cloud (VPC)





en: VPC





- Parameters:





- EcsInstanceType





- EcsImageId





- EcsSystemDiskCategory





- EcsSystemDiskSize





- EcsPassword





Label:





default:





zh-cn: ECS configuration





en: ECS





{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Description": {
    "zh-cn": "Create an ECS instance, configure VPC, security group, multiple IP addresses, system disk and network interface, and support customizing instance specifications, mirroring and network settings.",
    "en": "Create an ECS instance, configure VPC, security group, multiple IP addresses, system disk and network interface, and support customizing instance specifications, mirroring and network settings."
  },
  "Parameters": {
    "EcsInstanceType": {
      "AssociationProperty": "ALIYUN::ECS::Instance::InstanceType",
      "AssociationPropertyMetadata": {
        "ZoneId": "VSwitchZoneId"
      },
      "Type": "String",
      "Description": {
        "zh-cn": "<font color='blue'>1. Before selecting the instance type, confirm that it is available in the current zone. Some instance types require advance registration.</font>
<font color='blue'><b>2. Available instance types</font><br></font>[ecs.c5.large <font color='green'>2 vCPUs, 4 GiB memory, 1 Gbit/s intranet bandwidth, 300,000 PPS</font>]
[ecs.c5.xlarge <font color='green'>4 vCPUs, 8 GiB memory, 1.5 Gbit/s intranet bandwidth, 500,000 PPS</font>]
[ecs.c5.2xlarge <font color='green'>8 vCPUs, 16 GiB memory, 2.5 Gbit/s intranet bandwidth, 800,000 PPS</font>]",

"en": "<font color='blue'>1. Before selecting the instance type, confirm that it is available in the current zone. Some instance types require advance registration.</font>
<font color='blue'><b>2. Available instance types</font><br></font>[ecs.c5.large <font color='green'>2 vCPUs, 4 GiB memory, 1 Gbit/s intranet bandwidth, 300,000 PPS</font>]
[ecs.c5.xlarge <font color='green'>4 vCPUs, 8 GiB memory, 1.5 Gbit/s intranet bandwidth, 500,000 PPS</font>]
[ecs.c5.2xlarge <font color='green'>8 vCPUs, 16 GiB memory, 2.5 Gbit/s intranet bandwidth, 800,000 PPS</font>]"



},



"Label": {



"zh-cn": "Instance type",



"en": "Instance Type"



}



},



"VSwitchZoneId": {



"AssociationProperty": "ALIYUN::ECS::Instance:ZoneId",



"Type": "String",



"Description": {



"zh-cn": "Zone ID.
<b>Note: <font color='blue'>Before selecting, confirm that the zone supports the ECS instance type.</font>",




"en": "Availability Zone ID.
<b>Note: <font color='blue'>Before selecting, confirm that the Availability Zone supports the ECS instance type.</font>"





},





"Label": {





"zh-cn": "vSwitch zone",





"en": "vSwitch Availability Zone"





}





},





"EcsSystemDiskSize": {





"Default": 40,





"Type": "Number",





"Description": {





"zh-cn": "System disk size. Valid values: 40 to 500. Unit: GiB.",





"en": "System disk size, range of values: 40-500, units: GiB."





},





"Label": {





"zh-cn": "System disk space",





"en": "System Disk Space"





}





},





"EcsPassword": {





"Description": {





"zh-cn": "Server logon password. Length: 8 to 30 characters. Must contain three of the following: uppercase letters, lowercase letters, digits, and special characters ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/.",





"en": "Server logon password. Length: 8 to 30 characters. Must contain three of the following: uppercase letters, lowercase letters, digits, and special characters ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/."





},





"Type": "String",





"Label": {





"zh-cn": "Instance password",





"en": "Instance Password"





},





"NoEcho": true,





"AssociationProperty": "ALIYUN::ECS::Instance::Password",





"ConstraintDescription": {





"zh-cn": "Length: 8 to 30 characters. Must contain three of the following: uppercase letters, lowercase letters, digits, and special characters ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/.",





"en": "Length: 8 to 30 characters. Must contain three of the following: uppercase letters, lowercase letters, digits, and special characters ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/."





}





},





"EcsImageId": {





"AssociationPropertyMetadata": {





"InstanceType": "${EcsInstanceType}",





"SupportedImageOwnerAlias": [





"system",





"self",





"others"





]





},





"Description": {





"zh-cn": "Image ID. See: <a href='https://www.alibabacloud.com/help/document_detail/112977.html' target='_blank'><font color='blue'>Find the image</font></a>",





"en": "Image ID. See detail: <a href='https://www.alibabacloud.com/help/doc-detail/112977.html' target='_blank'><font color='blue'>Find the mirror</font></a>"





},





"Default": "centos_7_04_64_20G_alibase_201701015.vhd",





"Label": {





"zh-cn": "Image ID",





"en": "Image ID"





},





"AssociationProperty": "ALIYUN::ECS::Image::ImageId",





"Type": "String"





},





"EcsSystemDiskCategory": {





"AssociationProperty": "ALIYUN::ECS::Disk::SystemDiskCategory",





"AssociationPropertyMetadata": {





"LocaleKey": "DiskCategory",





"InstanceType": "${EcsInstanceType}"





},





"Type": "String",





"Description": {





"zh-cn": "<font color='blue'>Optional values:</font>
[cloud_efficiency: <font color='green'>Efficient Cloud Disk</font>]<br>[cloud_ssd: <font color='green'>SSD Cloud Disk</font>]<br>[cloud_essd: <font color='green'>ESSD Cloud Disk</font>]<br>[cloud: <font color='green'>Cloud Disk</font>]<br>[ephemeral_ssd: <font color='green'>Local SSD Cloud Disk</font>]",





"en": "<font color='blue'><b>Optional values:</font><br>[cloud_efficiency: <font color='green'>Efficient Cloud Disk</font>]<br>[cloud_ssd: <font color='green'>SSD Cloud Disk</font>]<br>[cloud_essd: <font color='green'>ESSD Cloud Disk</font>]<br>[cloud: <font color='green'>Cloud Disk</font>]<br>[ephemeral_ssd: <font color='green'>Local SSD Cloud Disk</font>]"





},





"Label": {





"zh-cn": "System disk type",





"en": "System Disk Type"





}





},





"IpAddressCount": {





"Description": {





"zh-cn": "Valid values: 1 to 9.",





"en": "Allowed values: 1~9."





},





"Default": 1,





"MaxValue": 9,





"MinValue": 1,





"Label": {





"zh-cn": "Number of IPv4 addresses for the network interface",





"en": "Number of IPv4 Network Card"





},





"Type": "Number"





}





},





"Outputs": {





"InstanceId": {





"Value": {





"Ref": "EcsInstance"





}





},





"EIP": {





"Value": {





"Fn::GetAtt": [





"Eip",





"EipAddress"





]





}





},





"PrimaryPrivateIPAddress": {





"Value": {





"Fn::GetAtt": [





"EcsInstance",





"PrivateIp"





]





}





},





"AddPrivateIPAddressList": {





"Value": {





"Fn::GetAtt": [





"EcsAssignPrivateIpAddresses",





"PrivateIpAddresses"





]





}





}





},





"Resources": {





"EcsAssignPrivateIpAddresses": {





"Type": "ALIYUN::ECS::AssignPrivateIpAddresses",





"Properties": {





"NetworkInterfaceId": {





"Ref": "EcsENI"





},





"SecondaryPrivateIpAddressCount": {





"Ref": "IpAddressCount"





}





},





"DependsOn": [





"EcsENI"





]





},





"EcsENI": {





"Type": "ALIYUN::ECS::NetworkInterface",





"Properties": {





"SecurityGroupId": {





"Ref": "EcsSecurityGroup"





},





"VSwitchId": {





"Ref": "EcsVSwitch"





}





}





},





"EcsSecurityGroup": {





"Type": "ALIYUN::ECS::SecurityGroup",





"Properties": {





"VpcId": {





"Ref": "EcsVpc"





},





"SecurityGroupName": {





"Fn::Join": [





"_",





[





"StackId",





{





"Ref": "ALIYUN::StackId"





}





]





]





}





}





},





"Eip": {





"Type": "ALIYUN::VPC::EIP",





"Properties": {





"InternetChargeType": "PayByTraffic",





"InstanceChargeType": "Postpaid"





}





},





"EcsVSwitch": {





"Type": "ALIYUN::ECS::VSwitch",





"Properties": {





"VSwitchName": {





"Fn::Join": [





"_",





[





"StackId",





{





"Ref": "ALIYUN::StackId"





}





]





]





},





"VpcId": {





"Ref": "EcsVpc"





},





"CidrBlock": "192.168.0.0/24",





"ZoneId": {





"Ref": "VSwitchZoneId"





}





}





},





"EcsEniAttachment": {





"Type": "ALIYUN::ECS::NetworkInterfaceAttachment",





"Properties": {





"InstanceId": {





"Ref": "EcsInstance"





},





"NetworkInterfaceId": {





"Ref": "EcsENI"





}





},





"DependsOn": [





"EcsInstance",





"EipAssociation"





]





},





"EcsInstance": {





"Type": "ALIYUN::ECS::Instance",





"Properties": {





"SystemDiskCategory": {





"Ref": "EcsSystemDiskCategory"





},





"VpcId": {





"Ref": "EcsVpc"





},





"SecurityGroupId": {





"Ref": "EcsSecurityGroup"





},





"SystemDiskSize": {





"Ref": "EcsSystemDiskSize"





},





"ImageId": {





"Ref": "EcsImageId"





},





"AllocatePublicIP": false,





"InstanceChargeType": "Postpaid",





"VSwitchId": {





"Ref": "EcsVSwitch"





},





"IoOptimized": "optimized",





"Password": {





"Ref": "EcsPassword"





},





"InstanceType": {





"Ref": "EcsInstanceType"





}





}





},





"EcsVpc": {





"Type": "ALIYUN::ECS::VPC",





"Properties": {





"VpcName": {





"Fn::Join": [





"-",





[





"StackId",





{





"Ref": "ALIYUN::StackId"





}





]





]





},





"CidrBlock": "192.168.0.0/16"





}





},





"EipAssociation": {





"Type": "ALIYUN::VPC::EIPAssociation",





"Properties": {





"InstanceId": {





"Ref": "EcsENI"





},





"AllocationId": {





"Ref": "Eip"





},





"Mode": "NAT"





},





"DependsOn": [





"EcsAssignPrivateIpAddresses",





"Eip"





]





}





},





"Metadata": {





"ALIYUN::ROS::Interface": {





"ParameterGroups": [





{





"Parameters": [





"VSwitchZoneId",





"IpAddressCount"





],





"Label": {





"default": {





"zh-cn": "Virtual private cloud (VPC)",





"en": "VPC"





}





}





},





{





"Parameters": [





"EcsInstanceType",





"EcsImageId",





"EcsSystemDiskCategory",





"EcsSystemDiskSize",





"EcsPassword"





],





"Label": {





"default": {





"zh-cn": "ECS configuration",





"en": "ECS"





}





}





}





]





}





}





}

Scenario 3: Create an ECS instance and an Elastic IP Address (EIP), and attach multiple data disks.

Quick create

ROSTemplateFormatVersion: '2015-09-01'
Description:
  zh-cn: Create an ECS instance, configure Elastic IP Address (EIP), attach 2 data disks, and set network environment and security group rules.
  en: Create an ECS instance, configure elastic IP, mount 2 data disks, and set network environment and security group rules.
Parameters:
  FirstDataDiskCategory:
    AssociationProperty: ALIYUN::ECS::Disk::DataDiskCategory
    AssociationPropertyMetadata:
      InstanceType: ${InstanceType}
      ZoneId: ${ZoneId}
    Type: String
    Label:
      zh-cn: Category of data disk 1
      en: First Data Disk Category
  SystemDiskCategory:
    AssociationProperty: ALIYUN::ECS::Disk::SystemDiskCategory
    AssociationPropertyMetadata:
      InstanceType: InstanceType
ZoneId: ZoneId
    Type: String
    Label:
      zh-cn: System disk type
      en: System Disk Type
  SecondDataDiskSize:
    Default: 40
    Type: Number
    Description:
      zh-cn: The size of the second data disk, in GiB. Value range: cloud:[5, 2000], cloud_efficiency:[20, 32768], cloud_ssd:[20, 32768], ephemeral_ssd:[5, 800]. The value must be equal to or greater than the specific snapshot size.
      en: 'The size of the second data disk, in GiB. Value range: cloud: [5, 2000], cloud_efficiency: [20, 32768], cloud_ssd: [20, 32768], ephemeral_ssd: [5, 800]. The value must be equal to or greater than the specific snapshot size.'
    Label:
      zh-cn: Size of data disk 2
      en: Second Data Disk Size
  SystemDiskSize:
    Default: 40
    Type: Number
    Description:
      zh-cn: The size of the system disk, in GiB. Value range: cloud:[5, 2000], cloud_efficiency:[20, 32768], cloud_ssd:[20, 32768], ephemeral_ssd:[5, 800]. The value must be equal to or greater than the specific snapshot size.
      en: 'The size of the system disk, in GiB. Value range: cloud: [5, 2000], cloud_efficiency: [20, 32768], cloud_ssd: [20, 32768], ephemeral_ssd: [5, 800]. The value must be equal to or greater than the specific snapshot size.'
    Label:
      zh-cn: System disk size
      en: System Disk Space
  VpcCidrBlock:
    Default: 192.168.0.0/16
    Label:
      zh-cn: VPC CIDR block
      en: VPC CIDR Block
    Type: String
    Description:
      zh-cn: The CIDR block for the new VPC. We recommend using one of the following CIDR blocks:
<font color='green'>[10.0.0.0/8]</font><br><font color='green'>[172.16.0.0/12]</font><br><font color='green'>[192.168.0.0/16]</font>
en: The CIDR block for the new VPC. We recommend using one of the following CIDR blocks:<br><font color='green'>[10.0.0.0/8]</font><br><font color='green'>[172.16.0.0/12]</font><br><font color='green'>[192.168.0.0/16]</font>
AllowedValues:
- 192.168.0.0/16
- 172.16.0.0/12
- 10.0.0.0/8
FirstDataDiskSize:
Default: 40
Type: Number
Description:
zh-cn: The size of the first data disk, in GiB. Value range: cloud:[5, 2000], cloud_efficiency:[20, 32768], cloud_ssd:[20, 32768], ephemeral_ssd:[5, 800]. The value must be equal to or greater than the specific snapshot size.
en: 'The size of the first data disk, in GiB. Value range: cloud: [5, 2000], cloud_efficiency: [20, 32768], cloud_ssd: [20, 32768], ephemeral_ssd: [5, 800]. The value must be equal to or greater than the specific snapshot size.'
Label:
zh-cn: Capacity of data disk 1
en: First Data Disk Size
SecondDataDiskCategory:
AssociationProperty: ALIYUN::ECS::Disk::DataDiskCategory
AssociationPropertyMetadata:
InstanceType: ${InstanceType}
ZoneId: ${ZoneId}
Type: String
Label:
zh-cn: Category of data disk 2
en: Second Data Disk Category
VSwitchCidrBlock:
Default: 192.168.0.0/24
Type: String
Description:
zh-cn: The CIDR block for the new vSwitch. This is a subnet of the VPC.
en: The CIDR block for the new vSwitch. This is a subnet of the VPC.
Label:
zh-cn: vSwitch CIDR block
en: VSwitch CIDR Block
Password:
ConstraintDescription:
zh-cn: Length: 8 to 30 characters. Must contain at least three of the following: uppercase letters, lowercase letters, digits, and special characters. Special characters include the following: ()`~!@#$%^&*_-+=|{}[]:;' <>,.?/
en: 'Length: 8 to 30 characters. Must contain at least three of the following: uppercase letters, lowercase letters, digits, and special characters. Special characters include the following: ()`~!@#$%^&*_-+=|{}[]:;''<>,.?/'
Description:
zh-cn: The server logon password. Length: 8 to 30 characters. Must contain at least three of the following: uppercase letters, lowercase letters, digits, and special characters from ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/.
en: The server logon password. Length: 8 to 30 characters. Must contain at least three of the following: uppercase letters, lowercase letters, digits, and special characters from ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/.
MinLength: 8
Label:
zh-cn: Instance password
en: Instance Password
AllowedPattern: '[a-zA-Z0-9-\(\)\`\~\!@\#\$%\^&\*-+=\|\{\}\[\]\:\;\‘\,\.\?\/]*'
NoEcho: true
MaxLength: 30
Type: String
InstanceType:
AssociationProperty: ALIYUN::ECS::Instance::InstanceType
AssociationPropertyMetadata:
ZoneId: ZoneId
Type: String
Description:
zh-cn: <font color='blue'><b>1. Before selecting the instance type, confirm that it is available in the current zone. Some instance types require advance registration.</font>
<font color='blue'><b>2. Available instance types</font><br></font>[ecs.c5.large <font color='green'>2 vCPUs, 4 GiB memory, 1 Gbit/s internal bandwidth, 300,000 PPS</font>]
[ecs.c5.xlarge <font color='green'>4 vCPUs, 8 GiB memory, 1.5 Gbit/s internal bandwidth, 500,000 PPS</font>]
[ecs.c5.2xlarge <font color='green'>8 vCPUs, 16 GiB memory, 2.5 Gbit/s internal bandwidth, 800,000 PPS</font>]



en: <font color='blue'>1. Before selecting the instance type, confirm that it is available in the current zone. Some instance types require advance registration.</font>
<font color='blue'><b>2. Available instance types</font><br></font>[ecs.c5.large <font color='green'>2 vCPUs, 4 GiB memory, 1 Gbit/s internal bandwidth, 300,000 PPS</font>]
[ecs.c5.xlarge <font color='green'>4 vCPUs, 8 GiB memory, 1.5 Gbit/s internal bandwidth, 500,000 PPS</font>]
[ecs.c5.2xlarge <font color='green'>8 vCPUs, 16 GiB memory, 2.5 Gbit/s internal bandwidth, 800,000 PPS</font>]





Label:





zh-cn: Instance type





en: Instance Type





ZoneId:





AssociationProperty: ALIYUN::ECS::Instance:ZoneId





Type: String





Description:





zh-cn: Availability Zone ID.
<b>Note: <font color='blue'>Before selecting, confirm that the Availability Zone supports the ECS instance type. We recommend selecting a different zone than other vSwitches.</font>






en: Availability Zone ID.
<b>Note: <font color='blue'>Before selecting, confirm that the Availability Zone supports the ECS instance type. We recommend selecting a different zone than other vSwitches.</font>







Label:







zh-cn: vSwitch zone







en: VSwitch Availability Zone







ImageId:







AssociationPropertyMetadata:







InstanceType: ${InstanceType}







SupportedImageOwnerAlias:







- system







- self







- others







Description:







zh-cn: Image ID. For more information, see <a href='https://www.alibabacloud.com/help/document_detail/112977.html' target='_blank'><font color='blue'>Find an image</font></a>







en: Image ID. For more information, see <a href='https://www.alibabacloud.com/help/doc-detail/112977.html' target='_blank'><font color='blue'>Find an image</font></a>







Default: centos_7_04_64_20G_alibase_201701015.vhd







Label:







zh-cn: Image ID







en: Image ID







AssociationProperty: ALIYUN::ECS::Image::ImageId







Type: String







Outputs:







VpcId:







Description: Id of created VPC.







Value:







Fn::GetAtt:







- Vpc







- VpcId







InstanceId:







Description: The instance id of created ecs instance.







Value:







Fn::GetAtt:







- WebServer







- InstanceId







SecurityGroupId:







Description: generated security group id for security group.







Value:







Fn::GetAtt:







- SecurityGroup







- SecurityGroupId







EipId:







Description: ID that Aliyun assigns to represent the allocation of the address for use with VPC. Returned only for VPC elastic IP addresses.







Value:







Fn::GetAtt:







- Eip







- AllocationId







ZoneId:







Description: Zone ID of created instance.







Value:







Fn::GetAtt:







- WebServer







- ZoneId







VSwitchId:







Description: Id of created VSwitch.







Value:







Fn::GetAtt:







- VSwitch







- VSwitchId







Resources:







EIPBind:







Type: ALIYUN::VPC::EIPAssociation







Properties:







InstanceId:







Ref: WebServer







AllocationId:







Ref: Eip







Metadata:







ALIYUN::ROS::Designer:







id: ece3b051-66c9-46d6-9961-f184d342b21f







Eip:







Type: ALIYUN::VPC::EIP







Properties:







InternetChargeType: PayByTraffic







Bandwidth: 1







Metadata:







ALIYUN::ROS::Designer:







id: a914d36e-d429-46d6-bbd0-a22acd07b096







SecurityGroupEgress:







Type: ALIYUN::ECS::SecurityGroupEgress







Properties:







DestCidrIp: 0.0.0.0/0







IpProtocol: all







SecurityGroupId:







Ref: SecurityGroup







NicType: intranet







PortRange: '-1/-1'







Metadata:







ALIYUN::ROS::Designer:







id: faa26b3c-3507-41e9-9959-5db9a9e67446







SecurityGroup:







Type: ALIYUN::ECS::SecurityGroup







Properties:







VpcId:







Ref: Vpc







Metadata:







ALIYUN::ROS::Designer:







id: fde92bb4-877d-4e7b-b9dd-be6f5e552544







SecurityGroupIngress:







Type: ALIYUN::ECS::SecurityGroupIngress







Properties:







IpProtocol: all







SecurityGroupId:







Ref: SecurityGroup







NicType: intranet







SourceCidrIp: 0.0.0.0/0







PortRange: '-1/-1'







Metadata:







ALIYUN::ROS::Designer:







id: 2a6cfdef-e236-4966-a976-dd7e7bbc37a5







WebServer:







Type: ALIYUN::ECS::Instance







Properties:







UserData:







Fn::Join:







- ''







- - |







#!/bin/sh







- |







logs=~/mount_logs







- |







i=1







- |







total=2







- |







while [ $i -le $total ]







- |







do







- |2







disk_suffix=`echo $i|awk '{printf "%c", 97+$i}'`







- |







fdisk -S 56 /dev/vd$disk_suffix <<ESXU







- |







n







- |







p







- |







1







- |+















- |+















- |







w







- |







ESXU







- |2







echo "/dev/vd$disk_suffix is fdisked!" >> $logs







- |2







mkfs.ext4 /dev/vd${disk_suffix}1







- |2







if [ $? -eq 0 ];then







- |2







echo "/dev/vd${disk_suffix}1 is formated!" >> $logs







- |2







fi







- |2







touch ~/test_ftab







- |2







mkdir $disk_suffix$i







- |2







disk_uuid=`blkid | grep /dev/vd${disk_suffix}1 |awk '{printf $2}'|sed 's/\"//g'`







- |







cat << ESXU > ~/test_ftab







- |







$disk_uuid $disk_suffix$i ext4 defaults 0 0







- |







ESXU







- |2







cat ~/test_ftab >> /etc/fstab







- |2







mount -a







- |2







chmod -R 777 $disk_suffix$i







- |2







rm -rf ~/test_ftab







- |2







echo "/dev/vd${disk_suffix}1 is mounted!" >> $logs







- |2







let i+=1







- |







done







SystemDiskCategory:







Ref: SystemDiskCategory







VpcId:







Ref: Vpc







SecurityGroupId:







Ref: SecurityGroup







SystemDiskSize:







Ref: SystemDiskSize







ImageId:







Ref: ImageId







AllocatePublicIP: 'false'







VSwitchId:







Ref: VSwitch







IoOptimized: optimized







Password:







Ref: Password







DiskMappings:







- Category:







Ref: FirstDataDiskCategory







Size:







Ref: FirstDataDiskSize







- Category:







Ref: SecondDataDiskCategory







Size:







Ref: SecondDataDiskSize







InstanceType:







Ref: InstanceType







Metadata:







ALIYUN::ROS::Designer:







id: 4f476130-0cde-4cff-a973-2cb026e18f13







Vpc:







Type: ALIYUN::ECS::VPC







Properties:







CidrBlock:







Ref: VpcCidrBlock







Metadata:







ALIYUN::ROS::Designer:







id: adfdd097-9c30-49ff-8738-ae3b59eada43







VSwitch:







Type: ALIYUN::ECS::VSwitch







Properties:







VpcId:







Fn::GetAtt:







- Vpc







- VpcId







CidrBlock:







Ref: VSwitchCidrBlock







ZoneId:







Ref: ZoneId







Metadata:







ALIYUN::ROS::Designer:







id: bd814869-3bd7-4551-a5db-0ec7ad3d3246







Metadata:







ALIYUN::ROS::Interface:







ParameterGroups:







- Parameters:







- ZoneId







- VpcCidrBlock







- VSwitchCidrBlock







Label:







default:







zh-cn: Infrastructure Configuration (Required)







en: Infrastructure Configuration







- Parameters:







- InstanceType







- ImageId







- Password







Label:







default:







zh-cn: ECS Configuration (Required)







en: ECS Configuration







- Parameters:







- SystemDiskSize







- SystemDiskCategory







- FirstDataDiskSize







- FirstDataDiskCategory







- SecondDataDiskSize







- SecondDataDiskCategory







Label:







default:







zh-cn: ECS Disk Configuration (Required)







en: ECS Disk Configuration







{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Description": {
    "zh-cn": "Create an ECS instance, configure an Elastic IP Address (EIP), attach two data disks, and set up the network environment and security group rules.",
    "en": "Create an ECS instance, configure an Elastic IP Address (EIP), attach two data disks, and set up the network environment and security group rules."
  },
  "Parameters": {
    "FirstDataDiskCategory": {
      "AssociationProperty": "ALIYUN::ECS::Disk::DataDiskCategory",
      "AssociationPropertyMetadata": {
        "InstanceType": "${InstanceType}",
        "ZoneId": "${ZoneId}"
      },
      "Type": "String",
      "Label": {
        "zh-cn": "Category of data disk 1",
        "en": "First Data Disk Category"
      }
    },
    "SystemDiskCategory": {
      "AssociationProperty": "ALIYUN::ECS::Disk::SystemDiskCategory",
      "AssociationPropertyMetadata": {
        "InstanceType": "InstanceType",
        "ZoneId": "ZoneId"
      },
      "Type": "String",
      "Label": {
        "zh-cn": "System disk type",
        "en": "System Disk Type"
      }
    },
    "SecondDataDiskSize": {
      "Default": 40,
      "Type": "Number",
      "Description": {
        "zh-cn": "The size of the second data disk, in GiB. Value range: cloud:[5, 2000], cloud_efficiency:[20, 32768], cloud_ssd:[20, 32768], ephemeral_ssd:[5, 800]. The value must be equal to or greater than the specific snapshot size.",
        "en": "The size of the second data disk, in GiB. Value range: cloud: [5, 2000], cloud_efficiency: [20, 32768], cloud_ssd: [20, 32768], ephemeral_ssd: [5, 800]. The value must be equal to or greater than the specific snapshot size."
      },
      "Label": {
        "zh-cn": "Size of data disk 2",
        "en": "Second Data Disk Size"
      }
    },
    "SystemDiskSize": {
      "Default": 40,
      "Type": "Number",
      "Description": {
        "zh-cn": "The size of the system disk, in GiB. Value range: cloud:[5, 2000], cloud_efficiency:[20, 32768], cloud_ssd:[20, 32768], ephemeral_ssd:[5, 800]. The value must be equal to or greater than the specific snapshot size.",
        "en": "The size of the system disk, in GiB. Value range: cloud: [5, 2000], cloud_efficiency: [20, 32768], cloud_ssd: [20, 32768], ephemeral_ssd: [5, 800]. The value must be equal to or greater than the specific snapshot size."
      },
      "Label": {
        "zh-cn": "System disk size",
        "en": "System Disk Space"
      }
    },
    "VpcCidrBlock": {
      "Default": "192.168.0.0/16",
      "Label": {
        "zh-cn": "VPC CIDR block",
        "en": "VPC CIDR Block"
      },
      "Type": "String",
      "Description": {
        "zh-cn": "The CIDR block for the new VPC. We recommend using one of the following CIDR blocks:
<font color='green'>[10.0.0.0/8]</font><br><font color='green'>[172.16.0.0/12]</font><br><font color='green'>[192.168.0.0/16]</font>",
"en": "The CIDR block for the new VPC. We recommend using one of the following CIDR blocks:<br><font color='green'>[10.0.0.0/8]</font><br><font color='green'>[172.16.0.0/12]</font><br><font color='green'>[192.168.0.0/16]</font>"
},
"AllowedValues": [
"192.168.0.0/16",
"172.16.0.0/12",
"10.0.0.0/8"
]
},
"FirstDataDiskSize": {
"Default": 40,
"Type": "Number",
"Description": {
"zh-cn": "The size of the first data disk, in GiB. Value range: cloud:[5, 2000], cloud_efficiency:[20, 32768], cloud_ssd:[20, 32768], ephemeral_ssd:[5, 800]. The value must be equal to or greater than the specific snapshot size.",
"en": "The size of the first data disk, in GiB. Value range: cloud: [5, 2000], cloud_efficiency: [20, 32768], cloud_ssd: [20, 32768], ephemeral_ssd: [5, 800]. The value must be equal to or greater than the specific snapshot size."
},
"Label": {
"zh-cn": "Capacity of data disk 1",
"en": "First Data Disk Size"
}
},
"SecondDataDiskCategory": {
"AssociationProperty": "ALIYUN::ECS::Disk::DataDiskCategory",
"AssociationPropertyMetadata": {
"InstanceType": "${InstanceType}",
"ZoneId": "${ZoneId}"
},
"Type": "String",
"Label": {
"zh-cn": "Category of data disk 2",
"en": "Second Data Disk Category"
}
},
"VSwitchCidrBlock": {
"Default": "192.168.0.0/24",
"Type": "String",
"Description": {
"zh-cn": "The CIDR block for the new vSwitch. This is a subnet of the VPC.",
"en": "The CIDR block for the new vSwitch. This is a subnet of the VPC."
},
"Label": {
"zh-cn": "vSwitch CIDR block",
"en": "VSwitch CIDR Block"
}
},
"Password": {
"ConstraintDescription": {
"zh-cn": "Length: 8 to 30 characters. Must contain at least three of the following: uppercase letters, lowercase letters, digits, and special characters. Special characters include the following: ()`~!@#$%^&*_-+=|{}[]:;' <>,.?/",
"en": "Length: 8 to 30 characters. Must contain at least three of the following: uppercase letters, lowercase letters, digits, and special characters. Special characters include the following: ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/"
},
"Description": {
"zh-cn": "The server logon password. Length: 8 to 30 characters. Must contain at least three of the following: uppercase letters, lowercase letters, digits, and special characters from ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/.",
"en": "The server logon password. Length: 8 to 30 characters. Must contain at least three of the following: uppercase letters, lowercase letters, digits, and special characters from ()`~!@#$%^&*_-+=|{}[]:;'<>,.?/."
},
"MinLength": 8,
"Label": {
"zh-cn": "Instance password",
"en": "Instance Password"
},
"AllowedPattern": "[a-zA-Z0-9-\\(\\)\\`\\~\\!@\\#\\$%\\^&\\*-+=\\|\\{\\}\\[\\]\\:\\;\\‘\\,\\.\\?\\/]*",
"NoEcho": true,
"MaxLength": 30,
"Type": "String"
},
"InstanceType": {
"AssociationProperty": "ALIYUN::ECS::Instance::InstanceType",
"AssociationPropertyMetadata": {
"ZoneId": "ZoneId"
},
"Type": "String",
"Description": {
"zh-cn": "<font color='blue'><b>1. Before selecting the instance type, confirm that it is available in the current zone. Some instance types require advance registration.</font>
<font color='blue'><b>2. Available instance types</font><br></font>[ecs.c5.large <font color='green'>2 vCPUs, 4 GiB memory, 1 Gbit/s internal bandwidth, 300,000 PPS</font>]
[ecs.c5.xlarge <font color='green'>4 vCPUs, 8 GiB memory, 1.5 Gbit/s internal bandwidth, 500,000 PPS</font>]
[ecs.c5.2xlarge <font color='green'>8 vCPUs, 16 GiB memory, 2.5 Gbit/s internal bandwidth, 800,000 PPS</font>]",



"en": "<font color='blue'>1. Before selecting the instance type, confirm that it is available in the current zone. Some instance types require advance registration.</font>
<font color='blue'><b>2. Available instance types</font><br></font>[ecs.c5.large <font color='green'>2 vCPUs, 4 GiB memory, 1 Gbit/s internal bandwidth, 300,000 PPS</font>]
[ecs.c5.xlarge <font color='green'>4 vCPUs, 8 GiB memory, 1.5 Gbit/s internal bandwidth, 500,000 PPS</font>]
[ecs.c5.2xlarge <font color='green'>8 vCPUs, 16 GiB memory, 2.5 Gbit/s internal bandwidth, 800,000 PPS</font>]"





},





"Label": {





"zh-cn": "Instance type",





"en": "Instance Type"





}





},





"ZoneId": {





"AssociationProperty": "ALIYUN::ECS::Instance:ZoneId",





"Type": "String",





"Description": {





"zh-cn": "Availability Zone ID.
<b>Note: <font color='blue'>Before selecting, confirm that the Availability Zone supports the ECS instance type. We recommend selecting a different zone than other vSwitches.</font>",






"en": "Availability Zone ID.
<b>Note: <font color='blue'>Before selecting, confirm that the Availability Zone supports the ECS instance type. We recommend selecting a different zone than other vSwitches.</font>"







},







"Label": {







"zh-cn": "vSwitch zone",







"en": "VSwitch Availability Zone"







}







},







"ImageId": {







"AssociationPropertyMetadata": {







"InstanceType": "${InstanceType}",







"SupportedImageOwnerAlias": [







"system",







"self",







"others"







]







},







"Description": {







"zh-cn": "Image ID. For more information, see <a href='https://www.alibabacloud.com/help/document_detail/112977.html' target='_blank'><font color='blue'>Find an image</font></a>",







"en": "Image ID. For more information, see <a href='https://www.alibabacloud.com/help/doc-detail/112977.html' target='_blank'><font color='blue'>Find an image</font></a>"







},







"Default": "centos_7_04_64_20G_alibase_201701015.vhd",







"Label": {







"zh-cn": "Image ID",







"en": "Image ID"







},







"AssociationProperty": "ALIYUN::ECS::Image::ImageId",







"Type": "String"







}







},







"Outputs": {







"VpcId": {







"Description": "Id of created VPC.",







"Value": {







"Fn::GetAtt": [







"Vpc",







"VpcId"







]







}







},







"InstanceId": {







"Description": "The instance id of created ecs instance.",







"Value": {







"Fn::GetAtt": [







"WebServer",







"InstanceId"







]







}







},







"SecurityGroupId": {







"Description": "generated security group id for security group.",







"Value": {







"Fn::GetAtt": [







"SecurityGroup",







"SecurityGroupId"







]







}







},







"EipId": {







"Description": "ID that Aliyun assigns to represent the allocation of the address for use with VPC. Returned only for VPC elastic IP addresses.",







"Value": {







"Fn::GetAtt": [







"Eip",







"AllocationId"







]







}







},







"ZoneId": {







"Description": "Zone ID of created instance.",







"Value": {







"Fn::GetAtt": [







"WebServer",







"ZoneId"







]







}







},







"VSwitchId": {







"Description": "Id of created VSwitch.",







"Value": {







"Fn::GetAtt": [







"VSwitch",







"VSwitchId"







]







}







}







},







"Resources": {







"EIPBind": {







"Type": "ALIYUN::VPC::EIPAssociation",







"Properties": {







"InstanceId": {







"Ref": "WebServer"







},







"AllocationId": {







"Ref": "Eip"







}







},







"Metadata": {







"ALIYUN::ROS::Designer": {







"id": "ece3b051-66c9-46d6-9961-f184d342b21f"







}







}







},







"Eip": {







"Type": "ALIYUN::VPC::EIP",







"Properties": {







"InternetChargeType": "PayByTraffic",







"Bandwidth": 1







},







"Metadata": {







"ALIYUN::ROS::Designer": {







"id": "a914d36e-d429-46d6-bbd0-a22acd07b096"







}







}







},







"SecurityGroupEgress": {







"Type": "ALIYUN::ECS::SecurityGroupEgress",







"Properties": {







"DestCidrIp": "0.0.0.0/0",







"IpProtocol": "all",







"SecurityGroupId": {







"Ref": "SecurityGroup"







},







"NicType": "intranet",







"PortRange": "-1/-1"







},







"Metadata": {







"ALIYUN::ROS::Designer": {







"id": "faa26b3c-3507-41e9-9959-5db9a9e67446"







}







}







},







"SecurityGroup": {







"Type": "ALIYUN::ECS::SecurityGroup",







"Properties": {







"VpcId": {







"Ref": "Vpc"







}







},







"Metadata": {







"ALIYUN::ROS::Designer": {







"id": "fde92bb4-877d-4e7b-b9dd-be6f5e552544"







}







}







},







"SecurityGroupIngress": {







"Type": "ALIYUN::ECS::SecurityGroupIngress",







"Properties": {







"IpProtocol": "all",







"SecurityGroupId": {







"Ref": "SecurityGroup"







},







"NicType": "intranet",







"SourceCidrIp": "0.0.0.0/0",







"PortRange": "-1/-1"







},







"Metadata": {







"ALIYUN::ROS::Designer": {







"id": "2a6cfdef-e236-4966-a976-dd7e7bbc37a5"







}







}







},







"WebServer": {







"Type": "ALIYUN::ECS::Instance",







"Properties": {







"UserData": {







"Fn::Join": [







"",







[







"#!/bin/sh\n",







"logs=~/mount_logs\n",







"i=1\n",







"total=2\n",







"while [ $i -le $total ]\n",







"do\n",







" disk_suffix=`echo $i|awk '{printf \"%c\", 97+$i}'`\n",







"fdisk -S 56 /dev/vd$disk_suffix <<ESXU\n",







"n\n",







"p\n",







"1\n",







"\n",







"\n",







"w\n",







"ESXU\n",







" echo \"/dev/vd$disk_suffix is fdisked!\" >> $logs\n",







" mkfs.ext4 /dev/vd${disk_suffix}1\n",







" if [ $? -eq 0 ];then\n",







" echo \"/dev/vd${disk_suffix}1 is formated!\" >> $logs\n",







" fi\n",







" touch ~/test_ftab\n",







" mkdir $disk_suffix$i\n",







" disk_uuid=`blkid | grep /dev/vd${disk_suffix}1 |awk '{printf $2}'|sed 's/\\\"//g'`\n",







"cat << ESXU > ~/test_ftab\n",







"$disk_uuid $disk_suffix$i ext4 defaults 0 0\n",







"ESXU\n",







" cat ~/test_ftab >> /etc/fstab\n",







" mount -a\n",







" chmod -R 777 $disk_suffix$i\n",







" rm -rf ~/test_ftab\n",







" echo \"/dev/vd${disk_suffix}1 is mounted!\" >> $logs\n",







" let i+=1\n",







"done\n"







]







]







},







"SystemDiskCategory": {







"Ref": "SystemDiskCategory"







},







"VpcId": {







"Ref": "Vpc"







},







"SecurityGroupId": {







"Ref": "SecurityGroup"







},







"SystemDiskSize": {







"Ref": "SystemDiskSize"







},







"ImageId": {







"Ref": "ImageId"







},







"AllocatePublicIP": "false",







"VSwitchId": {







"Ref": "VSwitch"







},







"IoOptimized": "optimized",







"Password": {







"Ref": "Password"







},







"DiskMappings": [







{







"Category": {







"Ref": "FirstDataDiskCategory"







},







"Size": {







"Ref": "FirstDataDiskSize"







}







},







{







"Category": {







"Ref": "SecondDataDiskCategory"







},







"Size": {







"Ref": "SecondDataDiskSize"







}







}







],







"InstanceType": {







"Ref": "InstanceType"







}







},







"Metadata": {







"ALIYUN::ROS::Designer": {







"id": "4f476130-0cde-4cff-a973-2cb026e18f13"







}







}







},







"Vpc": {







"Type": "ALIYUN::ECS::VPC",







"Properties": {







"CidrBlock": {







"Ref": "VpcCidrBlock"







}







},







"Metadata": {







"ALIYUN::ROS::Designer": {







"id": "adfdd097-9c30-49ff-8738-ae3b59eada43"







}







}







},







"VSwitch": {







"Type": "ALIYUN::ECS::VSwitch",







"Properties": {







"VpcId": {







"Fn::GetAtt": [







"Vpc",







"VpcId"







]







},







"CidrBlock": {







"Ref": "VSwitchCidrBlock"







},







"ZoneId": {







"Ref": "ZoneId"







}







},







"Metadata": {







"ALIYUN::ROS::Designer": {







"id": "bd814869-3bd7-4551-a5db-0ec7ad3d3246"







}







}







}







},







"Metadata": {







"ALIYUN::ROS::Interface": {







"ParameterGroups": [







{







"Parameters": [







"ZoneId",







"VpcCidrBlock",







"VSwitchCidrBlock"







],







"Label": {







"default": {







"zh-cn": "Infrastructure Configuration (Required)",







"en": "Infrastructure Configuration"







}







}







},







{







"Parameters": [







"InstanceType",







"ImageId",







"Password"







],







"Label": {







"default": {







"zh-cn": "ECS Configuration (Required)",







"en": "ECS Configuration"







}







}







},







{







"Parameters": [







"SystemDiskSize",







"SystemDiskCategory",







"FirstDataDiskSize",







"FirstDataDiskCategory",







"SecondDataDiskSize",







"SecondDataDiskCategory"







],







"Label": {







"default": {







"zh-cn": "ECS Disk Configuration (Required)",







"en": "ECS Disk Configuration"







}







}







}







]







}







}







}

For more examples, see public templates that include this resource.