第 9 章 在实例中添加元数据
Compute (nova)服务使用元数据在启动时将配置信息传递给实例。实例可以使用配置驱动器或元数据服务访问元数据。
- 配置驱动器
- 配置驱动器是可在引导时附加到实例的特殊驱动器。配置驱动器以只读驱动器形式呈现给实例。实例可以挂载此驱动器并从中读取文件,以获取通常通过元数据服务提供的信息。
- 元数据服务
-
Compute 服务将元数据服务提供为 REST API,可用于检索特定于实例的数据。实例通过
169.254.169.254
或fe80::a9fe:a9fe
访问此服务。
9.1. 实例元数据类型
云用户、云管理员和计算服务可以将元数据传递给实例:
- 云用户提供的数据
- 云用户可以指定在启动实例时要使用的附加数据,如实例在引导时运行的 shell 脚本。云用户可以使用用户数据功能将数据传递给实例,并在创建或更新实例时根据需要传递键值对。
- 云管理员提供数据
RHOSP 管理员使用 vendordata 功能将数据传递给实例。Compute 服务提供 vendordata 模块
StaticJSON
和DynamicJSON
,以允许管理员将元数据传递给实例:-
StaticJSON
:(默认)适用于所有实例的元数据。 -
DynamicJSON
:将用于每个实例不同的元数据。此模块向外部 REST 服务发出请求,以确定要添加到实例的元数据。
vendordata 配置位于实例中以下只读文件之一:
-
/openstack/{version}/vendor_data.json
-
/openstack/{version}/vendor_data2.json
-
- 计算服务提供的数据
- Compute 服务使用元数据服务的内部实施将信息传递给实例,如实例请求的主机名,以及实例所在可用区。默认情况下发生这种情况,且不需要云用户或管理员配置。