资源编排为用户提供五种编排创建方式,分别是 从零开始创建、 基于系统推荐模版构建、 从保存模版中导入、从应用中心创建 以及 Yaml文件创建。
从零开始创建:手动创建方式为用户最常用的编排创建方式,用户可以在可视化画布中通过拖拽的方式完成资源拓扑的编排、创建、配置等操作。拖拽的资源依赖平台设定的逻辑关系进行感应式关联,无须用户主动判定资源逻辑关系。
基于系统推荐模版构建:当用户对平台资源、业务资源不太熟悉时,可选择该创建方式,用户可以使用系统推荐模版完成资源拓扑的编排、创建以及配置等操作。对于熟悉平台的用户来说,可以迅速配置所需资源架构,减少编排时间。此外,用户进入画布后对模版资源的编辑、修改不会影响到原模版。
从保存模版中导入:用户在创建模版时,可临时保存模版的状态,并可通过该方式再次选择该模版,完成资源拓扑的编排、创建、配置等操作。模版在保存状态中也不会占用系统资源,极大地方便了用户的资源管理,同时通过该功能也可自定义模版,以涵盖多样性业务场景,满足用户需求。
从应用中心创建:当您通过可视化编排创建生成一个应用后,您可以将其再次导入可视化编排中,生成为一个模版、修改为一个新的应用或者是应用版本。避免了您重复构建一个复杂的应用拓扑,极大简化您的步骤。
Yaml文件创建:对于熟悉资源编排或习惯使用脚本命令的专业用户,平台提供了Yaml文件创建方式,用户通过使用该创建方式,选择本地已有的Yaml格式文件,能够实现快速部署自定义资源集群。对于存在依赖关系的多个脚本文件,该创建方式也支持同时上传多个依赖文件,解决文件依赖关系复杂的问题。
1.从零开始创建
步骤一:选择创建方式
- 在可视化编排页面点击 创建模版,跳出如下弹窗,选择 从零开始创建,点击确定。
点击确定后,用户将进入可视化画布,如下界面。
步骤二:拖拽资源
在画布的左侧,您可以看到在可视化编排中您可以编排使用的资源,包括IaaS/PaaS层资源,在画布右侧为资源配置区和配额提示区。当资源拖入画布时,可连接部分,资源组件 icon 将高亮提示,资源间无法创建连接关系时,系统也会跳出提示信息。
以下,我们以创建一个云主机为例。
点击左侧资源 外部网络,选择您需要的外部网络(该资源展示数量由用户实际创建的外部网络决定),如 public_net,将其拖拽到画布中。在右侧资源配置区,您可以重新调整您所选的外部网络资源。
点击左侧资源 网络,选择 路由器,将其拖拽到画布中(外部网络下)。在右侧资源配置区,我们已为您设置默认值,但您也可以根据需求,修改路由器的名称,选择可用域。
点击左侧资源 网络,选择 私有网络,将其拖拽到画布中(路由器下)。在右侧资源配置区,您可以使用默认值设置。(警告:当画布中有两个及两个以上的私有网络时,需修改其中的网络地址,否则无法创建成功。)
点击 计算与存储,选择 云主机,将其拖拽到画布中(私有网络下),在右侧资源配置区,您可以使用默认值,但需填写云主机密码或SSH key。(由于在编排的模版Yaml文件中云主机的密码是以明文展现的,在同一项目下,会被其他用户访问查看,因此建议您采用SSH Key方式,保证安全性。)
注意:您也可以编辑云主机的自定义脚本,例如当您需要编排两个云主机时,云主机2需要访问云主机1的ip地址,您可以在云主机2的自定义脚本中添加如下代码。
str_replace: template: | #!/bin/bash -v echo password echo ip params: password: test ip: {get_attr: [server_0, first_address]}
注意:自定义脚本中不支持包含中文字符和“$”特殊字符,否则导入应用中心后,该应用安装时将出错。
当您的云主机需要被外部网络访问时,您可以点击 网络,选择 公网IP,设置您需要的带宽大小。
点击右侧 配额提示 您可以查看到画布中资源所占用配额,以及当前项目中资源已使用配额,若某个资源的已使用数量加上画布中新添加数量总和超出配额上限,则该资源下方的数据条将变为红色,此时您只能保存模版,无法部署或导入应用中心,待调整配额上限后方能部署和导入应用中心。
步骤三:保存/部署/导入应用中心
完成资源配置后,您可选择保存模版、保存并部署以及保存并导入应用中心三种状态。
- 点击画布上方 保存,此时跳出弹窗如下。
保存模版页面底部有三种操作, 仅保存、 立即部署 以及 导入应用中心,系统默认 仅保存。(警告:三种状态一次仅能执行一种操作。)
- 仅保存:当用户选择 仅保存 状态时,该编排文件将只保存为模版,不进行任何其它操作。
- 立即部署:当用户选择 立即部署 时,该编排文件将在保存为模版的同时,进行部署操作。
- 导入应用中心:当用户选择 导入应用中心 时,该编排文件将在保存为模版的同时,导入到应用中心。
- 若您选择 立即部署,此时页面将跳出部署弹窗,如下页面。
输入您的 编排名称,若勾选出错回滚,意味着当您创建编排失败时,该资源编排会自动删除
- 若您选择 导入应用中心 ,此时页面将跳出导入应用中心弹窗,如下页面。
根据页面选项,填写应用 名称、选择应用 分类,添加应用 标签(您在输入框中输入您需要添加的标签,回车后将自动生成标签),填写应用 描述,填写 作者 信息,上传应用 logo。
点击 下一步,当该应用存在多个版本时,您需要填写其版本名称,如1.0.1, 版本描述 是对当前版本信息的描述,与应用 描述 不冲突。若您需要为您的应用或应用中的服务提供快捷访问入口时,您可在 应用访问 和 服务访问 下分别添加选项。(警告:您选择的应用/服务端口号应与您选择安全组端口范围匹配。) 使用说明 是对面向使用该应用用户的操作方法说明。
点击 下一步,当切换语言环境时,您填写的资源名称、描述信息若需同步切换语言时,则需在此页面中填写对应的翻译内容。此选项为非必填项,用户可选择不填。
点击 确定 后,该模版文件将被导入到应用中心,用户可以在 应用中心 中查看并管理。
步骤四:查看编排
当您完成上述操作后,您可以返回 可视化编排 或 编排部署 页面查看您保存或部署的编排文件。若您仅保存编排文件,可在 可视化编排 页面,继续进行 部署模版 或 导入应用中心 操作。
备注:可视化编排资源编排限制
- 空白视图中可以拖动外部网络、共享网络、私有网络以及云主机。当拖动外部网络、共享网络、私有网络进入视图时,其他资源只能遵循依赖关系进行添加,每种资源只能添加一个。当空白视图中拖入云主机时,系统会自动拖入外部网络、路由器以及私有网络。
- 共享网络下只能连接云主机,可以添加多个。
- 外部网络下只能连接路由器,可以添加多个。
- 路由器下只能连接私有网络,可以添加多个。
- 云主机下只能连接云硬盘以及公网IP,云硬盘可以添加多个,公网IP仅限一个。
- 公网IP可以添加到已经连接外部网络路由器下私有网络的云主机上。
- 编排文件保存为模版后,若此时模版资源中的配置项例如云主机镜像、可用域被删除或不可用时,会导致模版部署、导入应用中心失败。
- 当画布中只存外部网络或共享网络时,不支持保存、部署、导入应用中心。
2.基于系统推荐模版构建
步骤一:选择创建方式
在可视化编排页面点击 创建模版,跳出如下弹窗,选择 基于系统推荐模版构建,点击确定。
点击确定后,用户将进入可视化画布。
步骤二:选择系统推荐模版
用户可以选择 共享网络云主机和 外部网络云主机,根据不同场景需求,选择不同类型系统推荐模版,同时右侧也会出现模版相应的可视化图形以及模版描述,方便用户对模版理解,做出合适选择。如下以共享网络云主机为例。
- 选择 共享网络云主机 后,点击确定,进入可视化画布,如下页面。
2.此时画布上的呈现资源为已选择的 共享网络云主机 资源,用户可对该模版进行编辑部署,增加 云主机、云硬盘 数量,或更改资源配置,操作如上文中的 从零开始创建。
警告:
- 您基于系统推荐模版构建的编排文件,保存或部署后不会影响原来的系统推荐模版
- 如果您使用的是从V5升级到V6的系统模板,需要修改为新的bfv方式。
步骤三:保存/部署/导入应用中心
完成资源配置后,您可选择保存模版、保存并部署以及保存并导入应用中心三种状态。操作如上文 从零开始创建。
步骤四:查看编排
当您完成上述操作后,您可以返回 可视化编排 或 编排部署 页面查看您保存或部署的编排文件。若您仅保存编排文件,可在 可视化编排 页面,继续进行 部署模版 或 导入应用中心 操作。
3.从保存模版中导入
步骤一:选择创建方式
在可视化编排页面点击 创建模版,跳出如下弹窗,选择 从保存模版中导入,点击确定。
点击确定后,用户将进入可视化画布,如下界面。
步骤二:选择已保存模版
用户从左侧已保存模版中列表中选择模版,右侧则会出现与模版对应的可视化资源图,我们以第一个模版为例,选中该模版后,点击 创建。
此时画布呈现的资源为用户所选的模版资源,用户可对该模版进行编辑部署,增加 云主机、云硬盘 等数量,或更改资源配置,操作如上文中的 从零开始创建。
警告:
如果您使用的是从V5升级到V6的已保存模板,需要修改为新的bfv方式。
步骤三:保存/部署/导入应用中心
完成资源配置后,您可选择保存模版、保存并部署以及保存并导入应用中心三种状态。
操作如上文中的 从零开始创建。
步骤四:查看编排
当您完成上述操作后,您可以返回 可视化编排 或 编排部署 页面查看您保存或部署的编排文件。若您仅保存编排文件,可在 可视化编排 页面,继续进行 部署模版 或 导入应用中心 操作。
4.从应用中心创建
步骤一:选择创建方式
在可视化编排页面点击 创建模版,跳出如下弹窗,选择 从应用中心创建,点击确定。
步骤二:选择应用及版本
在页面中选择您需要引用创建的应用并点击,页面切换后,选择您需要的当前应用的某个版本。在下方画布中,您可以看到当前选择版本的应用拓扑图。点击 创建编排 您将进入画布中。
警告:仅当应用及其版本是通过可视化编排创建生成时,才可被选择导入到画布中。
在画布中,您可以对该模版进行拖拽、更改资源等,具体操作如上文中的 从零开始创建。
步骤三:保存/部署/导入应用中心
完成资源配置后,您可选择保存模版、保存并部署以及保存并导入应用中心三种状态。
弹窗页面如下,选择为当前应用的版本后,仅需要填写版本信息。
导入版本功能限制条件如下:
1.该模版是从应用中心导入创建。
2.该模版仅支持第一次在画布中编辑时,保存选择导入版本,退出画布后,只能导入为新应用。
3.导入的模板为V5升级到V6的应用中心模板时,需要先修改为新的bfv方式。
步骤四:查看编排
当您完成上述操作后,您可以返回 可视化编排 或 编排部署 页面查看您保存或部署的编排文件。若您仅保存编排文件,可在 可视化编排 页面,继续进行 部署模版 或 导入应用中心 操作。
5.上传 Yaml 文件
步骤一:选择上传 Yaml 文件
从 可视化编排 页面切换至 编排部署 页面,在 编排部署 页面点击 上传 Yaml 文件。
点击后,用户将进入 上传 Yaml 文件 页面,如下。
步骤二:选择上传 Yaml 方式
当用户点击 模版文件 时,选择上传文件类型,如 文件/直接输入/链接。
- 文件:选择该种创建方式,用户可直接上传Yaml格式文件。点击 浏览,选择上传文件,文件上传成功后,即可创建该编排资源。当系统检查通过后,用户可在编排列表查看并管理。
- 直接输入:选择该种创建方式,用户可直接在输入框中输入 Yaml 格式模版,点击确定后,即可创建该编排资源。当系统检查通过后,用户可在编排列表中查看管理。
- 链接:选择该创建方式,用户在输入框中输入文件的url地址,即可创建该编排资源,该方式适用于当您的Yaml文件为在线文档时。当系统检查通过后,用户可在编排列表中查看管理。
步骤三:填写部署信息
此处,以 文件 上传方式为例,从本地选择一个Yaml格式文件,若该文件存在嵌套文件时,选择一个主文件作为入口文件,其余文件作为嵌套文件上传,嵌套文件需要在模版文件中定义。
入口模版文件(resource_group.yaml)
heat_template_version: 2013-05-23
description: Simple template to deploy a group of instances
parameters:
number_of_servers:
type: number
description: how many servers to spawn
default: 3
resources:
servers:
type: OS::Heat::ResourceGroup
properties:
count: {get_param: number_of_servers}
resource_def:
type: server.yaml
嵌套文件1(server.yaml)
heat_template_version: 2013-05-23
description: Simple template to deploy a single instance
resources:
configure_web_server:
type: OS::Heat::SoftwareConfig
properties:
group: ungrouped
config: {get_file: configure_web_server.sh}
my_instance:
type: OS::Nova::Server
properties:
image: TestVM
flavor: 1-512-20
admin_pass: 1
user_data: {get_resource: configure_web_server}
user_data_format: RAW
networks:
- network: share_net
嵌套文件2(configure_web_server.sh)
#!/bin/sh
cat > /etc/wsgi.py<< EOF
'''
Created on Jan 19, 2017
@author: wangbo
'''
from wsgiref.simple_server import make_server
import socket
def get_ip_address():
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(("8.8.8.8", 80))
ip = s.getsockname()[0]
s.close()
return ip
_ip = 'From: %s\r\n' % get_ip_address()
def hello_world(env, start_response):
"""a simple wsgi application"""
if env['PATH_INFO'] != '/':
start_response('404 Not Found', [('Content-Type', 'text/plain')])
return ['Not Found\r\n']
start_response('200 OK', [('Content-Type', 'text/plain')])
return ['Hello, World!\r\n', _ip]
my_server = make_server('0.0.0.0', 8090, hello_world)
print "Serving on port 8090..."
my_server.serve_forever()
EOF
iptables -I INPUT -p TCP --dport 8090 -j ACCEPT
python /etc/wsgi.py &
然后,选择 环境变量 文件,确定环境变量。
环境变量:当您的Yaml文件为一个固定模版时,你的所有可变变量可以存放在环境变量文件中来实现模版部署,环境变量文件中的参数需要与模版文件中定义的参数保持匹配。您可以选择将您的环境变量文件直接上传文件或者直接输入完成。例如:当您需要上传一个用于创建云主机的Yaml文件时,其中云主机的flavor和镜像为变量,您可以定义一个环境变量文件如下,当创建不同flavor或镜像的文件时,您只需修改环境变量文件即可。
环境变量文件(env.yaml)
parameters:
flavor: 1-512-20
image: CentOS-6.5-minimal
点击 下一步,此时界面将会读取上传的Yaml文件中的参数并展示出来,用户可以在此页面上做更改。同时,填写该编排资源的名称,勾选是否 出错回滚,如下图。
编排信息填写完成后,点击 创建编排,该编排资源将出现在编排列表中。