使用ROS创建VPC和VSwitch

本文涉及的产品
无影云电脑个人版,1个月黄金款+200核时
资源编排,不限时长
无影云电脑企业版,4核8GB 120小时 1个月
简介: 本场景主要介绍如何利用阿里云资源编排服务,定义资源编排模板,实现自动化创建阿里云专有网络和交换机。

使用ROS创建VPC和VSwitch


1. 实验资源方式简介及开始实验

云起实验室实验资源方式介绍

云起实验室支持个人账户资源一种实验资源方式。

  • 个人账户资源
  • 使用您个人的云资源进行操作,资源归属于个人。
  • 所有实验操作将保留至您的账号,请谨慎操作。
  • 平台仅提供手册参考,不会对资源做任何操作。
  • 说明:使用个人账户资源,在创建资源时,可能会产生一定的费用,请您及时关注相关云产品资源的计费概述。

准备开始实验

在实验开始前,请您选择其中一种实验资源,单击确认开启实验

说明:每个实验所支持的实验资源方式都不相同,实验不一定能满足有三种实验资源方式,请根据实验的实际情况,进行选择。

2. 前置知识

本步骤为您讲解ROS模板,仅供学习,无需操作。

  1. ROS模板说明。

模板用于创建资源栈,是描述基础设施和架构的蓝图。您需要在模板中声明各类云服务的资源,然后通过ROS部署资源。

  1. ROS模板结构及参数说明。
{
  "ROSTemplateFormatVersion" : "2015-09-01",
  "Description" : "模板描述信息,可用于说明模板的适用场景、架构说明等。",
  "Metadata" : {
    // 关于模板的元数据信息,例如存放用于可视化的布局信息。
  },
  "Parameters" : {
    // 定义创建资源栈时,用户可以定制化的参数。
  },
  "Mappings" : {
    // 定义映射信息表,映射信息是一种多层的Map结构。
  },
  "Conditions": {
    // 使用内部条件函数定义条件。这些条件确定何时创建关联的资源。
  },
  "Resources" : {
    // 所需资源的详细定义,包括资源间的依赖关系、配置细节等。
  },
  "Outputs" : {
    // 用于输出一些资源属性等有用信息。可以通过API或控制台获取输出的内容。
  }
}

参数说明:

  • ROSTemplateFormatVersion:必选,ROS支持的模板版本号,当前版本号:2015-09-01。
  • Description:可选,模板的描述信息。可用于说明模板的适用场景、架构说明等。通常情况下,对模板进行详细描述,有利于用户理解模板的内容。
  • Metadata:可选,模板编写者可以使用Metadata来存放与模板相关的元数据信息,内容可以为JSON格式。
  • Parameters:可选,定义创建资源栈时,模板用户可以定制化的参数。通常,模板的编辑者会把ECS的规格设计成一个参数。参数支持默认值。使用参数可以增强模板的灵活性,提高复用性。使用模板创建资源栈时,可以根据实际的评估结果来选择合适的规格。更多详细信息,请参见参数(Parameters)
  • Mappings:可选,Mappings定义了一个多层的映射表,可以通过Fn::FindInMap函数来选择Key对应的值,或根据不同的输入参数值作为Key来查找映射表。例如,您可以根据Region不同,自动查找Region-镜像映射表,从而找到适用的镜像。更多详细信息,请参见映射(Mappings)
  • Conditions:可选,Conditions使用Fn::And、Fn::Or、Fn::Not、Fn::Equals定义条件。多个条件之间使用半角逗号(,)隔开。在创建或更新资源栈时,系统先计算模板中的所有条件,然后再创建资源。创建与true条件关联的所有资源,忽略与false条件关联的所有资源。更多详细信息,请参见条件(Conditions)
  • Resources:可选,用于详细定义使用该模板创建的资源栈所包含的资源,包括资源间的依赖关系、配置细节等。更多详细信息,请参见资源(Resources)
  • Outputs:可选,用于输出一些资源属性等有用信息。可以通过API或控制台获取输出的内容。更多详细信息,请参见输出(Outputs)

3. 编写ROS模板

本步骤将指导您如何编写创建VPC和VSwitch的ROS模板。

编写模板最为重要的部分是在资源(Resources)中声明需要创建的资源,您可以在资源类型索引中查看ROS支持的所有资源类型,然后单击特定资源类型查看该资源类型支持的属性和返回值信息。

  1. 查询资源类型详情。

1.1 访问资源类型索引,根据部署场景查询资源类型(例如:创建VPC需要用到资源类型ALIYUN::ECS::VPC)。

1.2 访问指定资源类型(例如:ALIYUN::ECS::VPC),查询属性详情。 资源类型文档中为每个属性定义了“类型”、“必须”、“允许更新”、“描述”、“约束”等信息,其中:

1.2.1 若“必须”为是,则要求必须在模板Resources的Properties中声明该属性;反之,则选填。

1.2.2 若“允许更新”为是,则意味着新模板中可以修改此属性,再使用新模板去更新资源栈以达到更新云资源属性的目的;反之,则不允许更新。

  1. 声明创建的资源(Resources)

您可以定义专有网络名称(VpcName)和专有网络网段(CidrBlock)、交换机可用区(ZoneId)、交换机名称(VSwitchName)、交换机网段(CidrBlock),编写Resources模板示例代码段。

"Resources": {
    "VPC": {
      "Type": "ALIYUN::ECS::VPC",
      "Properties": {
        "VpcName": "CreateVPCTest",
        "CidrBlock": "192.168.0.0/16"
      }
    },
    "VSwitch": {
      "Type": "ALIYUN::ECS::VSwitch",
      "Properties": {
        "VpcId": { "Ref": "VPC" },
        "ZoneId": "cn-beijing-h",
        "VSwitchName": "CreateVSWTest",
        "CidrBlock": "192.168.0.0/24"
      }
    }
  }

注意 :

在Resources我们定义声明了VPC与VSwitch两个资源,由于VSwitch是依赖VPC创建完成后才能被创建的,所以正常模式下我们需要在VSwitch资源中添加DependsOn属性以实现VSwitch资源在VPC资源之后被创建,但由于我们在VSwitch资源中使用Ref函数引用获取了VPC资源的VpcId属性,所以不需要特别添加DependsOn依赖关系资源编排服务会自动根据这种引用关系去编排创建对应的资源。添加DependsOn属性的示例代码如下所示。

"Resources": {
    "VPC": {
      "Type": "ALIYUN::ECS::VPC",
      "Properties": {
        "VpcName": "CreateVPCTest",
        "CidrBlock": "192.168.0.0/16"
      }
    },
    "VSwitch": {
      "Type": "ALIYUN::ECS::VSwitch",
      "DependsOn": "VPC",
      "Properties": {
        "VpcId": { "Ref": "VPC" },
        "ZoneId": "cn-beijing-h",
        "VSwitchName": "CreateVSWTest",
        "CidrBlock": "192.168.0.0/24"
      }
    }
  }
  1. 定义模版参数(Parameters)

参数

说明

VpcName

默认值为CreateVPCTest,被VPC的VpcName属性引用。

VpcCidrBlock

默认值为192.168.0.0/16,被VPC的CidrBlock属性引用。

VswName

默认值为CreateVSWTest,被VSwitch的VSwitchName。

ZoneId

被VSwitch的ZoneId属性引用。

VswCidrBlock

默认值为192.168.0.0/24,被VSwitch的CidrBlock属性引用。

在模板中为资源属性指定固定值的方式比较便捷,但是不够灵活。参数可以提高模板的灵活性和可复用性,您可以通过定义参数取值和参数属性实现动态展示参数取值列表、为参数分组等需求,例如:CidrBlock为192.168.0.0/16,只能配置192.168.0.0/16的IPv4网段来创建专有网络,如果要更换IPv4网段创建专有网络需手动修改模板中的CidrBlock取值。此时您可以将常用的或共同的属性提取出来定义为参数,以便在不修改模板的前提下,通过指定不同的参数来创建不同属性的资源。模板中定义的参数示例代码段如下:

"Parameters": {
    "VpcName": {
      "Type": "String",
      "Default": "CreateVPCTest"
    },
    "VpcCidrBlock": {
      "Type": "String",
      "Default": "192.168.0.0/16"
    },
    "VswName": {
      "Type": "String",
      "Default": "CreateVSWTest"
    },
    "ZoneId": {
      "Type": "String"
    },
    "VswCidrBlock": {
      "Type": "String",
      "Default": "192.168.0.0/24"
    }
  }
  1. 定义模版的输出(Outputs)内容

输出(Outputs)中定义使用模板创建资源栈后的输出内容。

您可以定义专有网络ID(VpcId),编写Outputs模板示例代码段。

"Outputs": {
    "VpcId": {
      "Value": { "Ref": "VPC" }
    },
    "VRouterId": {
      "Value": { "Fn::GetAtt": ["VPC", "VRouterId"] }
    },
    "VSwitchId": {
      "Value": { "Ref": "VSwitch" }
    }
  }
  1. 创建VPC模板。

根据步骤1~4,定义出完整模板如下。

{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
    "VpcName": {
      "Type": "String",
      "Default": "CreateVPCTest"
    },
    "VpcCidrBlock": {
      "Type": "String",
      "Default": "192.168.0.0/16"
    },
    "VswName": {
      "Type": "String",
      "Default": "CreateVSWTest"
    },
    "ZoneId": {
      "Type": "String"
    },
    "VswCidrBlock": {
      "Type": "String",
      "Default": "192.168.0.0/24"
    }
  },
  "Resources": {
    "VPC": {
      "Type": "ALIYUN::ECS::VPC",
      "Properties": {
        "VpcName": "CreateVPCTest",
        "CidrBlock": {
          "Ref": "VpcCidrBlock"
        }
      }
    },
    "VSwitch": {
      "Type": "ALIYUN::ECS::VSwitch",
      "Properties": {
        "VpcId": {
          "Ref": "VPC"
        },
        "ZoneId": {
          "Ref": "ZoneId"
        },
        "VSwitchName": "CreateVSWTest",
        "CidrBlock": {
          "Ref": "VswCidrBlock"
        }
      }
    }
  },
  "Outputs": {
    "VpcId": {
      "Value": {
        "Ref": "VPC"
      }
    },
    "VRouterId": {
      "Value": {
        "Fn::GetAtt": [
          "VPC",
          "VRouterId"
        ]
      }
    },
    "VSwitchId": {
      "Value": {
        "Ref": "VSwitch"
      }
    }
  },
  "Metadata": {
    "TemplateTags": [
      "acs:developer:云起实验室:创建VPC和VSwitch"
    ]
  }
}

4. 创建资源栈

本步骤将指导您如何使用您的阿里云账号,通过资源编排控制台创建VPC和VSwitch。

  1. 前往资源编排控制台
  2. 资源栈列表页面,选择创建资源栈>使用新资源(标准)

  1. 选择模板页签,指定模板选择已有模板,模板录入方式选择输入模板,将上一小节中的创建VPC模板内容复制到模板内容输入框中,然后单击下一步
{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
    "VpcName": {
      "Type": "String",
      "Default": "CreateVPCTest"
    },
    "VpcCidrBlock": {
      "Type": "String",
      "Default": "192.168.0.0/16"
    },
    "VswName": {
      "Type": "String",
      "Default": "CreateVSWTest"
    },
    "ZoneId": {
      "Type": "String"
    },
    "VswCidrBlock": {
      "Type": "String",
      "Default": "192.168.0.0/24"
    }
  },
  "Resources": {
    "VPC": {
      "Type": "ALIYUN::ECS::VPC",
      "Properties": {
        "VpcName": "CreateVPCTest",
        "CidrBlock": {
          "Ref": "VpcCidrBlock"
        }
      }
    },
    "VSwitch": {
      "Type": "ALIYUN::ECS::VSwitch",
      "Properties": {
        "VpcId": {
          "Ref": "VPC"
        },
        "ZoneId": {
          "Ref": "ZoneId"
        },
        "VSwitchName": "CreateVSWTest",
        "CidrBlock": {
          "Ref": "VswCidrBlock"
        }
      }
    }
  },
  "Outputs": {
    "VpcId": {
      "Value": {
        "Ref": "VPC"
      }
    },
    "VRouterId": {
      "Value": {
        "Fn::GetAtt": [
          "VPC",
          "VRouterId"
        ]
      }
    },
    "VSwitchId": {
      "Value": {
        "Ref": "VSwitch"
      }
    }
  }
}

  1. 配置模板参数页签,ZoneId选择任意一个可用区,例如cn-beijing-a,其他参数配置保持默认即可,然后单击创建

返回如下页面,单击图标刷新页面,状态变为创建成功,表示您已成功创建VPC和VSwicth。

5. 查看资源栈

本步骤将指导您在完成创建资源栈操作后,如何查询资源栈详情。

  1. 查看资源栈信息。

单击资源栈信息页签,您可以查看到资源栈的基本信息资源栈策略

  1. 查看资源栈事件。

单击事件页签,您可以查看资源栈生命周期中发生的每一个事件。

  1. 查看资源栈资源。

单击资源页签,您可以查看资源栈所包括的每一个资源的信息。

  1. 查看资源栈输出。

单击输出页签,您可以查看创建资源栈时,模板中指定的输出信息。

  1. 查看资源栈参数。

单击参数页签,您可以查看创建资源栈时,模板中指定的参数,包括ROS提供的以ALIYUN::开头的伪参数。

  1. 查看资源栈模版。

单击模板签,您可以查看资源栈所对应的模板信息。

6. 释放资源

本步骤将指导您如何释放通过资源编排控制台创建的VPC和VSwitch资源。

  1. 模板页签,单击右上角的 图标。

  1. 资源栈列表页面,找到您创建的资源栈,单击操作列下的删除

  1. 删除资源栈对话框中,删除方式选择释放资源,单击确定

实验地址:https://developer.aliyun.com/adc/scenario/531d8fc324954c08964acf15518470fe

相关实践学习
2分钟自动化部署人生模拟器
本场景将带你借助云效流水线Flow实现人生模拟器小游戏的自动化部署
7天玩转云服务器
云服务器ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,可降低 IT 成本,提升运维效率。本课程手把手带你了解ECS、掌握基本操作、动手实操快照管理、镜像管理等。了解产品详情: https://www.aliyun.com/product/ecs
相关文章
|
弹性计算 网络安全 网络协议
新玩法,ROS帮你一键搭建NatGateway让VPC与Internet的互访
ROS创建NAT Gateway资源使VPC中的ECS可以与Internet互访
6133 0
|
弹性计算 网络协议 网络安全
ROS搭建具有NAT Gateway功能的VPC 网络
本文介绍如何利用资源编排服务,搭建具有公网访问能力的专有网络。
7024 0
|
弹性计算 NoSQL Redis
基于资源编排和 Ansible 在 VPC 下快速交付应用
阿里云资源编排服务(ROS)为我们快速搭建和整合云计算资源环境提供一个低成本、标准化的方案。基于ROS提供的能力,我们所要做的就是将所需的资源以资源模板的形式进行定义,进而实现对所定义云资源的快速生产。除此之外,ROS 将应用交付和资源释放的过程也进行了简化。 用户基于 ROS 交付应用可以有两种
7723 0
|
1月前
|
Ubuntu 机器人 Linux
|
5天前
|
XML 算法 自动驾驶
ROS进阶:使用URDF和Xacro构建差速轮式机器人模型
【11月更文挑战第7天】本篇文章介绍的是ROS高效进阶内容,使用URDF 语言(xml格式)做一个差速轮式机器人模型,并使用URDF的增强版xacro,对机器人模型文件进行二次优化。
|
10天前
|
自动驾驶 安全 机器人
ROS2:从初识到深入,探索机器人操作系统的进化之路
【11月更文挑战第4天】ROS2的学习过程和应用,介绍DDS系统的框架和知识。
|
6月前
|
传感器 人工智能 算法
ROS机器人操作系统
ROS机器人操作系统
174 1
|
1月前
|
传感器 数据可视化 机器人
【ROS速成】半小时入门机器人ROS系统简明教程之可视化系统(三)
半小时入门机器人ROS系统简明教程之可视化系统
|
1月前
|
机器人
【ROS速成】半小时入门机器人ROS系统简明教程之安装测速(二)
半小时入门机器人ROS系统简明教程之安装测速

相关产品

  • 资源编排
  • 推荐镜像

    更多