LibCloud后端¶
这是一个_实验性_的配置后端,最终旨在支持多个libcloud驱动程序。目前仅支持OpenStack驱动程序。
先决条件¶
拥有一个支持Nova和Cinder的OpenStack提供商账户
支持RFC 2136的DNS服务器。我们使用bind和这个ansible角色来帮助配置我们的。
配置为更新DNS记录的nsupdate-web实例。我们为此也使用了一个ansible角色。
在teuthology.yaml中为此后端本身(参见配置)和nsupdate-web进行配置
您还需要选择同时运行的最大节点数,并在您的paddles数据库中为每个节点创建记录 - 确保将每个节点的is_vm设置为True。
配置¶
使用OVH作为OpenStack提供商的示例配置
libcloud:
providers:
ovh: # This string is the 'machine type' value you will use when locking these nodes
driver: openstack
driver_args: # driver args are passed directly to the libcloud driver
username: 'my_ovh_username'
password: 'my_ovh_password'
ex_force_auth_url: 'https://auth.cloud.ovh.net/v2.0/tokens'
ex_force_auth_version: '2.0_password'
ex_tenant_name: 'my_tenant_name'
ex_force_service_region: 'my_region'
为什么选择nsupdate-web?¶
虽然我们可以支持直接调用nsupdate,但我们选择不这样做。原因有以下几点
避免在teuthology上增加另一个本可以留给独立服务的功能
避免teuthology用户必须请求、获取和保护nsupdate运行所需的私钥
因为我们为Sepia的所有测试节点使用一个子域,所以我们不得不为整个区域启用动态DNS(这是bind的一个限制)。然而,我们不希望用户能够推送整个区域的DNS更新。相反,我们赋予了nsupdate-web根据主机名是否匹配可配置的正则表达式来接受或拒绝请求的能力。私钥本身不与非管理员用户共享。
Bugs¶
目前,仅测试了OVH作为提供商。欢迎PR支持更多提供商!