1.背景
资源编排服务(Resource Orchestration Service, 简称ROS)是阿里云提供的一项简化云计算资源管理的服务。您可以遵循ROS定义的模板规范编写资源栈模板,在模板中定义所需的云计算资源(例如ECS实例、RDS数据库实例)、资源间的依赖关系等。ROS的编排引擎将根据模板自动完成所有资源的创建和配置,实现自动化部署及运维。
模块是一种以透明、易管理和可重复的方式打包资源配置,以便跨资源栈模板实现包含的方法。模块可以将常见服务配置和最佳实践封装为模块化、可自定义的构建基块,供您包含在资源栈模板中。
例如:网络领域专家可以创建一个包含遵守安全准则的内置安全组和入口、出口规则的模块。然后您可以将该模块纳入到模板中,以便在资源栈中预配置安全的网络基础架构,而无需花费时间了解清楚VPC、子网、安全组和网关的工作方式。此外,由于模块具有版本控制,如果安全指南随时间而发生变化,模块创建者可以创建包含这些更改的新版本模块。
2.模块简介
2.1模块特点
- 可预测性:模块必须在ROS中创建后才能使用,您将模块纳入到模板中时,可以了解该模块能解析到哪些资源。
- 可重用性:您可以在多个模板和账号中使用同一模块。
- 可追溯性:ROS会跟踪资源栈中的哪些资源是从模块创建而成的。资源栈的资源、偏差、更改集中包含相关信息。
- 可管理性:创建模块后,您可以通过ROS对其进行管理,例如版本控制。
2.2模块分类
- 公共模块:公共模块是资源编排为您提供的可直接使用的模块。更多信息,请参见查看公共模块。
- 自定义模块:自定义模块是通过控制台手动创建的模块。更多信息,请参见管理自定义模块。
- 共享模块是一种特殊的自定义模块。其他用户可以查看和使用您的共享模块,但无法修改和删除它。
3.使用示例
下方示例会把安全组的定义封装在一个模块里,然后在创建资源栈使用这个模块。
3.1创建模块
登录资源编排控制台。在左侧导航栏,选择资源 > 我的模块。在我的模块页面,单击创建模块。
在创建模块页面,输入下方内容。
这个模块包含一个安全组的定义。
模块编写方式与模板基本一致,更多信息可参见模块开发。
ROSTemplateFormatVersion'2015-09-01' Description 全网安全组配置 Parameters SecurityGroupName Type String VpcId Type String Resources SecurityGroup Type ALIYUN ECS SecurityGroup Properties SecurityGroupIngress PortRange 22/22 SourceCidrIp 0.0.0.0/0 IpProtocol tcp PortRange 80/80 SourceCidrIp 0.0.0.0/0 IpProtocol tcp PortRange 443/443 SourceCidrIp 0.0.0.0/0 IpProtocol tcp PortRange 3389/3389 SourceCidrIp 0.0.0.0/0 IpProtocol tcp PortRange'-1/-1' SourceCidrIp 0.0.0.0/0 IpProtocol icmp SecurityGroupName Ref SecurityGroupName SecurityGroupType normal VpcId Ref VpcId
在创建模块页面右上角,选择导入/保存模块 > 保存为新模块。在保存为新模块对话框,输入模块名称和模块描述。单击确定。
在我的模块页面查看模块。
3.2使用模块创建资源栈
在左侧导航栏,单击资源栈。在资源栈列表页面,单击创建资源栈,然后在下拉列表中选择使用ROS。
在创建资源栈页面,输入下方内容。
这个模板创建了一个VPC,并使用刚才创建的模块在这个VPC下创建了一个安全组。
模块使用方式与资源基本一致,更多信息可参见使用模块。
ROSTemplateFormatVersion"2015-09-01" Resources Vpc Type ALIYUN ECS VPC Properties VpcName"test-vpc" CidrBlock 192.168.0.0/24 Sg Type MODULE MyOrg MyApp SecurityGroup Version v1 Properties SecurityGroupName"test-sg" VpcId Ref Vpc Outputs VpcId Value Ref Vpc SecurityGroupId Value Ref Sg.SecurityGroup
单击下一步。单击创建。查看资源栈。