Vendordata¶
注意
本节提供 vendordata 功能的部署信息。有关 vendordata 功能和实例元数据的用户信息的详细内容,请参阅 用户指南。
vendordata 功能提供了一种将供应商或部署特定信息传递到实例的方法。用户可以使用 元数据服务 或使用 配置驱动器 来访问这些信息。
nova 提供了两个 vendordata 模块:StaticJSON 和 DynamicJSON。
StaticJSON¶
StaticJSON 模块包含从磁盘加载的静态 JSON 文件的内容。这可用于那些在实例之间不发生变化的内容,例如公司 puppet 服务器的位置。它是默认提供程序。
配置¶
要配置启用 StaticJSON vendordata 模块的服务取决于访客访问 vendordata 的方式。如果使用元数据服务,则配置适用于 nova-api-wsgi 或 nova-metadata-wsgi,具体取决于部署,而如果使用配置驱动器,则配置适用于 nova-compute。但是,配置方式相同,并且以下选项适用
DynamicJSON¶
DynamicJSON 模块可以向外部 REST 服务发出请求,以确定要添加到实例的元数据。我们建议您使用这种方法生成 Active Directory 令牌等每个实例都会发生变化的内容。
使用时,DynamicJSON 模块将向 api.vendordata_dynamic_targets 配置选项中列出的任何 REST 服务发出请求。这些服务可以不止一个,但请注意,它们将为每个来自实例的元数据请求查询一次,这取决于您的配置和实例的配置,可能会产生大量流量。
以下数据作为 JSON 编码的 POST 传递给您的 REST 服务
键 |
描述 |
|---|---|
|
拥有此实例的项目 ID。 |
|
此实例的 UUID。 |
|
用于启动此实例的镜像 ID。 |
|
用户在启动时指定的数据。 |
|
实例的主机名。 |
|
用户在启动时指定的数据。 |
从 REST 服务获取的元数据将出现在元数据服务中的一个名为 vendordata2.json 的新文件中,其路径(在元数据服务 URL 或配置驱动器中)如下所示
openstack/latest/vendor_data2.json
对于每个动态目标,JSON 文件中将有一个以该目标命名的条目。例如
{
"testing": {
"value1": 1,
"value2": 2,
"value3": "three"
}
}
novajoin 项目提供了一个动态 vendordata 服务,用于管理 IPA 服务器中的主机实例化。
部署注意事项¶
Nova 为外部元数据服务提供身份验证,以便提供一定程度的确定性,即请求来自 nova。这是通过提供带有请求的服务令牌来完成的 - 然后您可以将元数据服务与 keystone 身份验证 WSGI 中间件一起部署。这使用 vendordata_dynamic_auth 配置组中的 keystone 身份验证参数进行配置。
配置¶
与 StaticJSON 类似,要配置启用 DynamicJSON vendordata 模块的服务取决于访客访问 vendordata 的方式。如果使用元数据服务,则配置适用于 nova-api-wsgi 或 nova-metadata-wsgi,具体取决于部署,而如果使用配置驱动器,则配置适用于 nova-compute。但是,配置方式相同,并且以下选项适用
有关如何配置所需服务的更多信息,请参阅 元数据服务 和 配置驱动器 文档。
此外,还有许多与身份验证相关的选项。这些由 keystone 提供,但为了完整起见,在此列出
有关配置这些内容的更多信息,请参阅 keystone 文档。
参考¶
Michael Still 在悉尼皇后峰会上的演讲,元数据、用户数据、供应商数据,哦天哪!
Michael 在 部署简单的 vendordata 服务 上的博客文章,其中提供了更多详细信息和示例代码,以补充上述文档。