资源编排ROS之模块:实现模板代码复用(基础篇)

本文介绍了阿里云的资源编排服务ROS,包括如何使用模块化方法定义和管理云计算资源,如ECS实例和RDS数据库,以及模块的特点如可预测性、可重用性和可追溯性。还提供了创建模块和在资源栈中使用的示例,展示了如何通过ROS进行自动化部署和网络基础设施配置。
摘要由CSDN通过智能技术生成

背景

资源编排服务(Resource Orchestration Service, 简称ROS)是阿里云提供的一项简化云计算资源管理的服务。您可以遵循ROS定义的模板规范编写资源栈模板,在模板中定义所需的云计算资源(例如ECS实例、RDS数据库实例)、资源间的依赖关系等。ROS的编排引擎将根据模板自动完成所有资源的创建和配置,实现自动化部署及运维。

模块是一种以透明、易管理和可重复的方式打包资源配置,以便跨资源栈模板实现包含的方法。模块可以将常见服务配置和最佳实践封装为模块化、可自定义的构建基块,供您包含在资源栈模板中。

例如:网络领域专家可以创建一个包含遵守安全准则的内置安全组和入口、出口规则的模块。然后您可以将该模块纳入到模板中,以便在资源栈中预配置安全的网络基础架构,而无需花费时间了解清楚VPC、子网、安全组和网关的工作方式。此外,由于模块具有版本控制,如果安全指南随时间而发生变化,模块创建者可以创建包含这些更改的新版本模块。

模块简介

模块特点

  • 可预测性:模块必须在ROS中创建后才能使用,您将模块纳入到模板中时,可以了解该模块能解析到哪些资源。

  • 可重用性:您可以在多个模板和账号中使用同一模块。

  • 可追溯性:ROS会跟踪资源栈中的哪些资源是从模块创建而成的。资源栈的资源、偏差、更改集中包含相关信息。

  • 可管理性:创建模块后,您可以通过ROS对其进行管理,例如版本控制。

模块分类

  • 公共模块:公共模块是资源编排为您提供的可直接使用的模块。更多信息,请参见查看公共模块

  • 自定义模块:自定义模块是通过控制台手动创建的模块。更多信息,请参见管理自定义模块

    • 共享模块是一种特殊的自定义模块。其他用户可以查看和使用您的共享模块,但无法修改和删除它。

使用示例

下方示例会把安全组的定义封装在一个模块里,然后在创建资源栈使用这个模块。

创建模块

登录资源编排控制台。在左侧导航栏,选择资源 > 我的模块。在我的模块页面,单击创建模块。

在创建模块页面,输入下方内容。

这个模块包含一个安全组的定义。

模块编写方式与模板基本一致,更多信息可参见模块开发

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

在创建模块页面右上角,选择导入/保存模块 > 保存为新模块。在保存为新模块对话框,输入模块名称和模块描述。单击确定。

在我的模块页面查看模块。

使用模块创建资源栈

在左侧导航栏,单击资源栈。在资源栈列表页面,单击创建资源栈,然后在下拉列表中选择使用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

单击下一步。单击创建。查看资源栈。

  • 15
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值