全部产品
存储与CDN 数据库 安全 应用服务 数加·人工智能 数加·大数据基础服务 互联网中间件 视频服务 阿里云办公 培训与认证 物联网
资源编排

使用示例

更新时间:2017-08-11 10:47:21

ROS

安装配置 aliyun-ros-cli后,输入 ros 使用本工具。

ros 本身支持如下参数:

命令 功能
-h --help 查看帮助信息
--config [CONFIG_FILE] 使用指定配置文件,如果没有指定,默认使用当前目录下的 ros/ros.conf 作为配置文件
--json json格式输出查询信息,否则以阅读格式输出
--region-id [REGION_ID] 指定区域信息,否则使用配置文件中的区域信息

json 格式的输出按照配置文件中的 JSON_INDENT 设置缩进。

ros 支持如下一级命令:

命令 功能
set-userdata 设置默认配置
create-stack 创建堆栈
delete-stack 删除堆栈
update-stack 更新堆栈
preview-stack 预览堆栈
abandon-stack 废弃堆栈(开发中)
list-stacks 列出满足条件的堆栈
describe-stack 列出指定堆栈的详细信息
list-resource 列出指定堆栈的资源信息
describe-resource 列出指定资源的详细信息
resource-type 列出所有资源类型
resource-type-detail 列出指定资源类型的详细信息
resource-type-template 列出指定资源类型的模板信息
get-template 列出指定堆栈的模板信息
validate-template 验证模板信息
list-regions 列出所有区域
list-events 列出满足条件的事件信息

堆栈相关

Create Stack

使用 ros create-stack 命令创建堆栈,包含如下参数:

命令 功能 备注
--region-id 指定堆栈所在区域 region-id 将按如下优先级取用:当前命令指定值 > ros 命令指定值 > 配置文件指定值
--stack-name [STACK_NAME] 指定创建堆栈的名称 必须给出
--template-url [TEMPLATE_URL] 指定创建堆栈的模板文件 必须给出,模板文件内容为 json 格式的模板
--parameters [PARAMETERS] 给出模板需要的参数 与模板中的参数匹配,否则会被服务器拒绝。格式为连续的字符串,形如key1=value1,key2=value2
--disable-rollback [DISABLE_ROLLBACK] 指定回滚策略 默认 true 禁止回滚,
--timeout-in-minutes [TIMEOUT_IN_MINUTES] 指定超时时间 默认 60 (分钟)

创建成功后,返回堆栈名称和ID,否则返回错误信息。

成功示例

  1. $ ./bin/ros create-stack --stack-name ros-cli-demo --template-url PATH\\TO\\template.json --parameters DBUser=demo,InstancePassword=Demo123456,DBPassword=Demo123456,DBRootPassword=Demo123456
  2. Succeed
  3. Id : ***
  4. Name : ros-cli-demo

失败示例

  1. $ ./bin/ros create-stack --stack-name ros-cli-demo --template-url PATH\\TO\\template.json --parameters DBUser=demo,InstancePassword=Demo123456,DBPassword=Demo123456,DBRootPassword=Demo123456
  2. Failed
  3. Message : The Stack (ros-cli-demo) already exists.
  4. Code : StackExists

Delete Stack

使用 ros delete-stack 命令删除堆栈,包含如下参数:

命令 功能 备注
--region-id 指定堆栈所在区域 必须给出
--stack-name [STACK_NAME] 指定堆栈的名称 必须给出
--stack-id [STACK_ID] 指定堆栈的ID 必须给出

删除成功后,提示成功,无返回值,否则返回错误信息。

成功示例

  1. $ ros delete-stack --region-id cn-beijing --stack-name test-6-21 --stack-id ***
  2. Succeed

失败示例

  1. $ ros delete-stack --region-id cn-beijing --stack-name test-6-21-1 --stack-id ***
  2. Failed
  3. Message : The Stack (test-6-21-1) could not be found.
  4. Code : StackNotFound

Update Stack

使用 ros update-stack 命令更新堆栈,包含如下参数:

命令 功能 备注
--region-id 指定堆栈所在区域 必须给出
--stack-name [STACK_NAME] 指定更新堆栈的名称 必须给出
--stack-id [STACK_ID] 指定更新堆栈的ID 必须给出
--template-url [TEMPLATE_URL] 指定更新堆栈的模板文件 必须给出,模板文件内容为 json 格式的模板
--parameters [PARAMETERS] 给出模板需要的参数 与模板中的参数匹配,否则会被服务器拒绝。格式为连续的字符串,形如key1=value1,key2=value2
--disable-rollback [DISABLE_ROLLBACK] 指定回滚策略 默认 true 禁止回滚,
--timeout-in-minutes [TIMEOUT_IN_MINUTES] 指定超时时间 默认 60 (分钟)

更新成功后,返回堆栈名称和ID,否则返回错误信息。

成功示例

  1. $ ros update-stack --stack-name ros-cli-demo --template-url PATH\\TO\\template.json --parameters DBUser=demo,InstancePassword=Demo123456,DBPassword=Demo123456,DBRootPassword=Demo123456 --region-id cn-beijing --stack-id ***
  2. Succeed
  3. Id : ***
  4. Name : ros-cli-demo

失败示例

  1. $ ros update-stack --stack-name ros-cli-demo --template-url PATH\\TO\\template.json --parameters DBUser=demo,InstancePassword=Demo123456,DBPassword=Demo123456,DBRootPassword=Demo123456 --region-id cn-beijing --stack-id ***
  2. Failed
  3. Message : Updating a stack when it is in (UPDATE, IN_PROGRESS) is not supported.
  4. Code : NotSupported

Preview Stack

使用 ros preview-stack 命令创建堆栈,包含如下参数:

命令 功能 备注
--region-id 指定堆栈所在区域 region-id 将按如下优先级取用:当前命令指定值 > ros 命令指定值 > 配置文件指定值
--stack-name [STACK_NAME] 指定预览堆栈的名称 必须给出
--template-url [TEMPLATE_URL] 指定预览堆栈的模板文件 必须给出,模板文件内容为 json 格式的模板
--parameters [PARAMETERS] 给出模板需要的参数 与模板中的参数匹配,否则会被服务器拒绝。格式为连续的字符串,形如key1=value1,key2=value2
--disable-rollback [DISABLE_ROLLBACK] 指定回滚策略 默认 true 禁止回滚,
--timeout-in-minutes [TIMEOUT_IN_MINUTES] 指定超时时间 默认 60 (分钟)

创建成功后,返回资源信息,否则返回错误信息。

成功示例

  1. $ ros preview-stack --stack-name ros-cli-demo2 --template-url PATH\\TO\\template.json --parameters DBUser=demo,InstancePassword=Demo123456,DBPassword=Demo123456,DBRootPassword=Demo123456
  2. Id : None
  3. Name : ros-cli-demo2
  4. Description : Deploy LNMP(Linux+Nginx+MySQL+PHP) stack on 1 ECS instance. *** WARNING *** Only support CentOS-7.
  5. Region : cn-beijing
  6. DisableRollback : True
  7. TimeoutMins : 60
  8. Created : 2017-06-27T06:46:34.231047
  9. Updated : None
  10. Webhook : None
  11. TemplateDescription : Deploy LNMP(Linux+Nginx+MySQL+PHP) stack on 1 ECS instance. *** WARNING *** Only support CentOS-7.
  12. Parameters:
  13. SystemDiskCategory : ***
  14. ALIYUN::StackName : ros-cli-demo2
  15. ALIYUN::NoValue : None
  16. ALIYUN::StackId : None
  17. ALIYUN::Region : cn-beijing
  18. DBRootPassword : ******
  19. ImageId : ***
  20. InstancePassword : ******
  21. DBPassword : ******
  22. DBName : MyDatabase
  23. DBUser : ******
  24. ALIYUN::AccountId : ***
  25. InstanceType : ***
  26. NginxUrl : ***
  27. Resources:
  28. -----------------------------------------------------------------------
  29. Resource:
  30. StackName : None
  31. ResourceType : None
  32. ResourceName : None
  33. ResourceStatus : None
  34. ResourceStatusReason: None
  35. ResourceData : None
  36. Description : Deploy LNMP(Linux+Nginx+MySQL+PHP) stack on 1 ECS instance. *** WARNING *** Only support CentOS-7.
  37. ResourceAction : None
  38. PhysicalResourceId : None
  39. CreatedTime : None
  40. UpdatedTime : None
  41. DeletedTime : None
  42. RequiredBy:
  43. WebServer
  44. WebServerWaitCondition
  45. ...

json 格式输出

  1. $ ros --json preview-stack --stack-name ros-cli-demo2 --template-url PATH\\TO\\template.json --parameters DBUser=demo,InstancePassword=Demo123456,DBPassword=Demo123456,DBRootPassword=Demo123456
  2. {
  3. "Created": "2017-06-27T06:48:52.893040",
  4. "Description": "Deploy LNMP(Linux+Nginx+MySQL+PHP) stack on 1 ECS instance. *** WARNING *** Only support CentOS-7.",
  5. "DisableRollback": true,
  6. "Id": "None",
  7. "Name": "ros-cli-demo2",
  8. "Parameters": {
  9. "ALIYUN::AccountId": "***",
  10. "ALIYUN::NoValue": "None",
  11. "ALIYUN::Region": "cn-beijing",
  12. "ALIYUN::StackId": "None",
  13. "ALIYUN::StackName": "ros-cli-demo2",
  14. "DBName": "MyDatabase",
  15. "DBPassword": "******",
  16. "DBRootPassword": "******",
  17. "DBUser": "******",
  18. "ImageId": "***",
  19. "InstancePassword": "******",
  20. "InstanceType": "***",
  21. "NginxUrl": "***",
  22. "SystemDiskCategory": "***"
  23. },
  24. "Region": "cn-beijing",
  25. "Resources": [
  26. {
  27. "Attributes": {
  28. "CurlCli": null
  29. },
  30. "CreatedTime": null,
  31. "DeletedTime": null,
  32. "Description": "",
  33. "Metadata": {},
  34. "PhysicalResourceId": "",
  35. "Properties": {},
  36. "RequiredBy": [
  37. "WebServerWaitCondition",
  38. "WebServer"
  39. ],
  40. ...
  41. }

失败示例

  1. $ ros preview-stack --stack-name ros-cli-demo2 --template-url PATH\\TO\\template.json --parameters DBUser=demo
  2. Something wrong:
  3. HTTP Status: 400 Error:UserParameterMissing The Parameter (DBRootPassword) was not provided. RequestID: None

Abandon Stack

使用 ros abandon-stack 命令废弃堆栈,包含如下参数:

命令 功能 备注
--region-id 指定堆栈所在区域 必须给出
--stack-name [STACK_NAME] 指定堆栈的名称 必须给出
--stack-id [STACK_ID] 指定堆栈的ID 必须给出

失败示例

  1. $ ros abandon-stack --stack-name ros-cli-demo --stack-id *** --region-id cn-beijing
  2. Failed
  3. Message : The server could not comply with the request since it is either malformed or otherwise incorrect.
  4. Code : HTTPBadRequest

List Stacks

使用 ros list-stacks 命令查看堆栈列表,包含如下参数:

命令 功能 备注
--region-id 指定堆栈所在区域
--stack-name [STACK_NAME] 指定堆栈的名称
--stack-id [STACK_ID] 指定堆栈的ID
--status {CREATE_COMPLETE, CREATE_FAILED, CREATE_IN_PROGRESS, DELETE_COMPLETE, DELETE_FAILED, DELETE_IN_PROGRESS, ROLLBACK_COMPLETE, ROLLBACK_FAILED, ROLLBACK_IN_PROGRESS} 指定堆栈的状态 必须使用指定值
--page-number [PAGE_NUMBER] 输入查看的页码 查询结果将分页返回,从1开始,默认为1
--page-size [PAGE_SIZE] 指定每页显示数量 默认为10,不超过100

输出当前的翻页情况及结果列表:

成功示例

  1. $ ros list-stacks --page-number 2 --page-size 3
  2. Total Records: 8 Page: 2/3
  3. Id : ***
  4. Name : test_ros_condition_v1
  5. Description : None
  6. Region : cn-beijing
  7. Status : ROLLBACK_COMPLETE
  8. StatusReason : Stack ROLLBACK completed successfully
  9. TimeoutMins : 60
  10. DisableRollback : False
  11. Created : 2017-06-15T03:08:22
  12. Updated : None
  13. Id : ***
  14. Name : test_clouder_v1
  15. Description : None
  16. Region : cn-beijing
  17. Status : CREATE_COMPLETE
  18. StatusReason : Stack CREATE completed successfully
  19. TimeoutMins : 60
  20. DisableRollback : False
  21. Created : 2017-06-01T08:19:51
  22. Updated : None
  23. ...

失败示例

  1. $ ros list-stacks --page-number 2 --page-size 3 --region-id cn-beijing2
  2. Something wrong:
  3. SDK.InvalidRegionId Can not find endpoint to access.

Describe Stack

使用 ros describe-stack 命令获取堆栈详细信息,包含如下参数:

命令 功能 备注
--stack-name [STACK_NAME] 指定堆栈的名称 必须给出
--stack-id [STACK_ID] 指定堆栈的ID 必须给出

成功后输出堆栈信息,否则输出错误信息。

成功示例

  1. $ ros describe-stack --stack-name ros-cli-demo --stack-id ***
  2. Name : ros-cli-demo
  3. Id : ***
  4. Description : Deploy LNMP(Linux+Nginx+MySQL+PHP) stack on 1 ECS instance. *** WARNING *** Only support CentOS-7.
  5. Region : cn-beijing
  6. Status : UPDATE_COMPLETE
  7. StatusReason : Stack successfully updated
  8. DisableRollback : True
  9. TimeoutMins : 60
  10. Created : 2017-06-27T06:25:32
  11. Updated : 2017-06-27T06:31:37
  12. Webhook : None
  13. Parameters:
  14. SystemDiskCategory : ***
  15. ALIYUN::StackName : ros-cli-demo
  16. InstanceType : ***
  17. ALIYUN::NoValue : None
  18. ALIYUN::StackId : ***
  19. ALIYUN::Region : cn-beijing
  20. DBRootPassword : ******
  21. ImageId : ***
  22. InstancePassword : ******
  23. DBPassword : ******
  24. DBUser : ******
  25. ALIYUN::AccountId : ***
  26. DBName : MyDatabase
  27. NginxUrl : ***
  28. Outputs:
  29. NginxWebsiteURL : *** --- URL for newly created Nginx home page.

失败示例

  1. $ ros describe-stack --stack-name ros-cli-demo --stack-id ***
  2. Something wrong:
  3. HTTP Status: 404 Error:StackNotFound The Stack (ros-cli-demo) could not be found. RequestID: None

资源相关

List Resources

使用 ros list-resources 命令获取堆栈资源信息,包含如下参数:

命令 功能 备注
--stack-name [STACK_NAME] 指定堆栈的名称 必须给出
--stack-id [STACK_ID] 指定堆栈的ID 必须给出

成功后输出堆栈资源信息,否则输出错误信息。

成功示例

  1. $ ros list-resources --stack-name ros-cli-demo --stack-id ***
  2. Id : WebServerConditionHandle
  3. Name : WebServerConditionHandle
  4. Type : ALIYUN::ROS::WaitConditionHandle
  5. Status : CREATE_COMPLETE
  6. StatusReason : state changed
  7. ResourceData : None
  8. PhysicalId :
  9. Created : 2017-06-27T06:25:32
  10. Updated : 2017-06-27T06:25:33
  11. Deleted : None
  12. Id : SecurityGroup
  13. Name : SecurityGroup
  14. Type : ALIYUN::ECS::SecurityGroup
  15. Status : CREATE_COMPLETE
  16. StatusReason : state changed
  17. ResourceData : None
  18. PhysicalId : ***
  19. Created : 2017-06-27T06:25:32
  20. Updated : 2017-06-27T06:25:39
  21. Deleted : None
  22. Id : WebServer
  23. Name : WebServer
  24. Type : ALIYUN::ECS::Instance
  25. Status : UPDATE_COMPLETE
  26. StatusReason : state changed
  27. ResourceData : None
  28. PhysicalId : ***
  29. Created : 2017-06-27T06:25:32
  30. Updated : 2017-06-27T06:31:44
  31. Deleted : None
  32. ...

失败示例

  1. $ ros list-resources --stack-name ros-cli-demo --stack-id ***2
  2. Message : The Stack (ros-cli-demo) could not be found.
  3. Code : StackNotFound

Describe Resource

使用 ros describe-resource 命令获取堆栈资源信息,包含如下参数:

命令 功能 备注
--stack-name [STACK_NAME] 指定堆栈的名称 必须给出
--stack-id [STACK_ID] 指定堆栈的ID 必须给出
--resource-name [RESOUCE_NAME] 指定的资源名称 必须给出

成功后输出堆栈资源信息,否则输出错误信息。

成功示例

  1. $ ros describe-resource --stack-name ros-cli-demo --stack-id *** --resource-name Vpc
  2. Id : Vpc
  3. Name : Vpc
  4. Type : ALIYUN::ECS::VPC
  5. Status : CREATE_COMPLETE
  6. StatusReason : state changed
  7. ResourceData : None
  8. PhysicalId : ***
  9. Created : 2017-06-27T06:25:32
  10. Updated : 2017-06-27T06:25:37
  11. Deleted : None

失败示例

  1. $ ros describe-resource --stack-name ros-cli-demo --stack-id *** --resource-name Vpc2
  2. Something wrong:
  3. HTTP Status: 404 Error:ResourceNotFound The Resource (Vpc2) could not be found in Stack ros-cli-demo. RequestID: None

Resource Type

使用 ros resoucre-type 命令获取资源种类信息,包含如下参数:

命令 功能 备注
--status {UNKNOWN, SUPPORTED, DEPRECATED, UNSUPPORTED, HIDDEN} 资源状态 默认使用SUPPORTED

成功后输出资源种类信息。如果没有符合要求的,无输出。

成功示例

  1. $ ros resource-type
  2. ALIYUN::CS::App
  3. ALIYUN::CS::Cluster
  4. ALIYUN::ECS::BandwidthPackage
  5. ALIYUN::ECS::Disk
  6. ALIYUN::ECS::DiskAttachment
  7. ALIYUN::ECS::EIP
  8. ALIYUN::ECS::EIPAssociation
  9. ALIYUN::ECS::ForwardEntry
  10. ALIYUN::ECS::Instance
  11. ALIYUN::ECS::InstanceClone
  12. ALIYUN::ECS::InstanceGroup
  13. ALIYUN::ECS::InstanceGroupClone
  14. ALIYUN::ECS::JoinSecurityGroup
  15. ALIYUN::ECS::NatGateway
  16. ALIYUN::ECS::PrepayInstance
  17. ALIYUN::ECS::PrepayInstanceGroupClone
  18. ALIYUN::ECS::Route
  19. ALIYUN::ECS::SNatEntry
  20. ALIYUN::ECS::SSHKeyPair
  21. ALIYUN::ECS::SSHKeyPairAttachment
  22. ALIYUN::ECS::SecurityGroup
  23. ALIYUN::ECS::SecurityGroupClone
  24. ALIYUN::ECS::SecurityGroupEgress
  25. ALIYUN::ECS::SecurityGroupIngress
  26. ALIYUN::ECS::VPC
  27. ALIYUN::ECS::VSwitch
  28. ALIYUN::ESS::ScalingConfiguration
  29. ALIYUN::ESS::ScalingGroup
  30. ALIYUN::ESS::ScalingGroupEnable
  31. ALIYUN::MEMCACHE::Instance
  32. ALIYUN::MONGODB::Instance
  33. ALIYUN::MONGODB::PrepayInstance
  34. ALIYUN::MarketPlace::Image
  35. ALIYUN::MarketPlace::ImageSubscription
  36. ALIYUN::MarketPlace::Order
  37. ALIYUN::OSS::Bucket
  38. ALIYUN::RAM::AccessKey
  39. ALIYUN::RAM::Group
  40. ALIYUN::RAM::ManagedPolicy
  41. ALIYUN::RAM::Role
  42. ALIYUN::RAM::User
  43. ALIYUN::RAM::UserToGroupAddition
  44. ALIYUN::RDS::DBInstance
  45. ALIYUN::RDS::DBInstanceParameterGroup
  46. ALIYUN::RDS::DBInstanceSecurityIps
  47. ALIYUN::RDS::PrepayDBInstance
  48. ALIYUN::REDIS::Instance
  49. ALIYUN::REDIS::PrepayInstance
  50. ALIYUN::ROS::WaitCondition
  51. ALIYUN::ROS::WaitConditionHandle
  52. ALIYUN::SLB::BackendServerAttachment
  53. ALIYUN::SLB::Listener
  54. ALIYUN::SLB::LoadBalancer
  55. ALIYUN::SLB::LoadBalancerClone
  56. ALIYUN::SLB::VServerGroup
  57. ALIYUN::SLS::ApplyConfigToMachineGroup
  58. ALIYUN::SLS::MachineGroup
  59. ALIYUN::VPC::PeeringRouterInterfaceBinding
  60. ALIYUN::VPC::PeeringRouterInterfaceConnection
  61. ALIYUN::VPC::RouterInterface

Resource Type Detail

使用 ros resource-type-detail 命令获取资源种类信息,包含如下参数:

命令 功能 备注
--name [NAME] 指定资源类型的名称 必须给出

成功后返回资源详细信息,否则输出错误信息。

成功示例

由于不同资源的属性有区别,阅读模式下递归列出资源信息。

  1. $ ros resource-type-detail --name ALIYUN::ECS::Instance
  2. ===================================================
  3. ResourceType : ALIYUN::ECS::Instance
  4. ===================================================
  5. Attributes :
  6. -----------------------------------------------
  7. InstanceId :
  8. Description : The instance id of created ecs instance
  9. -----------------------------------------------
  10. HostName :
  11. Description : Host name of created instance.
  12. -----------------------------------------------
  13. ZoneId :
  14. Description : Zone id of created instance.
  15. ...

json 格式输出:

  1. $ ros --json resource-type-detail --name ALIYUN::ECS::Instance
  2. {
  3. "Attributes": {
  4. "HostName": {
  5. "Description": "Host name of created instance."
  6. },
  7. "InnerIp": {
  8. "Description": "Inner IP address of the specified instance. Only for classical instance."
  9. },
  10. "InstanceId": {
  11. "Description": "The instance id of created ecs instance"
  12. },
  13. "PrivateIp": {
  14. "Description": "Private IP address of created ecs instance. Only for VPC instance."
  15. },
  16. "PublicIp": {
  17. "Description": "Public IP address of created ecs instance."
  18. },
  19. "ZoneId": {
  20. "Description": "Zone id of created instance."
  21. }
  22. },
  23. ...
  24. }

失败示例

  1. $ ros --json resource-type-detail --name ALIYUN::ECS::Instance2
  2. Something wrong:
  3. HTTP Status: 404 Error:ResourceTypeNotFound The Resource Type (ALIYUN::ECS::Instance2) could not be found. RequestID: None

Resource Type template

使用 ros resource-type-template命令获取资源种类模板,包含如下参数:

命令 功能 备注
--name [NAME] 指定资源类型的名称 必须给出

成功后返回资源模板信息,否则输出错误信息。

成功示例

  1. $ ros --json resource-type-template --name ALIYUN::ECS::Instance
  2. {
  3. "Outputs": {
  4. "HostName": {
  5. "Description": "Host name of created instance.",
  6. "Value": {
  7. "Fn::GetAtt": [
  8. "Instance",
  9. "HostName"
  10. ]
  11. }
  12. },
  13. ...
  14. }

失败示例

  1. $ ros resource-type-template --name ALIYUN::ECS::Instance2
  2. Something wrong:
  3. HTTP Status: 404 Error:ResourceTypeNotFound The Resource Type (ALIYUN::ECS::Instance2) could not be found. RequestID: None

模板相关

Get Template

使用 ros get-template 命令获取指定堆栈的模板,包含如下参数:

命令 功能 备注
--stack-name [STACK_NAME] 指定堆栈的名称 必须给出
--stack-id [STACK_ID] 指定堆栈的ID 必须给出

获取成功后,输出模板,否则输出错误信息。

成功示例

  1. $ ros get-template --stack-name ros-cli-demo --stack-id ***
  2. ===================================================
  3. ROSTemplateFormatVersion : 2015-09-01
  4. ===================================================
  5. Resources :
  6. -----------------------------------------------
  7. WebServerConditionHandle :
  8. Type : ALIYUN::ROS::WaitConditionHandle
  9. -----------------------------------------------
  10. SecurityGroup :
  11. Type : ALIYUN::ECS::SecurityGroup
  12. Properties :
  13. SecurityGroupIngress :
  14. Priority : 1
  15. IpProtocol : all
  16. NicType : intranet
  17. SourceCidrIp : ***
  18. PortRange : -1/-1
  19. VpcId :
  20. Ref : Vpc
  21. SecurityGroupEgress :
  22. Priority : 1
  23. IpProtocol : all
  24. NicType : intranet
  25. PortRange : -1/-1
  26. DestCidrIp : ***
  27. ...

json 格式输出:

  1. $ ros --json get-template --stack-name ros-cli-demo --stack-id ***
  2. {
  3. "Description": "Deploy LNMP(Linux+Nginx+MySQL+PHP) stack on 1 ECS instance. *** WARNING *** Only support CentOS-7.",
  4. "Outputs": {
  5. "NginxWebsiteURL": {
  6. "Description": "URL for newly created Nginx home page.",
  7. "Value": {
  8. "Fn::Join": [
  9. "",
  10. [
  11. "http://",
  12. {
  13. "Fn::GetAtt": [
  14. "WebServer",
  15. "PublicIp"
  16. ]
  17. },
  18. ":80/test.php"
  19. ]
  20. ]
  21. }
  22. }
  23. },
  24. ...

失败示例

  1. $ ros get-template --stack-name ros-cli-demo --stack-id ***
  2. Something wrong:
  3. HTTP Status: 404 Error:SDK.UnknownServerError Can not parse error message from server response. RequestID: None

Validate Template

使用 ros validate-template 命令验证指定堆栈的模板,包含如下参数:

命令 功能 备注
--template-url [TEMPLATE_URL] 指定模板地址 必须给出

获取成功后,输出模板,否则输出错误信息。

成功示例

  1. $ ros validate-template --template-url PATH\\TO\\template.json
  2. The template is ok:
  3. ===================================================
  4. Description : Deploy LNMP(Linux+Nginx+MySQL+PHP) stack on 1 ECS instance. *** WARNING *** Only support CentOS-7.
  5. ===================================================
  6. Parameters :
  7. -----------------------------------------------
  8. SystemDiskCategory :
  9. Description : System disk category: average cloud disk(cloud), efficient cloud disk(cloud_efficiency) or SSD cloud disk(cloud_ssd)
  10. Default : cloud_ssd
  11. Label : SystemDiskCategory
  12. NoEcho : false
  13. AllowedValues :
  14. cloud
  15. cloud_efficiency
  16. cloud_ssd
  17. Type : String
  18. ...

失败示例

  1. $ ros validate-template --template-url C:\\Users\\quming.ly\\Desktop\\nodejs.json
  2. Something wrong:
  3. HTTP Status: 400 Error:InvalidTemplateVersion The template version is invalid: "ROSTemplateFormatVersion: 2015-09-02". "ROSTemplateFormatVersion" should be: 2015-09-01 RequestID: None

其他

List Regions

列出所有的区域,无需参数。

成功示例

  1. $ ros list-regions
  2. LocalName RegionId
  3. 华北 1 cn-qingdao
  4. 华北 2 cn-beijing
  5. 华北 3 cn-zhangjiakou
  6. 华东 1 cn-hangzhou
  7. 华东 2 cn-shanghai
  8. 华南 1 cn-shenzhen
  9. 香港 cn-hongkong
  10. 亚太东北 1 (东京) ap-northeast-1
  11. 亚太东南 1 (新加坡) ap-southeast-1
  12. 亚太东南 2 (悉尼) ap-southeast-2
  13. 美国东部 1 (弗吉尼亚) us-east-1
  14. 美国西部 1 (硅谷) us-west-1
  15. 中东东部 1 (迪拜) me-east-1
  16. 欧洲中部 1 (法兰克福) eu-central-1

json格式输出:

  1. $ ros --json list-regions
  2. {
  3. "Regions": [
  4. {
  5. "LocalName": "华北 1",
  6. "RegionId": "cn-qingdao"
  7. },
  8. {
  9. "LocalName": "华北 2",
  10. "RegionId": "cn-beijing"
  11. },
  12. {
  13. "LocalName": "华北 3",
  14. "RegionId": "cn-zhangjiakou"
  15. },
  16. {
  17. "LocalName": "华东 1",
  18. "RegionId": "cn-hangzhou"
  19. },
  20. {
  21. "LocalName": "华东 2",
  22. "RegionId": "cn-shanghai"
  23. },
  24. {
  25. "LocalName": "华南 1",
  26. "RegionId": "cn-shenzhen"
  27. },
  28. {
  29. "LocalName": "香港",
  30. "RegionId": "cn-hongkong"
  31. },
  32. {
  33. "LocalName": "亚太东北 1 (东京)",
  34. "RegionId": "ap-northeast-1"
  35. },
  36. {
  37. "LocalName": "亚太东南 1 (新加坡)",
  38. "RegionId": "ap-southeast-1"
  39. },
  40. {
  41. "LocalName": "亚太东南 2 (悉尼)",
  42. "RegionId": "ap-southeast-2"
  43. },
  44. {
  45. "LocalName": "美国东部 1 (弗吉尼亚)",
  46. "RegionId": "us-east-1"
  47. },
  48. {
  49. "LocalName": "美国西部 1 (硅谷)",
  50. "RegionId": "us-west-1"
  51. },
  52. {
  53. "LocalName": "中东东部 1 (迪拜)",
  54. "RegionId": "me-east-1"
  55. },
  56. {
  57. "LocalName": "欧洲中部 1 (法兰克福)",
  58. "RegionId": "eu-central-1"
  59. }
  60. ]
  61. }

List Events

使用 ros list-events 命令查看事件列表,包含如下参数:

命令 功能 备注
--stack-name [STACK_NAME] 指定堆栈的名称
--stack-id [STACK_ID] 指定堆栈的ID
--resource-status {'COMPLETE', 'FAILED', 'IN_PROGRESS'} 指定资源的状态 必须使用指定值
--resource-name 指定筛选资源
--resource-type 指定筛选资源类型
--page-number [PAGE_NUMBER] 输入查看的页码 查询结果将分页返回,从1开始,默认为1
--page-size [PAGE_SIZE] 指定每页显示数量 默认为10,不超过100

输出当前的翻页情况及结果列表:

成功示例

  1. $ ros list-events --stack-name ros-cli-demo --stack-id *** --page-number 2 --page-size 3 --resource-status COMPLETE
  2. Total Records: 12 Page: 2/4
  3. Time : 2017-06-27T06:31:21
  4. ResourceName : WebServer
  5. ResourceType : ALIYUN::ECS::Instance
  6. Type : None
  7. Status : UPDATE_COMPLETE
  8. StatusReason : state changed
  9. Time : 2017-06-27T06:28:14
  10. ResourceName : ros-cli-demo
  11. ResourceType : ALIYUN::ROS::Stack
  12. Type : None
  13. Status : CREATE_COMPLETE
  14. StatusReason : Stack CREATE completed successfully
  15. Time : 2017-06-27T06:28:14
  16. ResourceName : WebServerWaitCondition
  17. ResourceType : ALIYUN::ROS::WaitCondition
  18. Type : None
  19. Status : CREATE_COMPLETE
  20. StatusReason : state changed

Set userdata

使用 set-userdata 命令设置默认的用户配置。

命令 功能 备注
--key-id [KEY_ID] 默认的 ALIYUN Access Key ID
--key-secret [KEY_SECRET] 默认的 ALIYUN Access Key Secret
--region-id [REGION_ID] 默认的 region-id
--json-indent [JSON_INDENT] JSON输出时的缩进
本文导读目录