文档目录

概述

资源编排服务是一款帮助云计算用户简化云资源管理和自动化部署运维的服务。通过资源栈模板,定义所需的云资源、资源间的依赖关系、资源配置等,可实现自动化批量部署和配置资源,轻松管理云资源生命周期,通过API和SDK集成自动化运维能力。

如图 1所示:
图 1. 资源编排


资源编排具有以下功能优势:
  1. 用户只需创建资源栈模板或修改已有模板,定义所需的云资源、资源间的依赖关系、资源配置等,资源编排将通过编排引擎自动完成所有资源的创建和配置。
  2. 云平台提供示例模板,也可使用可视化编辑器,快速创建资源栈模板。
  3. 可根据业务需要,动态调整资源栈模板,从而调整资源栈以灵活应对业务发展需要。
  4. 如果不再需要某资源栈,可一键删除该栈及栈内所有资源。
  5. 可重复使用已创建的资源栈模板快速复制整套资源,无需重复配置。
  6. 可根据业务场景灵活组合云服务,以满足自动化运维的需求。

准备工作

admin请提前安装最新版本ZStack Cloud,并部署完成创建云主机必要的资源。

详情可参考《用户手册》安装部署章节。

本教程将详细介绍资源编排的使用方法。

典型使用流程

使用资源编排服务,用户可通过资源栈模板快速创建和配置一组资源,并便捷管理这组资源。

资源编排典型使用流程如下:
  1. 准备资源栈模板。
    • 使用资源编排服务,首先需准备资源栈模板,资源编排将基于所准备的模板创建和配置相应资源栈;
    • 可先查看云平台提供的资源栈示例模板(即系统模板)是否满足业务需求,若满足,可直接使用示例模板创建资源栈;
    • 若示例模板不满足业务需求,可创建一个新模板或修改已有模板(即自定义模板)。如何创建自定义模板,请参考资源栈模板章节;也可使用可视化编辑器快速创建自定义模板,请参考可视化编辑器章节。
  2. 通过模板创建资源栈。
    • 若示例模板满足业务需求,可直接使用示例模板创建资源栈。如何使用示例模板创建资源栈,请参考资源栈示例模板章节。
    • 用户也可使用自定义模板创建资源栈。如何使用自定义模板创建资源栈,请参考资源栈模板章节,也可使用可视化编辑器快速创建资源栈,请参考可视化编辑器章节。
  3. 管理资源栈。
    • 提供资源栈生命周期管理。
    • 可查看资源栈内所有资源的信息。
    • 删除资源栈时,默认会删除栈内编排创建的所有资源。
    • 管理资源栈的详细介绍,请参考资源栈章节。

资源栈

资源栈:资源编排通过资源栈模板快速创建和配置一组资源(以及资源间的依赖关系),这组资源定义为一个资源栈,通过管理资源栈,维护这组资源。

资源栈支持以下操作:
  • 创建资源栈
  • 查看资源栈信息
  • 删除资源栈

在ZStack Cloud主菜单,点击资源中心 > 资源编排 > 资源栈,进入资源栈界面。点击创建资源栈,弹出创建资源栈界面。

创建资源栈

创建资源栈分为以下三步:
  1. 资源栈配置。
    可参考以下示例输入相应内容:
    • 区域:自动显示当前区域
    • 名称:设置资源栈名称。命名规则:长度限制1~128字符,输入内容只能包含中文汉字、英文字母、数字、空格和以下7种英文字符 - _ . ( ) : + 且不支持以空格开头或结尾
    • 简介:可选项,可留空不填
    • 超时设置:设置创建资源栈的超时时限,超时将失败,默认为60分钟
    • 失败回滚:设置创建失败是否清理已创建的资源,默认开启
    • 创建方式:选择创建资源栈方式,本章节以创建LNMP为例。支持以下三种方式:
      • 资源栈模板:使用系统模板或自定义模板创建资源栈
        Note: 如何创建自定义模板,请参考资源栈模板章节。
      • 上传文件:使用已定义的UTF8编码格式模板文件创建资源栈
        Note: 关于模板语法的详细介绍,请参考资源栈模板语法章节。
      • 自定义文本:在文件编辑器中编辑模板创建资源栈
        Note: 关于模板语法的详细介绍,请参考资源栈模板语法章节。
    如图 2所示:
    图 2. 基础配置


  2. 模板配置。

    模板配置项与所选的模板有关,不同类型的资源栈需要输入的参数不同,本章节以创建LNMP为例。

    可参考以下示例输入相应内容:
    • 镜像:选择创建云主机的镜像
    • 计算规格:选择创建云主机的计算规格
    • 网络:选择创建云主机的网络
    Note:
    • 该功能通过调用DecodeStackTemplateAPI实现。
    • 开始创建资源栈前,可点击预览查看将要创建的资源列表。
    • 创建资源栈需要一定时长,请等待创建完成。
    如图 3所示:
    图 3. 模板配置


  3. 确认信息。

    查看将要创建的资源栈,支持跳转修改。

    如图 4所示:
    图 4. 确认信息


查看资源栈信息

在资源栈界面,选择某一资源栈,查看其详情页,可查看当前创建的资源栈状态和信息,包括:总览、资源、事件、审计。
  • 总览:显示资源栈当前状态、所有者、UUID、模板内容等信息,其中模板内容支持修改
  • 资源:显示资源栈所包括的全部资源信息
  • 事件:显示资源栈生命周期中发生的每一个事件
  • 审计:查看此资源栈的相关操作

删除资源栈

如果不再使用某一资源栈,可将该资源栈删除。
Note:
  • 删除资源栈默认会删除栈内编排创建的所有资源,包括云主机或云盘。
  • 若资源栈所对应的模板事先已设置DeletionPolicy为Retain,栈内编排创建的所有资源将会被保留,详情可参考资源(Resources)章节。

资源栈模板

资源栈模板:一个UTF8编码格式的文件,基于模板可快速创建资源栈,用户在模板中定义所需的云资源、资源间的依赖关系、资源配置等,资源编排将解析模板,自动完成所有资源的创建和配置。

资源栈模板支持以下操作:
  • 创建资源栈模板
  • 查看模板信息
  • 启用模板
  • 停用模板
  • 从模板创建资源栈
  • 修改模板
  • 删除模板

创建资源栈模板

在ZStack Cloud主菜单,点击资源中心 > 资源编排 > 资源栈模板,进入资源栈模板界面。点击创建资源栈模板,弹出创建资源栈模板界面。

可参考以下示例输入相应内容:
  • 名称:设置资源栈模板名称。命名规则:长度限制1~128字符,输入内容只能包含中文汉字、英文字母、数字、空格和以下7种英文字符 - _ . ( ) : + 且不支持以空格开头或结尾
  • 简介:可选项,可留空不填
  • 创建方式:选择创建资源栈方式。支持以下两种方式:
    • 自定义文本:在文件编辑器中编辑模板创建资源栈
      Note: 关于模板语法的详细介绍,请参考资源栈模板语法章节。
    • 上传文件:使用已定义的UTF8编码格式模板文件创建资源栈
      Note: 关于模板语法的详细介绍,请参考资源栈模板语法章节。
如图 5所示:
图 5. 创建资源栈模板


查看模板信息

在资源栈模板界面,选择某一模板,展开其详情页,可查看当前创建的模板状态和信息,包括:基本属性、资源栈模板内容、审计。
  • 基本信息:显示模板当前状态、名称、简介、模板UUID、MD5码等信息,其中名称和简介支持修改
  • 资源栈模板内容:显示模板具体内容,关于模板语法的详细介绍,请参考资源栈模板语法章节
  • 审计:查看此模板的相关操作

启用/停用模板

  • 启用模板:将已停用的模板启用
  • 停用模板:将模板停用,停用的模板不能创建资源栈

修改模板

支持在文件编辑器中修改模板。

从模板创建资源栈

在资源栈模板界面,选择需生成的资源栈模板,点击更多操作 > 生成资源栈,弹出创建资源栈界面。可参考资源栈章节填写参数。

删除模板

如果不再使用某一模板,可将该模板删除。

约束条件

  • 每个模板文件大小不超过4MB。
  • 若通过API提交,则参数大小不可超过64K。

资源栈示例模板

资源栈模板支持以下操作:
  • 查看示例模板信息
  • 使用示例模板创建资源栈

查看示例模板信息

在ZStack Cloud主菜单,点击资源中心 > 资源编排 > 资源栈模板,进入资源栈模板界面。点击创建资源栈模板,弹出创建资源栈模板界面,选择某一示例模板,进入其详情页,可查看模板状态和信息,包括:总览、审计。
  • 总览:显示示例模板的启用状态、UUID、MD5码、模板内容等信息
  • 审计:查看此模板的相关操作

使用示例模板生成资源栈

使用示例模板生成资源栈分为以下三步:
  1. 资源栈配置。
    可参考以下示例输入相应内容:
    • 区域:自动显示当前区域
    • 名称:设置资源栈名称
    • 简介:可选项,可留空不填
    • 超时设置:设置创建资源栈的超时时限,超时将失败,默认为60分钟
    • 失败回滚:设置创建失败是否清理已创建的资源,默认开启
    如图 6所示:
    图 6. 资源栈配置


  2. 模板配置。

    模板配置项与所选的模板有关,不同类型的资源栈需要输入的参数不同,本章节以ZStack.System.v4.EIP模板为例。

    可参考以下示例输入相应内容:
    • 计算规格:选择创建云主机的计算规格
    • 镜像:选择创建云主机的计算镜像
    • 私有网络:选择创建云主机的私有网络
    • 公有网络:选择创建弹性IP的公有网络
    Note:
    • 该功能通过调用DecodeStackTemplateAPI实现。
    • 开始创建资源栈前,可点击预览查看将要创建的资源列表。
    • 创建资源栈需要一定时长,请等待创建完成。
    如图 7所示:
    图 7. 模板配置


  3. 确认信息。

    查看将要创建的资源栈,支持跳转修改。

    如图 8所示:
    图 8. 确认信息


注意事项

示例模板不允许修改模板内容。

可视化编辑器

使用可视化编排,可以更直观高效地创建资源栈模板以及显示资源栈结构。打开可视化编排,通过拖曳资源到画布中适当位置,连线创建资源间的依赖关系,并输入需要的参数,即可快速创建资源栈模板,高效编排云资源。

可视化编排界面

在ZStack Cloud主菜单,点击资源中心 > 资源编排 > 可视化编排,进入可视化编排界面。

如图 9所示:
图 9. 可视化编排


可视化编排界面分为三个部分:
  • 顶部菜单:可视化资源编辑器的功能菜单。包括:预览模板、生成资源栈、另存为资源栈模板。
  • 左侧菜单:可视化资源编辑器支持的资源列表。可通过拖曳连线直观呈现云资源间的关系,高效编排云资源。目前支持以下资源:
    • 云资源池:云主机、云盘
    • 网络资源:二层网络、公有网络、扁平网络、VPC网络
    • 网络服务:安全组、弹性IP、端口转发、负载均衡、监听器
    • 网络设备:VPC路由器
  • 中间部分:可视化资源编辑器的画布,在此进行可视化资源编排。
    • 支持撤销、重做、放大、缩小、适应画布、删除、清除、预览、全局参数操作。
    • 当画布中资源布局足够多时,可通过拖动缩略框调整画布位置,也可通过滚动鼠标放大缩小画布。

可视化编排

可视化编排分为三个步骤:拖拽资源到画布、编辑资源属性、资源连线
  1. 拖拽资源到画布。

    以创建扁平网络为例,从左侧资源列表拖拽云主机、扁平网络、二层网络到画布。

    如图 10所示:
    图 10. 拖拽资源


  2. 编辑资源属性。

    资源拖拽至画布后,点击资源图标,可进行属性编辑。

    如图 11所示:
    图 11. 编辑属性


  3. 资源连线。

    每个资源属性编辑完成后,从连接点通过单击+的方式对资源进行连线。

    如图 12所示:
    图 12. 资源连线


可视化编排操作

可视化资源编辑器顶部的功能菜单,可对已编辑好的资源进行以下操作。包括:生成资源栈、另存为资源栈模板、预览模板、设置全局参数。
  • 生成资源栈:

    点击生成资源栈按钮,将跳转到生成资源栈界面,输入资源栈名称,点击下一步 > 确定按钮,可将编辑好的图形化资源栈模板生成资源栈。

    如图 13所示:
    图 13. 生成资源栈


  • 另存为资源栈模板:

    点击另存为资源栈模板按钮,将跳转到创建资源栈模板界面,输入资源栈模板名称,点击确定按钮,可将编辑好的图形化资源栈另存为资源栈模板。

    如图 14所示:
    图 14. 另存为资源栈模板


  • 预览模板:

    点击预览按钮,将编辑好的图形化资源栈模板以代码的形式呈现,进行预览。

    如图 15所示:
    图 15. 预览模板


典型场景实践

资源编排教程列举了示例模板场景实践典型场景。

示例模板场景实践

背景信息

本章节介绍如何使用资源栈示例模板ZStack.System.v1.VxlanVPC一键部署VXLAN类型的VPC网络。

操作步骤

  1. 准备资源栈模板。

    本实践直接使用示例模板创建资源栈。

    在ZStack Cloud私有云主菜单,点击资源中心 > 资源编排 > 资源栈示例模板,进入资源栈示例模板界面,即可看到示例模板ZStack.System.v1.VxlanVPC,展开其详情页,查看资源栈模板内容,详情如下:
    {
        "ZStackTemplateFormatVersion": "2018-06-18",
        "Description": "Creates Vxlan VPC network. This template creates a VPC network. Make sure that the public network and management network are working as expected. Note that the VXLAN VTEP CIDR is required.",
        "Parameters": {
            "VrouterImageUrl": {
                "Type": "String",
                "Label":"Vrouter image",
                "Description":"Specify the URL of a vRouter image. Contact ZStack official technical support to obtain the required image.",
                "DefaultValue": ""
            },
            "VmImageUrl": {
                "Type": "String",
                "Label": "VM image url",
                "Description":"Specify the URL of a VM image.",
                "DefaultValue": ""
            },
            "BackupStorage":{
                "Type": "CommaDelimitedList",
                "Label": "BackupStorage UUID",
                "Description":"BackStorage UUID"
            },
            "ManagementNetworkUuid":{
                "Type": "String",
                "Label": "Management network",
                "Description":"You can use public network as management network"
            },
            "PublicNetworkUuid":{
                "Type": "String",
                "Label": "Public network",
                "Description":"Public network UUID"
            },
            "ZoneUuid":{
                "Type": "String",
                "Label": "Zone",
                "Description":"Zone UUID"
            },
            "ClusterUuid":{
                "Type": "String",
                "Label": "Cluster",
                "Description":"Cluster UUID"
            },
            "Cidr":{
                "Type": "String",
                "Description":"VTEP CIDR. Use the correct CIDR",
                "DefaultValue":"{10.0.0.0/8}"
            },
            "Vni":{
                "Type": "Number",
                "DefaultValue":222
            },
            "StartVni":{
                "Type": "Number",
                "DefaultValue":100
            },
            "EndVni":{
                "Type": "Number",
                "DefaultValue":300
            },
            "StartIp":{
                "Type": "String",
                "DefaultValue":"192.168.20.2"
            },
            "EndIp":{
                "Type": "String",
                "DefaultValue":"192.168.20.200"
            },
            "Netmask":{
                "Type": "String",
                "DefaultValue":"255.255.255.0"
            },
            "Gateway":{
                "Type": "String",
                "DefaultValue":"192.168.20.1"
            }
        },
        "Resources": {
            "VrouterImage": {
                "Type": "ZStack::Resource::Image",
                "Properties": {
                    "name": {"Fn::Join":["-",[{"Ref":"ZStack::StackName"}, {"Ref":"ZStack::StackUuid"},{"Ref":"ZStack::AccountUuid"},{"Ref":"ZStack::AccountName"},"Vrouter-Image"]]},
                    "url": {"Ref":"VrouterImageUrl"},
                    "system": true,
                    "format": "qcow2",
                    "backupStorageUuids":{"Ref":"BackupStorage"}
                }
            },
            "VMImage": {
                "Type": "ZStack::Resource::Image",
                "Properties": {
                    "name": {"Fn::Join":["-",[{"Ref":"ZStack::StackName"}, "VmImage"]]},
                    "url": {"Ref":"VmImageUrl"},
                    "format": "qcow2",
                    "backupStorageUuids":{"Ref":"BackupStorage"}
                }
            },
            "VirtualRouterOffering":{
                "Type":"ZStack::Resource::VirtualRouterOffering",
                "Properties":{
                    "name": {"Fn::Join":["-",[{"Ref":"ZStack::StackName"}, "Vrouter-Offering"]]},
                    "zoneUuid":{"Ref":"ZoneUuid"},
                    "managementNetworkUuid":{"Ref":"ManagementNetworkUuid"},
                    "publicNetworkUuid":{"Ref":"PublicNetworkUuid"},
                    "imageUuid":{"Fn::GetAtt":["VrouterImage", "uuid"]},
                    "cpuNum":2,
                    "memorySize":2147483648
                }
            },
            "VpcVRouter":{
                "Type":"ZStack::Resource::VpcVRouter",
                "Properties":{
                    "name": {"Fn::Join":["-",[{"Ref":"ZStack::StackName"}, "VPC-Router"]]},
                    "virtualRouterOfferingUuid":{"Fn::GetAtt":["VirtualRouterOffering","uuid"]}
                }
            },
            "L2VxlanNetworkPool":{
                "Type":"ZStack::Resource::L2VxlanNetworkPool",
                "Properties":{
                    "name": {"Fn::Join":["-",[{"Ref":"ZStack::StackName"}, "L2VxlanNetworkPool"]]},
                    "zoneUuid":{"Ref":"ZoneUuid"}
                }
            },
            "VniRange":{
                "Type":"ZStack::Resource::VniRange",
                "Properties":{
                    "name": {"Fn::Join":["-",[{"Ref":"ZStack::StackName"}, "VniRange"]]},
                    "startVni":{"Ref":"StartVni"},
                    "endVni":{"Ref":"EndVni"},
                    "l2NetworkUuid":{"Fn::GetAtt":["L2VxlanNetworkPool","uuid"]}
                }
            },
            "L2VxlanNetwork":{
                "Type":"ZStack::Resource::L2VxlanNetwork",
                "Properties":{
                    "name": {"Fn::Join":["-",[{"Ref":"ZStack::StackName"}, "L2VxlanNetwork"]]},
                    "poolUuid":{"Fn::GetAtt":["L2VxlanNetworkPool","uuid"]},
                    "zoneUuid":{"Ref":"ZoneUuid"},
                    "vni":{"Ref":"Vni"}
                }
            },
            "VpcL3Network":{
                "Type":"ZStack::Resource::L3Network",
                "Properties":{
                    "name": {"Fn::Join":["-",[{"Ref":"ZStack::StackName"}, "VPC-Network"]]},
                    "l2NetworkUuid":{"Fn::GetAtt":["L2VxlanNetwork","uuid"]},
                    "category":"Private",
                    "type":"L3VpcNetwork",
                    "systemTags":["networkservices::VRouter"]
                }
            },
            "AttachL3ToVm":{
                "Type":"ZStack::Action::AttachL3NetworkToVm",
                "Properties":{
                    "vmInstanceUuid": {"Fn::GetAtt":["VpcVRouter","uuid"]},
                    "l3NetworkUuid":{"Fn::GetAtt":["VpcL3Network","uuid"]}
                },
                "DependsOn":[{"Ref":"AddIpRange"}]
            },
            "AddIpRange" :{
                "Type":"ZStack::Action::AddIpRange",
                "Properties":{
                    "name": {"Fn::Join":["-",[{"Ref":"ZStack::StackName"}, "iprange"]]},
                    "l3NetworkUuid":{"Fn::GetAtt":["VpcL3Network","uuid"]},
                    "startIp":{"Ref":"StartIp"},
                    "endIp":{"Ref":"EndIp"},
                    "netmask":{"Ref":"Netmask"},
                    "gateway":{"Ref":"Gateway"}
                }
            },
            "AttachL2NetworkToCluster":{
                "Type":"ZStack::Action::AttachL2NetworkToCluster",
                "Properties":{
                    "l2NetworkUuid":{"Fn::GetAtt":["L2VxlanNetworkPool","uuid"]},
                    "clusterUuid":{"Ref":"ClusterUuid"},
                    "systemTags":[{"Fn::Join":["::",["l2NetworkUuid",{"Fn::GetAtt":["L2VxlanNetwork","uuid"]},"clusterUuid",{"Ref":"ClusterUuid"},"cidr",{"Ref":"Cidr"}]]}]
                }
            },
            "TestVm":{
                "Type":"ZStack::Resource::VmInstance",
                "Properties":{
                    "name": {"Fn::Join":["-",[{"Ref":"ZStack::StackName"}, "TestVm"]]},
                    "cpuNum": 1,
                    "memorySize": 1073741824,
                    "l3NetworkUuids": [{"Fn::GetAtt":["VpcL3Network","uuid"]}],
                    "imageUuid": {"Fn::GetAtt":["VMImage", "uuid"]}
                },
                "DependsOn":[{"Ref":"AttachL3ToVm"}]
            }
        },
        "Outputs": {
            "vpc": {
                "Value": {
                    "Ref": "VpcL3Network"
                }
            }
        }
    }
    上述模板包含以下顶级字段:
    • "ZStackTemplateFormatVersion": "2018-06-18"

      定义模板版本。

    • "Description": "Creates Vxlan VPC network. This template creates a VPC network. Make sure that the public network and management network are working as expected. Note that the VXLAN VTEP CIDR is required."

      定义对模板的解释说明。

    • "Parameters": { }

      定义模板的参数列表。

      本例中定义了以下参数:
      • 路由器镜像URL
      • 云主机镜像URL
      • 镜像服务器
      • 管理网络
      • 公有网络
      • 区域
      • 集群
      • VTEP CIDR
      • VNI、起始VNI、结束VNI
      • 起始IP、结束IP、子网掩码、网关
    • "Resources": { }

      定义该模板将要创建的资源。

      本例中声明将要创建以下资源:
      • 添加一个路由器镜像
      • 添加一个云主机镜像
      • 创建一个路由器规格
      • 创建一个VPC路由器
      • 创建VXLAN网络池
      • 指定VNI范围
      • 创建一个二层VXLAN网络
      • 创建一个VPC网络
      • 挂载VPC网络到云主机
      • 配置VPC网络的IP范围
      • 挂载二层网络到集群
      • 创建一个计算规格
      • 创建一个云主机
      这里声明的资源属性可以引用"Parameters": { }中定义的参数。
    • "Outputs": { }

      定义资源创建完成后,通过资源栈输出资源属性等有用信息。

    关于模板语法的详细介绍,请参考资源栈模板语法章节。

  2. 通过示例模板创建资源栈。
    1. 资源栈配置

      在资源栈示例模板界面,选择示例模板ZStack.System.v1.VxlanVPC,点击更多操作 > 生成资源栈,弹出生成资源栈界面。

      可参考以下示例输入相应内容:
      • 区域:自动显示当前区域
      • 名称:设置资源栈名称
      • 简介:可选项,可留空不填
      • 超时设置:用于设置创建资源栈的超时时限,超时将失败,默认为60分钟
      • 失败回滚:默认勾选,超时失败后将清理已创建的资源
      • 创建方式:选择资源栈模板
      如图 16所示:
      图 16. 资源栈配置


    2. 模板配置
      根据需要的资源信息输入各个参数,不同类型的资源栈需要输入的参数不同。本例中可参考以下示例输入相应内容:
      • VPC路由器镜像链接地址:添加路由器镜像以创建VPC路由器
      • 云主机镜像链接地址:添加创建云主机的镜像
      • 镜像服务器:选择合适的镜像服务器
      • 管理网络:选择已提前创建的管理网络
        Note: 出于安全和稳定性考虑,建议部署独立的管理网络,并与公有网络隔离。
      • 公有网络:选择已提前创建的公有网络
      • 区域:自动显示当前区域
      • 集群:可选项,可选择VXLAN网络池加载的集群
      • Cidr:设置VTEP相应的CIDR
      • VNI:可选项,可从VXLAN网络池中选择指定的VNI,若留空不填,则由系统动态随机分配
      • 起始VNI:设置VXLAN网络池的起始VNI
      • 结束VNI:设置VXLAN网络池的结束VNI
      • 起始IP:设置VPC网络的起始IP
      • 结束IP:设置VPC网络的结束IP
      • 子网掩码:设置VPC网络的子网掩码
      • 网关:设置VPC网络的网关
      如图 17所示:
      图 17. 模板配置


      Note:
      • 开始创建资源栈前,可点击预览查看将要创建的资源列表。
      • 创建资源栈需要一定时长,请等待创建完成。
    3. 确认信息
      如图 18所示:
      图 18. 确认信息


  3. 管理资源栈。
    资源栈创建成功后,可在资源栈界面,进入详情页查看栈状态和栈信息。
    • 总览:显示资源栈基本信息、模板数据以及参数配置
    • 事件:显示资源栈生命周期中发生的每一个事件
    • 审计:查看此资源栈的相关操作

后续操作

至此,使用ZStack.System.v1.VxlanVPC资源栈示例模板一键部署VXLAN类型的VPC网络已完成。

可视化编排场景实践

前提条件

本场景介绍如何使用可视化编辑器快速部署VPC网路场景下的三层Web服务分离。

例如,可将Web云主机、应用云主机、数据库云主机分别部署在不同的网络层面,从而保证网络安全。

多层Web业务架构图如图 19所示:
图 19. 多层Web业务架构图


背景信息

可视化编辑器部署多层Web业务基本流程:
  1. 拖拽资源到画布。
  2. 编辑资源属性。
  3. 资源连线。
  4. 生成资源栈。
  5. 验证三台云主机的网络连通性。
假定客户配置如下:
  1. VPC路由器
    路由器名称 二层网络 VPC网络 IP地址段
    VPC路由器 L2Network-1 Web网络 192.168.0.0/24
    应用网络 192.168.100.0/24
    数据库网络 192.168.200.0/24
  2. 云主机
    云主机名称 所属网络 IP地址
    Web云主机 Web网络 192.168.0.100
    应用云主机 应用网络 192.168.100.100
    数据库云主机 数据库网络 192.168.200.100

操作步骤

  1. 拖拽资源到画布。

    在ZStack Cloud主菜单,点击资源中心 > 资源编排 > 可视化编排,进入可视化编排界面,从左侧资源列表拖拽二层网络、VPC网络、VPC路由器和云主机到画布。

    如图 20所示:
    图 20. 拖拽资源到画布


  2. 编辑资源属性。

    点击某一资源图标,弹出相应UI配置弹窗,参考客户场景配置信息编辑相关资源属性。

    如图 21所示:
    图 21. 编辑资源属性


  3. 资源连线。
    参考客户场景配置信息,从连接点通过拖拽的方式对资源进行连线。
    Note: 连线拖拽后,会自动筛选出可连接的连接点。
    如图 22所示:
    图 22. 资源连线


  4. 生成资源栈。

    点击生成资源栈按钮,进入生成资源栈界面。

    可参考以下示例输入相应内容:
    • 区域:自动显示当前区域
    • 名称:设置资源栈名称
    • 简介:可选项,可留空不填
    • 超时设置:设置创建资源栈的超时时限,超时将失败,默认为60分钟
    • 失败回滚:设置创建失败是否清理已创建的资源,默认开启
    • 创建方式:选择创建资源栈方式,本章节以创建LNMP为例。支持以下三种方式:
      • 资源栈模板:使用系统模板或自定义模板创建资源栈
        Note: 如何创建自定义模板,请参考资源栈模板章节。
      • 上传文件:使用已定义的UTF8编码格式模板文件创建资源栈
        Note: 关于模板语法的详细介绍,请参考资源栈模板语法章节。
      • 自定义文本:在文件编辑器中编辑模板创建资源栈
        Note: 关于模板语法的详细介绍,请参考资源栈模板语法章节。
    如图 23所示:
    图 23. 生成资源栈


  5. 验证三台云主机的网络连通性。

    使用ping命令验证网络连通性。

    预期结果:三台云主机可相互连通,并且可访问公网。

    实际结果:如图 24所示:
    图 24. 验证云主机网络连通性






    由此可见,三台云主机可相互连通,并且可访问公网。

后续操作

至此,可视化编辑器快速部署VPC网路场景下的三层Web服务分离介绍完毕。

附录

资源栈模板语法

资源栈模板是一个UTF8编码格式的文件。

基于模板可快速创建资源栈,用户在模板中定义所需的云资源、资源间的依赖关系、资源配置等,资源编排将解析模板,自动完成所有资源的创建和配置。

资源栈模板结构

资源栈模板结构如下:
{
    "ZStackTemplateFormatVersion" : "YYYY-MM-DD",
    "Description" : "模板描述信息,可用于说明模板的适用场景、架构说明等。",
    "Parameters" : {
      // 定义创建资源栈时,用户可以定制化的参数。
    },
    "Mappings" : {
      // 定义映射信息表,映射信息是一种多层的Map结构。
    },
    "Resources" : {
      // 所需资源的详细定义,包括资源间的依赖关系、配置细节等。
    },
    "Outputs" : {
      // 用于输出一些资源属性等有用信息,可以通过API获取输出的内容。
  }
  • ZStackTemplateFormatVersion(必需)
    模板版本号。
    • 格式为:YYYY-MM-DD
  • Description(可选)
    模板描述信息,可用于说明模板的适用场景、架构说明等。
    • 对模板进行详细描述,有利于用户理解模板内容。
  • Parameters(可选)
    定义创建资源栈时,用户可以定制化的参数。
    • 例如,用户将创建云主机的计算规格设计成一个参数。
    • 参数支持默认值。
    • 使用参数可以增强模板的灵活性,提高复用性。
    • 关于参数(Parameters)的详细介绍,请参考参数(Parameters)章节。
  • Mappings(可选)
    定义映射信息表,映射信息是一种多层的Map结构。
    • 可通过Fn::FindInMap函数选择key对应的值。
    • 可根据不同的输入参数值作为key查找映射表。
    • 例如,可根据区域不同,自动查找区域-镜像映射表,从而找到适用的镜像。
    • 关于映射(Mappings)的详细介绍,请参考映射(Mappings)章节。
  • Resources(可选)
    所需资源的详细定义,包括资源间的依赖关系、配置细节等。
  • Outputs(可选)
    用于输出一些资源属性等有用信息,可以通过API获取输出的内容。

参数(Parameters)

参数(Parameters):定义创建资源栈时,用户可以定制化的参数。
  • 创建资源栈模板时,使用参数可以增强模板的灵活性,提高复用性。
  • 创建资源栈时,可根据实际情况替换模板中的某些参数值。

语法

参数由参数名称和参数属性组成。
  • 参数名称必须为字母数字,同一个模板中不能与其它参数名称重复。
  • 可以用Label字段定义友好的参数名。
参数属性列表:
属性 描述 是否必需 举例
Type 参数类型,默认支持:
  • String
  • Number(整数或浮点)
  • CommaDelimitedList(相当于Java里的List<String>)
  • Boolean
是 "Type": "String"
Lable 参数别名,生成预览或正式表单时用 否 "Lable": "云主机密码"
Description 参数描述 否 "Description": "云主机登录密码"
NoEcho 该字段是否用*****替代,不填则不替代 否 "NoEcho": true
Note: 暂不支持
DefaultValue 参数默认值 否 "DefaultValue": "password"
资源编排还提供一些常量参数。
  • 常量参数可直接引用,无需在Parameters中定义(也不可定义)。
  • 其值在资源编排运行时确定。
常量参数列表
常量名 描述
ZStack::StackName 当前栈的名称
ZStack::StackUuid 当前栈的UUID
ZStack::AccountUuid 当前栈的AccountUuid
ZStack::AccountName 当前栈的AccountName

示例

代码段示例如下:
"Parameters" : {
  "username" : {
    "Label": "登录名",
    "Description" : "登录名",
    "DefaultValue": "root",
    "Type" : "String"
  },
  "password" : {
    "Label": "密码",
    "NoEcho" : "true",
    "Description" : "主机登录密码",
    "Type" : "String",
  }
}
本例中Parameters声明两个参数:
  • username
    • 参数属于String类型,默认值为root。
    • 可指定的最小长度为2,可指定的最大长度为12。
    Note: username的默认值也必须符合长度限制和允许值限制。
  • password
    • 参数属于String类型,无默认值。
    • 将NoEcho属性设置为true,可阻止查询栈接口返回参数值。
      Note: NoEcho属性设置暂不支持。
    • 可指定的最小长度为6,可指定的最大长度为41。
    • 允许大、小写字母字符和数字。

资源(Resources)

资源(Resources):所需资源的详细定义,包括资源间的依赖关系、配置细节等。
  • Resources可引用前述Parameters、Mappings、以及Functions的内容。
  • Resources可被其他Resources和Outputs所引用。

语法

资源由资源逻辑UUID和资源描述组成。
  • 资源描述用大括号{ }括起。
  • 如果声明多个资源,用逗号,分隔开。
资源关键字列表:
关键字 描述 是否必需 举例
Type 资源类型,包括以下两种类型:
  • Resource类型
  • Action类型
是
  • "Type": "ZStack::Resource::VmInstance"
  • "Type": "ZStack::Action::AddIpRange"
  • 详情请参考资源类型(Type)
Properties 资源属性,为资源指定创建参数 是 详情请参考资源属性(Properties)
DependsOn 资源依赖,定义资源所依赖的资源 否
DeletionPolicy 删除策略
  • 资源栈被删除时是否保留某个资源
  • 若某个资源需要保留,则它所依赖的资源也要保留(系统自动为其保留)
  • 默认不保留
否
Description 资源描述 否
  • "Description" : "attach ip range to l3 network"

示例

代码段示例如下:
"Resources" : {
    "UUID-1" : {
        "Description" : "资源描述",
        "Type" : "资源类型",
        "Properties" : {
            资源属性描述
        }
    },
    "UUID-2" : {
        "Description" : "资源描述"
        "Type" : "资源类型",
        "Properties" : {
            资源属性描述
        },
        "DependsOn":"要依赖的资源,如UUID-1,注意上下文中必须包含此资源",
        "DeletionPolicy":"删除策略"
    }
}
本例中Resources声明两个资源,关键字说明如下:
  • 资源UUID
    • UUID-1、UUID-2均为资源逻辑UUID,且均为变量。
    • 在创建模板其它部分时,可以通过资源逻辑UUID引用该资源。
    • 资源逻辑UUID在模板中具有唯一性。
  • 资源类型(Type)
    • 表示正在声明的资源的类型,包括:Resource类型、Action类型。
    • 例如,"Type": "ZStack::Resource::VmInstance"表示云主机实例,"Type": "ZStack::Action::AddIpRange"表示添加IP范围。
    • 关于资源编排支持的所有资源列表,详情请参考资源索引章节。
  • 资源属性(Properties)
    • 为资源指定创建参数。
    • 代码段示例如下:
      "Resources" : {
          "InstanceOffering" : {
              "Type" : "ZStack::InstanceOffering",
              "Properties" : {
                  "cpuNum" : "1",
                  "cpuSpeed" : "1",
                  "memorySize" : "1073741824",
                  "name" : "instance-offering",
                  "type" : "UserVm",
                  "sortKey": 0,
                  "allocatorStrategy": "LeastVmPreferredHostAllocatorStrategy"
              }
          }
      }
    • 资源属性值定义规则:
      • 属性值可以是文本字符串、字符串列表、布尔值、引用参数、或者函数返回值。
      • 如果属性值为文本字符串或布尔值,该值会被双引号" "括起来。
      • 如果属性值为任一类型的字符串列表,该值会被中括号[ ]括起来。
      • 如果值为内部函数或引用的参数,该值会被大括号{ }括起来。
      • 将文字、列表、引用参数、和函数返回值合并起来取值时,上述规则适用。
      • 以下示例说明如何声明不同的属性值类型:
        "Properties" : {
            "String" : "string",
            "LiteralList" : [ "value1", "value2" ],
            "Boolean" : "true"
            "ReferenceForOneValue" :  { "Ref" : "ResourceID" } ,
            "FunctionResultWithFunctionParams" : {
                "Fn::Join" : [ "%", [ "Key=", { "Ref" : "SomeParameter" } ] ] }
        }
    • 如果资源不需要声明任何属性,可以忽略该资源的属性部分。
  • 资源依赖(DependsOn)
    • 定义资源所依赖的资源。
    • 为某个资源添加DependsOn属性后,该资源仅在DependsOn属性中指定的资源之后创建。
    • 代码段示例如下:
      {
          "ZStackTemplateFormatVersion" : "2018-06-18",
          "Resources" : {
              "WebServer": {
                  "Type": "ZStack::Resource::VmInstance",
                  "DependsOn": "DatabseServer"
              },
              "DatabseServer": {
                  "Type": "ZStack::Resource::VmInstance",
                  "Properties": {
                      "name": {"Fn::Join":["-",[{"Ref":"ZStack::StackName"},"VM"]]},
                      "instanceOfferingUuid": {"Ref":"InstanceOfferingUuid"},
                      "imageUuid":{"Ref":"ImageUuid"},
                      "l3NetworkUuids":[{"Ref":"PrivateNetworkUuid"}],
                      "dataDiskOfferingUuids":[{"Ref":"DiskOfferingUuid"}],
      	         "hostUuid":{"Ref":"HostUuid"}
                  }
              }
          }
      }

      本例表示WebServer将在DatabaseServer创建成功后才开始创建。

  • 删除策略(DeletionPolicy)
    • 在模板中,设置DeletionPolicy属性,可以声明资源栈被删除时是否保留资源。
    • DeletionPolicy有Retain和Delete两个选项。
      • 默认为Delete,表示删除资源栈默认会删除栈内编排创建的所有资源。
      • 若将DeletionPolicy设置为Retain,表示资源栈被删除时可保留资源。此时,该资源所依赖的资源也要保留(系统自动为其保留)。
        例如,模板对应的资源栈被删除时,保留栈内的云主机,代码段示例如下:
        "Resources" : {
            "VMInstance" : {
                "Type" : "ZStack::Resource::VmInstance",
                "Properties": {
                    "name": {"Fn::Join":["-",[{"Ref":"ZStack::StackName"},"VM"]]},
                    "instanceOfferingUuid": {"Ref":"InstanceOfferingUuid"},
                    "imageUuid":{"Ref":"ImageUuid"},
                    "l3NetworkUuids":[{"Ref":"PrivateNetworkUuid"}],
                    "dataDiskOfferingUuids":[{"Ref":"DiskOfferingUuid"}],
        	     "hostUuid":{"Ref":"HostUuid"}
            },
            "DeletionPolicy" : "Retain"
          }
        }

输出(Outputs)

输出(Outputs):用于输出一些资源属性等有用信息,可以通过API获取输出的内容。

语法

输出由输出UUID和输出描述组成。
  • 输出描述用大括号{ }括起。
  • 如果声明多个输出项,用逗号,分隔开。
输出关键字列表:
关键字 描述 是否必需 举例
Description 输出描述 否
Value 输出内容 是

示例

代码段示例如下:
"Outputs" : {
    "UUID-1" : {
        "Description" : "输出描述",
        "Value" : "输出内容"
    },
    "UUID-2" : {
        "Description" : "输出描述",
        "Value" : "输出内容"
    }
}
本例中Output声明了两个输出项,关键字说明如下:
  • 输出UUID
    • 输出UUID在模板中具有唯一性。
  • 输出描述(Description)
    • 用于描述输出值的String类型。
  • 输出内容(Value)
    • 在调用查询堆栈接口时,返回的属性值。
    • 代码段示例如下:
      {
      	"ZStackTemplateFormatVersion": "2018-06-18",
      	"Description": "本示例将创建一个带云盘的云主机(基于本地存储), 创建示例前提环境:\n计算规格,镜像,云盘规格,私有网络,可用物理机",
      	"Parameters": {
      	    "InstanceOfferingUuid": {
      	        "Type": "String",
                     "Label": "计算规格",
      		 "Description": "The instance offering uuid"
      	    },
      	    "ImageUuid": {
      		 "Type": "String",
                     "Label": "镜像",
      		 "Description": "The Image uuid for creating VmInstance, Please choose an image not iso"
      	    },
      	    "PrivateNetworkUuid": {
      		 "Type": "String",
                     "Label": "私有网络",
      		 "Description" : "The private network uuid for creating VmInstance"
                 },
      	    "DiskOfferingUuid": {
      		 "Type": "String",
                     "Label": "云盘规格",
      		 "Description": "Volume size offering uuid"
      	    },
      	    "HostUuid": {
      		 "Type": "String",
                     "Label": "物理机",
      		 "Description": "Host uuid, that vm will start on"
      	    }
      	},
      	"Resources": {
      	    "VmInstance": {
      		 "Type": "ZStack::Resource::VmInstance",
      		 "Properties": {
      		     "name": {"Fn::Join":["-",[{"Ref":"ZStack::StackName"},"VM"]]},
      		     "instanceOfferingUuid": {"Ref":"InstanceOfferingUuid"},
      		     "imageUuid":{"Ref":"ImageUuid"},
      		     "l3NetworkUuids":[{"Ref":"PrivateNetworkUuid"}],
      		     "dataDiskOfferingUuids":[{"Ref":"DiskOfferingUuid"}],
      		     "hostUuid":{"Ref":"HostUuid"}
      		 }
      	    }
      	},
      	"Outputs": {
      	    "VmInstance": {
      	        "Value": {
      		     "Ref": "VmInstance"
      		 }
      	    }
      	}
      }

      本例中,输出部分有1个输出项,将输出VmInstance的属性值。

函数(Functions)

资源编排提供多个内置函数,用于管理资源栈。可在定义资源(Resources)、输出(Outputs)和映射(Mappings)时,使用内置函数。

提供的内置函数列表:
  • Fn::Base64
  • Fn::FindInMap
  • Fn::GetAtt
  • Fn::Join
  • Fn::Split
  • Fn::Select
  • Ref
  • Fn::If
  • Fn::Equal
  • Fn::And
  • Fn::Not
  • Fn::Or

Fn::Base64

返回输入字符串的Base64编码结果。
  • 声明
    "Fn::Base64" : stringToEncode
  • 参数
    • stringToEncode:转换成Base64的字符串。
  • 示例
    "Fn::Base64" : "password"
  • 返回值

    用Base64表示的原始字符串。

    本例中,返回"cGFzc3dvcmQ=",即"password"的Base64编码结果。

Fn::FindInMap

返回与Mappings声明的双层映射中的键对应的值。
  • 声明
    "Fn::FindInMap" : ["MapName", "TopLevelKey", "SecondLevelKey"]
  • 参数
    • MapName:Mappings 中所声明映射的 ID,包含键和值。
    • TopLevelKey:第一级键,其值是一个键/值对列表。
    • SecondLevelKey:第二级键,其值是一个字符串或者数字。
  • 示例
    "Fn::FindInMap" : ["RegionMap", "cn-shanghai", "32"]
  • 返回值

    分配给SecondLevelKey的值。

    本例中,返回"RegionMap"中"cn-shanghai"对应的键/值对列表里,键为"32"对应的值。

  • 支持的函数
    可在Fn::FindInMap函数中嵌套使用以下函数:
    • Fn::FindInMap
    • Ref

Fn::GetAtt

返回模板中的资源的属性值。
  • 声明
    "Fn::GetAtt": ["resourceUuid", "attributeName"]
  • 参数
    • resourceUuid:目标资源的逻辑UUID。
    • attributeName:目标资源的属性名称。
  • 示例
    "Fn::GetAtt" : ["MyVMInstance", "ImageUuid"]
  • 返回值

    属性值。

    本例中,返回resourceUuid为"MyVMInstance"的"ImageUuid"属性。

Fn::Join

将一组值连接起来,用特定分隔符隔开。
  • 声明
    "Fn::Join" : ["delimiter", ["string1", "string2", ...]]
  • 参数
    • delimiter:分隔符。分隔符可为空,可将所有的值直接连接起来。
    • ["string1", "string2", ...]:被连接起来的值列表示例。
  • 示例
    "Fn::Join" : ["-", ["a", "b", "c"]]
  • 返回值

    被连接起来的字符串。

    本例中,返回"a-b-c"

  • 支持的函数
    可在Fn::Join函数中嵌套使用以下函数:
    • Fn::Base64
    • Fn::GetAtt
    • Fn::Join
    • Fn::Select
    • Ref

Fn::Split

通过指定分隔符对字符串进行切片,并返回所有切片组成的列表。
  • 声明
    "Fn::Split" : ["delimiter", "original_string"]
  • 参数
    • delimiter:分隔符,例如:,,;,\n,\t 等。
    • original_string:将要被切片的字符串。
  • 示例
    "Fn::Split": [";", "foo; bar; achoo"]
  • 返回值

    切片后所有字符串组成的列表。

    本例中,返回["foo", " bar", "achoo"]

  • 支持的函数
    可在Fn::Split函数中嵌套使用以下函数:
    • Fn::Base64
    • Fn::FindInMap
    • Fn::GetAtt
    • Fn::Join
    • Fn::Select
    • Ref

Fn::Select

通过索引返回数据元列表中的单个数据元。
  • 声明
    • 数据元列表可为一个数组:
      "Fn::Select" : ["index", ["value1", "value2", ...]]
    • 数据元列表可为一个映射表:
      "Fn::Select" : ["index", {"key1": "value1", ...}]
  • 参数
    • index:待检索数据元的索引。
      • 如果数据元列表是一个数组,则索引是0到N-1之间的某个值,其中N代表阵列中元素的数量。
      • 如果数据元列表是一个映射表,则索引是映射表中的某个键。
      • 如果找不到索引对应的值,则返回空字符串。
  • 示例
    • 示例一:数据元列表是一个数组
      "Fn::Select" : ["2", ["foo", " bar", "achoo"]]
    • 示例二:数据元列表是一个映射表
      "Fn::Select" : ["shape", {"shape": "circle", "height": "80"}]
    • 示例三:数据元列表是一个CommaDelimitedList
      "Parameters" : {
      	"userParam": {
                 "Type": "CommaDelimitedList",
                 "Default": "10.0.100.0/24, 10.0.101.0/24, 10.0.102.0/24"
             }
      },
      "Resources": {
      	"resourceUuid": {
                 "Properties": {
                     "CidrBlock": {"Fn::Select" : [0, {"Ref":"userParam"}]}
                 }
             }
      }
    Note:
    • 若Fn::Select函数不嵌套使用函数,第一个参数为字符串,参见示例一("2")、示例二("shape");
    • 若Fn::Select函数嵌套使用函数,第一个参数为数字,参见示例三(0)。
  • 返回值
    选定的数据元。
    • 示例一:返回"achoo"
    • 示例二:返回"circle"
    • 示例三:返回"10.0.100.0/24"
  • 支持的函数
    • 对于Fn::Select索引值,可在Fn::Select函数中嵌套使用Ref函数。
    • 对于对象的Fn::Select列表,可在Fn::Select函数中嵌套使用以下函数:
      • Fn::Base64
      • Fn::FindInMap
      • Fn::GetAtt
      • Fn::Join
      • Fn::Select
      • Ref

Ref

返回指定参数或资源的值。
  • 如果指定参数是resourceUuid,则返回资源的值。
  • 否则系统将认为指定参数是参数,将尝试返回参数的值。
  • 声明
    "Ref":"logicalName"
  • 参数
    • logicalName:要引用的资源或参数的逻辑名称。
  • 示例
    若diskOfferingParam被定义为:
    "diskOfferingParam": {
    	"allocatorStrategy": "DefaultPrimaryStorageAllocationStrategy",
           "diskSize": "21474836480",
           "type": "DefaultDiskOfferingType",
           "sorkKey": "0"
    }
    "Ref":"diskOfferingParam"
  • 返回值

    资源的值或者参数的值。

    本例中,返回diskOfferingParam的值:
    {
    	"allocatorStrategy": "DefaultPrimaryStorageAllocationStrategy",
           "diskSize": "21474836480",
           "type": "DefaultDiskOfferingType",
           "sorkKey": "0"
    }
  • 支持的函数

    不能在Ref函数中嵌套使用任何函数。必须指定为资源逻辑UUID的字符串。

Fn::If

如果指定的条件计算为true,则返回一个值;如果指定的条件计算为false,则返回另一个值。
  • 在模板Resources和Outputs属性值中支持Fn::If内部函数。
  • 声明
    "Fn::If": ["condition_name", "value_if_true", "value_if_false"]
  • 参数
    • condition_name:Conditions中条件对应的条件名称,通过条件名称引用条件。
    • value_if_true:当指定的条件计算为true时,返回此值。
    • value_if_false:当指定的条件计算为false时,返回此值。
  • 示例
    "Fn::If": ["condition16", "vm-true", "vm-false"]
  • 返回值

    根据指定条件计算的结果返回相应的参数值。

    本例中,若condition16的结果是true,则返回vm-true;若condition16的结果是false,则返回vm-false。

  • 支持的函数
    可在Fn::If函数中嵌套使用以下函数:
    • Fn::FindInMap
    • Ref
    • Fn::Equal
    • Fn::And
    • Fn::Not
    • Fn::Or

Fn::Equal

比较两个值是否相等。如果两个值相等,则返回true;如果不相等,则返回false。
  • 声明
    "Fn::Equal": [value_1, value_2]
  • 参数
    • value:要比较的任意类型的值。
  • 示例
    "Fn::Equal": [true, false]
  • 返回值

    true或false。

    本例中,返回false。

  • 支持的函数
    可在Fn::Equal函数中嵌套使用以下函数:
    • Fn::FindInMap
    • Ref
    • Fn::Equal
    • Fn::And
    • Fn::Not
    • Fn::Or

Fn::And

代表AND运算符,最少包含两个条件。如果所有指定条件计算为true,则返回true;如果任意条件计算为false,则返回false。
  • 声明
    "Fn::And": [condition, ...]
  • 参数
    • condition:计算为true或false的条件。
  • 示例
    "Fn::And": [true, false]
  • 返回值

    true或false。

    本例中,返回false。

  • 支持的函数
    可在Fn::And函数中嵌套使用以下函数:
    • Fn::FindInMap
    • Ref
    • Fn::Equal
    • Fn::And
    • Fn::Not
    • Fn::Or

Fn::Not

代表NOT运算符。对计算为false的条件,返回true;对计算为true的条件,返回false。
  • 声明
    "Fn::Not": condition
  • 参数
    • condition:计算为true或false的条件。
  • 示例
    "Fn::Not": true
  • 返回值

    true或false。

    本例中,返回false。

  • 支持的函数
    可在Fn::Not函数中嵌套使用以下函数:
    • Fn::FindInMap
    • Ref
    • Fn::Equal
    • Fn::And
    • Fn::Not
    • Fn::Or

Fn::Or

代表OR运算符,最少包含两个条件。如果任意一个指定条件计算为true,则返回true;如果所有条件都计算为false,则返回false。
  • 声明
    "Fn::Or": [condition, ...]
  • 参数
    • condition:计算为true或false的条件。
  • 示例
    "Fn::Or": [true, false]
  • 返回值

    true或false。

    本例中,返回true。

  • 支持的函数
    可在Fn::Or函数中嵌套使用以下函数:
    • Fn::FindInMap
    • Ref
    • Fn::Equal
    • Fn::And
    • Fn::Not
    • Fn::Or

映射(Mappings)

定义映射信息表,映射信息是一种多层的Map结构。
  • 映射是一个Key-Value映射表。
  • 在模板的Resources和Outputs中,可使用内置函数Fn::FindInMap,通过指定Key而获取映射表的Value。

语法

映射由Key-Value键值对组成。
  • 其中Key和Value可以为字符串类型或者数字类型。
  • 如果声明多个映射,用逗号,分隔开。
  • 每个映射的名称不能重复。

示例

代码段示例如下:
"Mappings" : {
	"Mapping01" : {
           "Key01" : {
               "Name" : "Value01"
           },
           "Key02" : {
               "Name" : "Value02"
           },
           "Key03" : {
               "Name" : "Value03"
       }
}
使用内置函数Fn::FindInMap返回对应的值示例:
{
	"ZStackTemplateFormatVersion": "2018-06-18",
       "Parameters": {
           "regionParam": {
               "Description": "选择创建云主机的区域",
               "Type": "String",
               "AllowedValues": ["cn-hangzhou", "cn-shanghai"]
           }
       },
       "Mappings" : {
           "ImageInRegions" : {
               "cn-hangzhou" : { "32" : "imageUuid-1", "64" : "imageUuid-2" },
               "cn-shanghai" : { "32" : "imageUuid-3", "64" : "imageUuid-4" }
           }
       },
       "Resources": {
           "WebServer": {
               "Type": "ZStack::Resource::VmInstance",
               "Properties": {
                   "name" : "test-vm",
                   "imageUuid" : {"Fn::FindInMap": ["ImageInRegions", {"Ref":"regionParam"}, "64"]},
                   "instanceOfferingUuid": {"Ref":"instanceOfferingUuid"},
                   "l3NetworkUuids": [{"Ref":"l3NetworkUuid"}]
               },
               "DeletionPolicy": "Retain"
          }
       }
}

资源索引

创建资源栈模板时,可根据资源类型(Type)和资源属性(Properties)信息,申明对所需资源的具体要求。

资源编排支持的资源类型(Type)包括以下两种:
  • Resource类型
  • Action类型

Resource类型

Resouce类型 说明
ZStack::Resource::VmInstance 创建云主机(CreateVMInstance)
ZStack::Resource::DataVolume 创建云盘(CreateDataVolume)
ZStack::Resource::Image 添加镜像(AddImage)
ZStack::Resource::RootVolumeTemplate 从根云盘创建根云盘镜像(CreateRootVolumeTemplateFromRootVolume)
ZStack::Resource::DataVolumeTemplate 从云盘创建数据云盘镜像(CreateDataVolumeTemplateFromVolume)
ZStack::Resource::AffinityGroup 创建亲和组(CreateAffinityGroup)
ZStack::Resource::InstanceOffering 创建云主机规格(CreateInstanceOffering)
ZStack::Resource::DiskOffering 创建云盘规格(CreateDiskOffering)
ZStack::Resource::L2VxlanNetworkPool 创建VXLAN网络池(CreateL2VxlanNetworkPool)
ZStack::Resource::L2NoVlanNetwork 创建普通二层网络(CreateL2NoVlanNetwork)
ZStack::Resource::L2VlanNetwork 创建二层VLAN网络(CreateL2VlanNetwork)
ZStack::Resource::L2VxlanNetwork 创建VXLAN网络(CreateL2VxlanNetwork)
ZStack::Resource::L3Network 创建三层网络(CreateL3Network)
ZStack::Resource::VRouterRouteTable 创建路由表(CreateVRouterRouteTable)
ZStack::Resource::VpcVRouter 创建VPC路由器(CreateVpcVRouter)
ZStack::Resource::SecurityGroup 创建安全组(CreateSecurityGroup)
ZStack::Resource::SecurityGroupRule 添加规则到安全组(AddSecurityGroupRule)
ZStack::Resource::Vip 创建虚拟IP(CreateVip)
ZStack::Resource::Eip 创建弹性IP(CreateEip)
ZStack::Resource::PortForwardingRule 创建端口转发规则(CreatePortForwardingRule)
ZStack::Resource::LoadBalancer 创建负载均衡器(CreateLoadBalancer)
ZStack::Resource::LoadBalancerListener 创建负载均衡监听器(CreateLoadBalancerListener)
ZStack::Resource::IPsecConnection 创建IPsec连接(CreateIPsecConnection)
ZStack::Resource::VirtualRouterOffering 创建路由器规格(CreateVirtualRouterOffering)
ZStack::Resource::VniRange 创建VNI Range(CreateVniRange)
ZStack::Resource::UserTag 创建用户标签(CreateUserTag)
ZStack::Resource::DataVolumeFromVolumeTemplate 从镜像创建云盘(CreateDataVolumeFromVolumeTemplate)
ZStack::Resource::Tag 创建资源标签(CreateTag)

Action类型

Action类型 说明
ZStack::Action::AddIpRange 添加IP地址范围(AddIpRange)
ZStack::Action::AddDnsToL3Network 向三层网络添加DNS(AddDnsToL3Network)
ZStack::Action::AddVmToAffinityGroup 添加云主机到亲和组(AddVmToAffinityGroup)
ZStack::Action::AddVRouterRouteEntry 添加路由条目(AddVRouterRouteEntry)
ZStack::Action::AddCertificateToLoadBalancerListener 添加证书到负载均衡(AddCertificateToLoadBalancerListener)
ZStack::Action::AddIpRangeByNetworkCidr 通过网络CIDR添加IP地址范围(AddIpRangeByNetworkCidr)
ZStack::Action::AddVmNicToLoadBalancer 添加云主机网卡到负载均衡器(AddVmNicToLoadBalancer)
ZStack::Action::AddVmNicToSecurityGroup 添加虚拟机网卡到安全组(AddVmNicToSecurityGroup)
ZStack::Action::AddRemoteCidrsToIPsecConnection 添加远端CIDR到IPsec连接(AddRemoteCidrsToIPsecConnection)
ZStack::Action::AttachEip 绑定弹性IP(AttachEip)
ZStack::Action::AttachDataVolumeToVm 挂载云盘到云主机上(AttachDataVolumeToVm)
ZStack::Action::AttachPortForwardingRule 挂载规则到虚拟机网卡上(AttachPortForwardingRule)
ZStack::Action::AttachIsoToVmInstance 加载ISO到云主机(AttachIsoToVmInstance)
ZStack::Action::AttachPciDeviceToVm 绑定PCI设备到云主机(AttachPciDeviceToVm)
ZStack::Action::AttachUsbDeviceToVm 云主机加载物理机USB设备(AttachUsbDeviceToVm)
ZStack::Action::AttachL2NetworkToCluster 挂载二层网络到集群(AttachL2NetworkToCluster)
ZStack::Action::AttachL3NetworkToVm 加载L3网络到云主机(AttachL3NetworkToVm)
ZStack::Action::AttachNetworkServiceToL3Network 挂载网络服务到三层网络(AttachNetworkServiceToL3Network)
ZStack::Action::AttachSecurityGroupToL3Network 挂载安全组到L3网络(AttachSecurityGroupToL3Network)
ZStack::Action::AttachL3NetworksToIPsecConnection 添加三层网络到IPsec连接(AttachL3NetworksToIPsecConnection)
ZStack::Action::AttachVRouterRouteTableToVRouter 绑定路由表到路由器(AttachVRouterRouteTableToVRouter)
ZStack::Action::AddCertificateToLoadBalancerListener 添加证书到负载均衡(AddCertificateToLoadBalancerListener)
ZStack::Action::AddHostRouteToL3Network 向三层网络添加主机路由(AddHostRouteToL3Network)
ZStack::Action::SetL3NetworkRouterInterfaceIp 设置三层网络路由器接口IP(SetL3NetworkRouterInterfaceIp)
ZStack::Action::AddDnsToVpcRouter 向VPC路由器添加DNS(AddDnsToVpcRouter)
ZStack::Action::AttachTagToResources 加载资源标签(AttachTagToResources)
ZStack::Action::UpdateTag 更新资源标签(UpdateTag)

术语表

实例

云平台中运行操作系统镜像的虚拟机或服务器,如云主机、弹性裸金属实例。

云主机(VM Instance)

运行在物理机上的虚拟机实例,具有独立的IP地址,可以访问公共网络,运行应用服务。

云盘(Volume)

为云主机提供存储,包括两种类型:根云盘、数据云盘。

根云盘(Root Volume)

云主机的系统云盘,用于支撑云主机的系统运行。

数据云盘(Data Volume)

云主机的数据云盘,用于云主机扩展的存储使用。

镜像(Image)

云主机或云盘使用的镜像模板文件,包括两种类型:系统镜像、云盘镜像。

计算规格(Instance Offering)

云主机涉及的CPU数量、内存、网络设置等规格定义。

云盘规格(Disk Offering)

云盘涉及的容量大小的规格定义。

SSH密钥(SSH Key)

SSH密钥是一种安全的云主机登录认证方式,由一个公钥和一个私钥组成。仅Linux云主机支持通过SSH密钥登录。

GPU规格(GPU Specification)

物理GPU设备或vGPU设备涉及的GPU帧数、显存、分辨率等规格定义,包括两种类型:物理GPU规格、vGPU规格。

vNUMA配置(vNUMA Configuration)

通过CPU绑定透传关联的物理机NUMA节点(pNUMA Node)拓扑,为云主机生成vNUMA节点(vNUMA Node)拓扑,实现云主机CPU优先访问所在vNUMA节点本地内存,提高云主机性能。

NUMA(Non-Uniform Memory Access)

非一致性内存访问,是一种计算机内存设计架构。该架构下,CPU访问内存的时间取决于CPU与内存的相对位置。通过优先访问相对位置较近的内存可缩短延迟,从而可提升主机系统性能。

pNUMA节点(pNUMA Node)

基于物理机NUMA架构预定义的NUMA节点,用于物理机CPU和内存管理。

pNUMA拓扑(pNUMA Topology)

CPU厂商基于NUMA架构预定义的物理机NUMA节点拓扑。

vNUMA节点(vNUMA Node)

基于CPU绑定透传关联的物理机NUMA节点而生成的云主机NUMA节点,用于云主机CPU和内存管理。

vNUMA拓扑(vNUMA Topology)

基于CPU绑定生成的云主机NUMA节点(vNUMA Node)拓扑。

本地内存(Local Memory)

CPU(pCPU或vCPU)通过所在NUMA节点(pNUMA节点或vNUMA节点)非CPU核部件中内存控制器可直接访问的内存。相比非本地内存,CPU访问本地内存的延迟更低。

CPU绑定配置(CPU Pinning)

将云主机的虚拟CPU(vCPU)与物理机的物理CPU(pCPU)严格关联,可为云主机分配特定的pCPU,提高云主机性能。

EmulatorPin配置(EmulatorPin Configuration)

将云主机中除vCPU和IO线程外的其他线程与物理机pCPU进行绑定,使云主机相关线程只运行在对应的pCPU上。

弹性伸缩组(Auto Scaling Group)

一组具有相同应用场景的云主机集合,可根据用户业务变化自动实现弹性伸缩或弹性自愈。

快照(Snapshot)

某一时间点某一磁盘的数据状态文件。

云主机调度策略(VM Scheduling Policy)

为云主机分配物理机的资源编排策略,可用于保障业务的高性能和高可用。

区域(Zone)

云平台内最大的一个资源定义,包括:集群、二层网络、主存储等资源。

集群(Cluster)

一组物理机(计算节点)的逻辑集合。

物理机(Host)

为云主机实例提供计算、网络、存储等资源的物理主机。

主存储(Primary Storage)

用于存储云主机磁盘文件(包括:根云盘、数据云盘、根云盘快照、数据云盘快照、镜像缓存等)的存储服务器。

镜像服务器(Backup Storage)

用于存储云主机镜像模板(含ISO)的存储服务器。

iSCSI存储(iSCSI Storage)

基于iSCSI协议构建的SAN存储。用户可将iSCSI存储上划分的块设备添加为Shared Block主存储,或直接透传给云主机使用。

FC存储(FC Storage)

基于FC协议构建的SAN存储。用户可将FC存储上划分的块设备添加为Shared Block主存储,或直接透传给云主机使用。

NVMe存储(NVMe Storage)

基于NVMe-oF协议构建的存储阵列,用户可将NVMe存储上划分的块设备添加为Shared Block主存储。

二层网络(L2 Network)

对应于一个二层广播域,进行二层相关的隔离。一般用物理网络的设备名称标识。

VXLAN网络池(VXLAN Pool)

在一组VXLAN隧道端点(VTEP)之上创建的VXLAN网络的集合,同一个VXLAN网络池内VXLAN网络标识符(VNI)不能重复。

三层网络(L3 Network)

云主机使用的网络配置,包括IP地址范围、网关、DNS等。

公有网络(Public Network)

一般表示可直接访问互联网的网络,由于公有网络是一个逻辑概念,在无法连接互联网的环境中,用户也可以自定义该网络。

扁平网络(Flat Network)

可与物理机网络直通,也可直接访问互联网的网络。云主机可使用扁平网络提供的分布式EIP访问公有网络。

VPC网络(VPC Network)

云主机使用的私有网络,可通过VPC路由器访问互联网。

管理网络(Management Network)

管理控制云平台相关物理资源的网络,例如:配置访问物理机、主存储、镜像服务器、VPC路由器时使用的网络。

流量网络(Flow Network)

端口镜像的专用网络,用于将网卡的网络流量镜像到远端。

VPC路由器(VPC vRouter)

一个定制的云主机,用于提供多种网络服务。

VPC路由器高可用组(VPC vRouter HA Group)

一对互为主备的VPC路由器,当主VPC路由器状态异常,自动切换至备VPC路由器,为业务高可用提供保障。

路由器镜像(vRouter Image)

封装网络服务,用于创建VPC路由器。路由器镜像不能直接用于创建业务云主机。

VPC路由器镜像(VPC vRouter Image)

封装了多种网络服务,只能用于创建VPC路由器,不能直接用于创建业务云主机。

高性能实例型负载均衡镜像(LB Image)

封装了高性能实例型负载均衡服务,只能用于创建负载均衡实例,不能直接用于创建业务云主机。

路由器规格(vRouter Offering)

定义VPC路由器使用的CPU、内存、镜像、管理网络、公有网络配置,用于创建VPC路由器,为公有网络/VPC网络提供多种网络服务。

负载均衡实例规格(LB Offering)

定义负载均衡实例使用的CPU、内存、镜像、管理网络配置,用于创建负载均衡实例,为公有网络/扁平网路/VPC网络提供负载均衡服务。

SDN控制器(SDN Controller)

SDN控制器是SDN架构的核心,负责集中管理和控制网络设备。

SDN集群(SDN Cluster)

一组由定制云主机构成的集群,用于提供高可用的SDN能力。

SDN实例(SDN Instance)

一台定制的云主机,用于提供SDN网络能力。

SDN镜像(SDN Image)

封装SDN软件的镜像,用于创建SDN实例。

SDN实例规格(SDN Instance Offering)

定义SDN实例使用的CPU、内存、SDN镜像以及管理网络配置,用于创建SDN实例。

安全组(Security Group)

为云主机网卡提供安全控制,按照指定的安全规则对进出网卡的TCP/UDP/ICMP等数据包进行有效过滤。

虚拟IP(VIP)

在桥接网络环境中,使用虚拟IP地址提供弹性IP、端口转发、负载均衡、IPsec隧道等网络服务,数据包会被发送到虚拟IP,再路由至云主机网络。

弹性IP(EIP)

基于网络地址转换(NAT)功能,将一个网络的IP地址转换成另一个网络的IP地址,从而可通过其他网络访问内部私有网络。

端口转发(Port Forwarding)

基于VPC路由器提供的三层转发服务,可将指定公有网络的IP地址端口流量转发到云主机对应协议的端口。在公网IP地址紧缺的情况下,通过端口转发可提供多个云主机对外服务,节省公网IP地址资源。

负载均衡(Load Balancer)

将虚拟IP的访问流量分发到后端服务器上,自动检测并隔离不可用的后端服务器,从而提高业务的服务能力和可用性。

监听器(Listener)

负责监听负载均衡的前端请求,按照指定策略分发给后端服务器,且监听器会对后端服务器进行健康检查。

转发规则(Forwarding Rule)

将来自不同域名或者不同URL的请求转发到不同的后端服务器组处理。

后端服务器组(Backend Server Group)

一组负责处理负载均衡分发的前端请求的后端服务器。负载均衡实例进行流量分发时,流量分配策略以后端服务器组为单位生效。

后端服务器(Backend Server)

负责处理负载均衡分发的前端请求的服务器。支持添加云主机或云平台之外的服务器作为后端服务器。

前端网络(Frontend Network)

负载均衡的前端网络,负载均衡将来自该网络的客户端请求按照指定策略分发给后端服务器。

后端网络(Backend Network)

负载均衡的后端网络,负责处理负载均衡分发前端请求的后端服务器所在的网络。

负载均衡实例(Load Balancer Instance)

一个定制的云主机,专用于提供负载均衡服务。

证书(Certificate)

当负载均衡监听器使用HTTPS协议,需绑定证书使用。支持上传证书和证书链。

防火墙(Firewall)

在VPC网络场景下,负责管控经由VPC路由器的流量,通过配置规则集和规则管控网络的访问控制策略。

防火墙规则集(Firewall RuleSet)

防火墙规则的集合,包含了一组规则,需要绑定到VPC路由器网卡的某个方向上才能生效。

防火墙规则(Firewall Rule)

配置至防火墙用于控制VPC网络流量的访问策略,由规则优先级、匹配条件、以及行为三部分组成。

规则模板(Rule Template)

将一组规则保存为模板,向防火墙或规则集添加规则时可直接选用该模板。

IP/端口集合(IP/Port Set)

将一组IP或端口进行保存,在向防火墙或规则集添加规则时可直接选用已建好的IP/端口集合。

IPsec隧道(IPsec Tunnel)

通过对IP协议的分组加密和认证来保护IP协议的网络传输数据,实现站点到站点(Site-to-Site)的虚拟私有网络(VPN)连接。

OSPF区域(OSPF Area)

OSPF协议按照一定标准将一个自治系统划分为不同区域,用于分层管理路由器。

NetFlow

通过Netflow对VPC路由器网卡的进出流量进行分析监控,支持两种数据流输出格式:V5、V9。

端口镜像(Port Mirroring)

将云主机网卡的网络流量复制一份到远端,对端口上的业务报文进行分析,方便对网络数据进行监控管理,在网络故障时可以快速定位故障。

路由表(Route Table)

用户自定义配置路由信息,包括目标网段、下一跳地址、路由优先级。

资源编排(CloudFormation)

一款帮助云计算用户简化云资源管理和自动化部署运维的服务。通过资源栈模板,定义所需的云资源、资源间的依赖关系、资源配置等,可实现自动化批量部署和配置资源,轻松管理云资源生命周期,通过API和SDK集成自动化运维能力。

资源栈(Resource Stack)

资源编排通过资源栈模板快速创建和配置一组资源(以及资源间的依赖关系),这组资源定义为一个资源栈,通过管理资源栈,维护这组资源。

资源栈模板(Stack Template)

一个UTF8编码格式的文件,基于模板可快速创建资源栈,用户在模板中定义所需的云资源、资源间的依赖关系、资源配置等,资源编排将解析模板,自动完成所有资源的创建和配置。

资源栈示例模板(Sample Template)

云平台提供了常用的示例模板,用户可基于已有示例模板创建资源栈。

可视化编排(Designer)

一个可视化的资源编排工具,通过在画布上拖曳连线建立资源间的依赖关系,直观高效编排云资源。

裸金属集群(Bare Metal Cluster)

为裸金属设备提供单独的集群管理。

部署服务器(Deployment Server)

一台单独的服务器,为裸金属设备提供PXE服务和控制台代理服务。

裸金属设备(Bare Metal Chassis)

用于创建裸金属主机,通过BMC接口以及IPMI配置进行唯一识别。

预配置模板(Preconfigured Template)

通过预配置模板,可快速生成预配置文件,实现无人值守批量安装裸金属主机操作系统。

裸金属主机(Bare Metal Instance)

安装操作系统的裸金属设备。

弹性裸金属管理(Elastice Baremetal Management)

不仅可为应用提供专属物理服务器,保障核心应用的高性能和稳定性,而且结合云平台中资源的弹性优势,可实现灵活申请,按需使用。

部署网络(Provision Network)

在网关代理集群中创建弹性裸金属实例时,用于PXE流程及下载镜像的专属网络。

弹性裸金属集群(Elastic BareMetal Cluster)

为裸金属节点提供单独的集群管理。

网关节点(Gateway Node)

负责云平台和网关代理集群中弹性裸金属实例间的流量转发。

裸金属节点(BareMetal Node)

用于创建弹性裸金属实例,通过BMC接口以及IPMI配置进行唯一识别。

弹性裸金属规格(Elastic BareMetal Offering)

弹性裸金属实例涉及的CPU、内存、CPU架构、CPU型号等规格定义。

弹性裸金属实例(Elastic BareMetal Instance)

性能媲美物理服务器的云实例,结合云平台中资源的弹性优势,可实现灵活申请,按需使用。

基础资源(vCenter)

云平台支持接管vCenter,并对已接管的vCenter虚拟化资源进行统一管理。

云主机(VM Instance)

运行在物理机上的ESXi虚拟机实例,具有独立的IP地址,可以访问公共网络,运行应用服务。

网络(Network)

vCenter云主机使用的网络配置,包括:IP地址范围、网关、网络服务等。

云盘(Volume)

为vCenter云主机提供存储,包括两种类型:根云盘、数据云盘。根云盘用于支撑云主机的系统运行,数据云盘用于云主机扩展的存储使用。

镜像(Image)

vCenter云主机或云盘使用的镜像模板,包括两种类型:系统镜像、云盘镜像。

事件消息(Event Message)

对已接管vCenter的事件报警消息进行集中展示查看,方便用户快速定位问题。

网络拓扑(Network Topology)

通过可视化方式展示云平台网络规划,帮助用户更高效地进行网络规划、管理和性能改进,支持两种类型:全局拓扑、自定义拓扑。

性能分析(Performance Analysis)

通过列表方式展示云平台核心资源的性能监控指标,提供外部和内部两种监控方式,支持按资源查看性能分析结果和自定义导出分析报表,方便用户掌控云平台性能状态,提高运维效率。

容量管理(Capacity Management)

通过可视化方式展示云平台核心资源的容量信息,方便用户掌控云平台容量使用情况,提高运维效率。

管理节点监控(MN Monitoring)

在多管理节点物理机高可用场景下,可直观查看每个管理节点的健康状态。

报警器(Alarm)

用于监控并响应时序性数据和事件的状态变化,支持资源报警器、事件报警器和扩展报警器。

一键报警(One-Click Alarm)

将种类繁多的资源监控项进行归纳整合,用于快速建立各种资源的监控报警服务。

报警模板(Rule Template)

一组报警器规则的通用模板,关联资源分组后,将对组内资源创建相应的报警器进行监控。

资源分组(Resource Group)

按照业务对资源进行分组,关联报警模板后,报警规则将直接作用于组内全部资源。

消息模版(Message Template)

报警器或事件向SNS系统的主题发送消息时使用的文本模板。

消息源(Message Source)

用于连接扩展消息源,接管扩展报警消息并结合报警器统一推送至各类通知对象。

通知对象(Endpoint)

用户获取订阅主题信息的方式,通知对象类型包括:系统、邮箱、钉钉、企业微信、飞书、Webhook、短信、Microsoft Teams、SNMP Trap接收端。

报警消息(Alarm Message)

报警器触发时发送的即时提示消息。

当前任务(Current Task)

展示当前正在进行中的操作,提供集中查看和管理。

操作日志(Operation Log)

云平台运行过程中变化的一种抽样,内容为指定对象的某些操作及其操作结果按时间的有序集合。

审计(Auditing)

实时监控并记录云平台的所有活动,可用于操作追踪、等保合规、安全分析、问题排查、自动运维等场景。

日志收集(Log Collection)

一键收集云平台以及各类节点在指定时间段内产生的日志,并支持下载查看。

一键巡检(One-Click Inspection)

对云平台关键资源和服务进行全方位一键式健康检查,并根据巡检结果为巡检资源和服务进行健康评分,同时提供巡检建议和巡检报告,助力高效运维,确保云平台资源和服务处于最佳状态。

灾备管理

灾备管理以业务为中心,融合定时增量备份、定时全量备份等多种灾备技术到云平台中,支持本地灾备、异地灾备等多种灾备方案,用户可根据自身业务特点,灵活选择合适的灾备方式。

灾备服务

在线备份云主机/数据云盘/弹性裸金属/云平台数据库数据到备份服务器,支持本地,跨地域和混合云多种备份场景,数据更可靠 。

备份任务(Backup Job)

通过备份任务,可将本地云主机/云盘/弹性裸金属实例/数据库定时备份到指定的存储服务器。

本地备份数据(Local Backup Data)

本地云主机/云盘/弹性裸金属实例/数据库的备份数据,存放在本地备份服务器中。

本地备份服务器(Local Backup Storage)

位于本地数据中心的存储服务器,用于存放本地备份数据或CDP数据。

远端备份服务器(Remote Backup Storage)

位于异地数据中心/公有云上的存储服务器,用于存放远端备份数据。

持续数据保护(CDP)

为云主机中的重要业务系统提供秒级细粒度的持续备份,既可以将云主机数据恢复到指定时间状态,又可以在不恢复系统的情况下找回文件。

CDP任务(CDP Task)

通过CDP任务,可将云主机数据持续备份到指定的备份服务器,实现持续数据保护。

CDP数据(CDP Data)

对云主机进行持续数据保护产生的备份数据,存放在指定的备份服务器中。

恢复点

进行CDP持续备份时产生的数据点,一个恢复点对应用户指定时间间隔内的云主机数据变化。

锁定恢复点

支持将恢复点进行锁定或解锁,锁定恢复点后,恢复点对应的数据将不会被自动清理或删除。

恢复任务

提供向导式的恢复流程,帮助用户通过指定CDP任务和恢复点快速进行数据恢复。同时提供恢复操作记录,方便后续审计和追溯。

密评合规

通过建立以商用密码为核心的云安全保障体系,满足企业在密评场景的云平台合规要求。

密码资源

提供身份认证和数据加密功能的密码设备。

第三方密码服务

支持添加第三方密码服务平台,用于对外提供验签、加密等密码服务。

密码机资源池

一组密码机的逻辑集合,对外提供统一的验签、加密等密码服务。

密码机

运用密码技术对信息实施加解密处理和认证的专用设备。

平台密评合规

通过密码机资源池提供的密码能力,满足云平台密评合规要求。

证书登录

可通过UKey设备对用户进行身份标识和鉴别,保证用户身份的真实性。

数据保护

可对云平台重要数据进行保护,保证数据的机密性和完整性。

定时任务(Scheduled Job)

一种预设任务,在指定时间执行指定行为。与定时器配合使用。

定时器(Scheduler)

承载定时任务的容器,尤其适用于长时间运行的操作。

标签(Tag)

一种资源标记,便于快速搜索和资源聚合。

迁移服务(Migration Service)

提供V2V迁移服务,可将其它虚拟化平台的云主机系统及数据完整迁移至当前云平台。

ZMigrate 迁移服务(ZMigrate Migration Service)

通过应用市场安装的迁移服务,用于将 VMware 环境中的云主机及其数据迁移至当前云平台。

V2V迁移(V2V Migration)

将VMware或KVM源云平台的云主机迁移至当前云平台。

迁移服务器(V2V Conversion Host)

V2V迁移需指定目标集群内的一台物理机作为迁移服务器,云主机系统和数据先缓存在迁移服务器中,再导入目标主存储。

用户(User)

表示自然人,是租户管理中的最基本单位。

成员组(Member Group)

有双重含义,既表示一组自然人的集合,也表示一组项目成员的集合,支持以成员组为单位进行权限控制。

角色(Role)

权限的集合,为用户和成员组赋予权限可获得调用相关API进行资源操作的能力。包括平台角色和项目角色两类。

统一认证(Single Sign On)

云平台提供的统一认证登录服务,支持无缝接入统一认证登录系统,相应统一认证用户将直接登录云平台,便捷使用云资源。

项目(Project)

项目即是租户,指在特定时间、资源、预算下指定相关人员完成特定目标的任务。租户管理中的租户主要指项目。支持以项目为导向进行资源规划,为一个具体项目建立独立的资源池。

项目成员(Project Member)

项目的基本组成人员,可在权限范围内使用项目资源完成任务目标,包括项目负责人、项目管理员和普通项目成员。

流程管理(Process Management)

为了更高效对项目提供基础资源支持,工单审批引入流程管理,包括默认流程和自定义流程两种类型。

我的审批(My Approvals)

仅admin/项目负责人/自定义审批人员拥有审批权限,可通过或驳回申请。若审批通过,资源会自动部署并下发至项目生效。

账单(Bills)

按计费价目在指定时间段统计的资源费用,计费精确至秒级。账单类型包括:项目账单、部门账单、账户账单。

计费价目(Pricing List)

一张包含不同资源计费单价的集合表,资源单价基于资源规格、资源使用时间而设置。

控制台代理(Console Proxy)

可通过代理地址登录云主机控制台。

AccessKey管理(AccessKey Management)

访问云平台API的身份凭证,具有该云平台完全的权限,包括:AccessKey ID(访问密钥 ID)和AccessKey Secret(秘密访问密钥)。

IP黑白名单(IP Blocklist/Allowlist)

云平台登录IP的黑白名单,通过对访客身份的识别和过滤,进一步提升云平台登录安全。

应用市场(Application Market)

通过内置的应用部署包或URL,快速部署应用服务并一键跳转使用,支持默认应用、拓展应用。

子账户管理(Sub-Account Management)

子账户由admin创建或统一认证系统同步,且受admin管理,子账户对自己创建的虚拟资源拥有管理权限。

主题外观(Theme)

用户可自定义设置云平台主题外观。

邮箱服务器(Email Server)

云平台报警选择邮箱类型的通知对象,需设置邮箱服务器,用来发送报警邮件。

日志服务器(Log Server)

添加日志服务器至云平台,收集管理节点或平台操作日志,可用于操作追溯和问题定位,提高云平台运维效率。

全局设置(Global Setting)

提供平台层面的功能特性设置,一经设置,云平台全局范围内生效。

场景封装(Scenario Template)

基于用户实际生产场景需求,提供场景化的一键全局设置,方便快速将云平台设置为所需状态,提高运维效率。

高可用策略(HA Policy)

云平台内计算、存储、网络资源发生故障或云主机异常停机时,确保相关业务持续稳定运行的机制。启用后,支持自定义云主机高可用策略,确保业务连续性。

API Inspector

云平台API调用的监视工具,用于记录用户在云平台上操作时所关联调用的API。

版本检查(Version Detection)

周期性自动检查最新版本并推送最新版本信息,包括版本号,版本亮点等。

时间管理(Time Management)

管理云平台时间和配置时间源,配置后云平台所有物理机将根据指定的时间源进行时间同步。

SNMP(Simple Network Management Protocol)

SNMP是简单网络管理协议,用于管理网络中的设备。第三方平台可通过该协议监控云平台上的资源和事件,并接收云平台推送的报警消息。

体验升级计划(Experience Improvement Plan)

体验升级计划是ZStack Cloud为提升产品操作体验和运行性能向用户推出的项目。征得用户同意后,该计划将统计和分析用户对云平台功能的使用情况,并将统计和分析数据用于指导产品改进优化,以期后续为用户提供更优质的服务。

共享带宽(Shared Bandwidth)

为多个虚拟IP提供带宽共享和集中限速服务,支持绑定虚拟IP的云主机使用同一条带宽,降低公网访问成本。

GPU设备(GPU Device)

拥有高计算能力的微处理器,可用于处理复杂的图形渲染和并行计算任务,帮助提高图形生产、视频处理和机器学习等业务的效率。

脚本库(Script Library)

脚本库集中存储和管理自动化脚本文件。对云主机执行脚本,可以完成复杂的运维操作和自动化任务。

XML Hook

一种脚本程序,用于在云主机XML文件中灵活插入或修改参数,从而实现定制化配置并扩展云主机功能。

容器管理(Container Management)

简单易用的容器管理,提供GPU管理调度、多租户、多集群、资源配额、CI/CD、微服务治理等功能。服务依据传统用户使用习惯,降低容器使用复杂性,帮助用户轻松实现容器集群管理和部署,快速上手,享受云原生便利。

QEMU

计算机模拟和虚拟化工具,提供完整的虚拟计算机模型用于运行客户操作系统。QEMU可完整模拟物理机CPU和其他硬件,或结合Hypervisor使客户操作系统直接执行在物理机CPU上,从而实现接近原生的性能表现。

Libvirt

虚拟化环境管理工具,提供稳定的API、命令行工具 (virsh) 和守护进程 (Libvirt),用于管理云平台上的虚拟机 (如创建、启动、关闭、迁移云主机等),并实现网络和存储配置。

Kernel

操作系统内核,负责管理CPU、内存、输入/输出设备等系统资源,协调计算机硬件和上层应用之间的交互,提供硬件抽象、资源分配、进程管理、进程间通信、系统资源安全控制等功能。

高级监控服务器(Advanced Monitoring Server)

一个定制的云主机,专用于接收和处理负载均衡等资源的高级监控数据。

高级监控服务器镜像(Advanced Monitoring Server Image)

封装了高级监控服务的镜像,专用于创建高级监控服务器,不可用于创建业务云主机。

高级监控服务器规格(Advanced Monitoring Server Offering)

定义高级监控服务器使用的CPU、内存、镜像、管理网络、公有网络配置,专用于创建高级监控服务器。

插件管理(Plugin Management)

将扩展资源或工具封装为标准化插件,便于在云平台上快速安装和集成,实现功能扩展。

可用区管理(Region Management)

可用区是一套完整的云环境,具有独立的管理节点、网络、硬件和云资源。多个可用区间可实现用户同步和免密登录。
资源编排使用教程 | 5.5.38 | ZStack Cloud · ZCF | ZStack 资源中心