自定义数据

您所在的位置:网站首页 2k21运球速度什么意思 自定义数据

自定义数据

#自定义数据| 来源: 网络整理| 查看: 265

User Data,即用户自定义数据,可让用户在创建云服务器时通过上传一些自定义的参数或脚本,来对云服务器做一些定制化配置或完成特定任务。

与此同时,用户可能也需要获得一些云服务器的运行参数,作为定制行为的判断依据之一,这些系统参数被称为 MetaData,也会随 User Data 功能一起提供给用户。

MetaData

MetaData 是青云定义的一组关于云服务器运行参数的字段,主要包括云服务器 ID、云服务器 CPU 和内存配置、操作系统、挂载的硬盘、所在的子网等。

通过文件写入

青云可以通过将 MetaData 写入云服务器内文件的方式提供给用户,用户对文件做一定处理后即可获得 MetaData 值。

为方便用户编程时对参数值的调取,对 MetaData 文件的参数格式做了特殊规定,目前支持如下两种。

JSON 格式

参数与参数值写成 JSON 格式,与目前青云 API 的提供方式类似。

ENV 格式

参数与参数值写成类似于系统环境变量的形式,方便 bash 等的读取。

这两个文件,分别命名为 metadata.json 和 metadata.env,默认会放在云服务器 /etc/qingcloud/userdata 目录下(可通过自定义路径更改),用户可自行选择使用其中一种。

目前 MetaData 提供的字段,如下表所示。

Name Type Description

instance_id

String

云服务器 ID

instance_name

String

云服务器名称

instance_type

String

云服务器类型,为青云预定义的一些配置类型。可参考 Instance Types

vcpus_current

Integer

CPU 核数,有效值为 1, 2, 4 等

memory_current

Integer

内存大小,单位 MB,有效值为 1024, 2048, 4096 等

image_id

String

镜像 ID

platform

String

OS 平台,windows 或 linux

os_family

String

OS 发行版,有效值为 centos,ubuntu 等

volume_ids

String

云服务器挂载的数据盘 ID,可能会有多个,每个 ID 间以逗号相连;若创建时不挂载则为空

vxnets_count

Integer

子网个数

vxnets

List

子网列表,可以为基础网络,也可以为私有网络,可能会有多个;若创建时不选择子网则为空。每个子网为一个 Dict,包含的 key 有 vxnet_id 和 nic_id,分别对应子网 ID 和网卡 MAC 地址

ENV 格式的 MetaData,大部分与 JSON 格式的定义相同。唯有 vxnets 因为是 List 和 Dict 的复合结构,为方便使用,在 ENV 中将其元素全部分解,作为独立的字段。

以有两个子网的云服务器为例,对应的 ENV 字段分别如下表所示。

Name Type Value Description

vxnets_0_nic_id

String

'52:54:39:ea:a5:a2'

第一个子网的网卡 MAC 地址

vxnets_0_vxnet_id

String

'vxnet-0'

第一个子网的子网 ID

vxnets_1_nic_id

String

'52:54:22:49:f7:46'

第二个子网的网卡 MAC 地址

vxnets_1_vxnet_id

String

'vxnet-hunqvu1'

第二个子网的子网 ID

通过 Metadata Server 获取

用户可以在任何时间通过内网的 Metadata Server 获取本机的信息,方式如下所示。

curl http://metadata.ks.qingcloud.com/i-xxxxxxxx/

其中 i-xxxxxxxx 是本机的 ID ,可以从 hostname 得到。数据返回 JSON 格式,信息与前面描述相同。

需要注意的是,Metadata Server 有访问限制:

只能获取自己名下的云服务器信息。

对同一目标云服务器 ID ,一分钟内可重复请求 5 次。

对同一来源的请求(根据内网 IP 判断) ,一分钟内可接收 100 次。 如果是私有网络内的云服务器,Metadata Server 接收到的来源 IP 是路由器内网 IP 。

User Data

User Data 为用户自定义的任何格式、任何内容的配置文本或脚本。

这里允许三种方式实现用户自定义。

提供单一字符串。

字串长度的最大限制为 4K。 此情况适用于用户的执行逻辑已固定在镜像中,需上传的灵活配置文件较小较简单时。

对于字符串类的 User Data,该字符串默认会被写入云服务器 /etc/qingcloud/userdata 目录下(可通过自定义路径更改)的 userdata.string 文件供访问。

提供文件打包,添加或覆盖云服务器文件系统内的若干个文件。

压缩包数量限定为一个。压缩包的最大限制为 2M。压缩包格式限定为 zip、tar、tgz 或 tbz。 此情况适用于较大复杂度的 User Data 使用时;或有若干个与 User Data 相关的脚本需共同使用时。

用户打包时需从云服务器的根目录位置开始打包,如此才可包含全路径。青云系统会将文件从云服务器的根目录起解包至对应位置。

对于包内的内容, 若云服务器为 Linux 则不做限定。 Windows 云服务器必须包含一特别命名的 vbs 脚本,作为执行 User Data 相关任务的入口,此文件为 /etc/qingcloud/userdata 目录下的 userdata.vbs。

提供可执行脚本代码。

内容长度的最大限制为 4K。 此情况适用于开机时自动执行脚本完成软件部署和配置。

对于可执行脚本代码的 User Data,代码默认会被写入云服务器 /etc/rc.local 文件中(可通过自定义路径更改),实现开机自动执行。 Windows 云服务器仅支持 vbs 脚本。

创建自定义数据的云服务器

登录 QingCloud 管理控制台。

选择产品与服务 > 计算 > 云服务器,进入云服务器列表页面。

点击创建,进入购买云服务器页面。与普通云服务器一样,选择镜像和云服务器配置。

使用 MetaData 功能。

在配置信息 > 存储中,若您添加了数据盘,则硬盘 ID 会反映在 MetaData 的字段中。

使用 User Data 功能。

在云服务器设置 > 高级设置,勾选高级设置选项,配置自定义数据。

若选择 无,则不使用 User Data 功能。若选择 文本,则可以手动输入文本或从一个文本文件中读取。

默认情况下,metadata 和 userdata.string 文件都会放在 /etc/qingcloud/userdata 目录下。

用户可以通过输入自定义路径更改其位置。只需在输入文本或上传压缩包时同时指定路径即可。 若路径不合法,则依然使用默认路径。

若选择 压缩包,则需上传一个压缩包。

若选择 执行文件,则需填入脚本代码。

点击立即购买,创建带有 MetaData 和 User Data 的云服务器。

使用示例

下面是一个使用压缩包类型的例子。

在本地任意位置创建一个 etc 目录,并在该目录下创建 rc.local 文件,其中的内容如下所示。

#!/bin/sh hostname myname

这个脚本可以修改云服务器名称为 myname。

将 etc 目录和 rc.local 一起打包,在自定义数据中选择压缩包,MetaData 路径仍然使用默认路径。云服务器启动后就可以执行上述逻辑。

注意

当自定义数据选择压缩包时,不支持自定义路径。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3