通过命令行工具使用阿里云资源编排服务
资源编排服务(ROS)支持用户通过模板文件定义所需的云资源,描述资源间的依赖关系和配置详情,并自动完成资源的创建和配置,以达到自动化部署、运维等目的。
作为一种自动化运维工具,阿里云ROS屏蔽了底层资源操作的复杂性,使得对基础设施资源的管理通过简单的代码就可以实现。
命令行工具
除了访问控制台使用ROS功能,用户还可以安装命令行工具。
>> 命令行工具源码地址
>> 命令行工具安装包下载地址
安装
命令行工具目前支持如下环境:
- Linux, MacOS, Windows
- Python 2.7
输入如下命令安装:
pip install aliyun-ros-cli
之后输入 ros
+ 具体的命令
访问资源编排服务。
- Windows下如果提示
/usr/bin/python: bad interpreter: No such file or directory
,请将Python根目录下Scripts/ros
的第一行改为#!/usr/bin/env python
配置
初次使用 ros
命令时,需要配置用户的阿里云验证信息,请根据提示键入您的 AccessKeyId 、 AccessKeySecret 和默认的 RegionId 。这些信息将作为默认配置供后续命令使用。
使用
ROS命令行工具目前支持如下功能:
-
堆栈相关:
- 创建堆栈
create-stack
- 删除堆栈
delete-stack
- 更新堆栈
update-stack
- 预览堆栈
preview-stack
- 废弃堆栈
abandon-stack
- 列出堆栈列表
list-stacks
- 描述堆栈信息
describe-stack
- 创建堆栈
-
资源相关
- 描述资源信息
describe-resource
- 列出资源列表
list-resources
- 查看资源类型
resource-type
- 查看某类资源详情
resource-type-detail
- 查看某类资源模板
resource-type-template
- 描述资源信息
-
模板相关
-
获取某堆栈的模板
get-template
- 验证模板
validate-template
- 验证模板
-
-
其他
- 查询区域信息
list-regions
- 列出堆栈事件
list-events
- 查询区域信息
以创建堆栈为例,用户需要预先准备模板文件或模板的URL。下面演示创建VPC堆栈。
模板文件
template.json:
{
"ROSTemplateFormatVersion" : "2015-09-01",
"Description": "One VPC instance",
"Parameters" : {
"CidrBlock": {
"Type": "String",
"AllowedValues": ["192.168.0.0/16", "172.16.0.0/12", "10.0.0.0/8"],
"Default": "192.168.0.0/16"
},
"VpcName": {
"Type": "String",
"Description": "The VPC name",
"MinLength": 2,
"MaxLength": 128,
"ConstraintDescription": "[2, 128] English or Chinese letters"
}
},
"Resources" : {
"Vpc": {
"Type": "ALIYUN::ECS::VPC",
"Properties": {
"CidrBlock": {"Ref": "CidrBlock"},
"VpcName": {"Ref": "VpcName"}
}
}
},
"Outputs": {
"VpcId": {
"Value" : {"Fn::GetAtt": ["Vpc", "VpcId"]}
},
"VRouterId": {
"Value" : {"Fn::GetAtt": ["Vpc", "VRouterId"]}
},
"RouteTableId": {
"Value" : {"Fn::GetAtt": ["Vpc", "RouteTableId"]}
}
}
}
创建
模板中有两个参数,使用 --parameters
指定,形如key=value
,多个参数用,
隔开,中间不要有空格。
如果不指定 --region-id
,将使用默认配置文件中的RegionId。
ros create-stack --region-id cn-beijing --stack-name test_ros_cli --template-url ./template.json --parameters VpcName=testVPC,CidrBlock=10.0.0.0/8
创建成功后,看到返回的 StackId:
[Succeed]
Id : ********-****-****-****-************
Name : test_ros_cli
如果创建失败,则会有对应的错误提示。
命令详情
您可以通过如下方式查看各个命令的具体使用方式:
-
-h
,--help
命令:如输入 `ros create-stack -h` 可以看到创建堆栈的具体参数说明。
-
PyPi
的帮助文档 - 本文附件《ROS CLI 使用说明》
高级设置
修改默认配置
用户可以通过 ros 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输出时的缩进 |
--debug {'False', 'True'} |
是否开启Debug输出 |
- 开启
Debug
模式后,会输出每一条命令使用的认证信息、接收到的 Response 详情等。
指定临时配置文件
使用 ros --config FILE_PATH
可以指定当前命令的配置文件,将使用该配置文件的信息执行命令。
命令行自动补全
目前提供对bash
环境的命令参数自动补全:
- 将附件中的
ros_completion
放置于/etc/bash_completion.d/
目录下 source /etc/bash_completion.d/ros_completion
之后使用 ros
命令时,可以按下 TAB
键查看提示或者自动补全参数。
- Windows下由于缺少bash环境,无法使用命令行补全功能
输出格式
ROS命令行工具默认使用友好的方式展现命令的执行结果,用户可以通过 ros --json
强制使用 JSON 格式显示结果。JSON的缩进由配置文件中的 JSON_INDENT
指定。