Pike 系列 (4.0.0 - 4.0.x) 发布说明¶
4.0.2¶
新特性¶
添加了对执行 ironic 在线数据迁移的支持。
错误修复¶
修复了 proliantutils 库版本未受约束的问题,可能导致安装不兼容的库。版本已固定为 2.7.0。
4.0.0¶
新特性¶
bifrost 现在始终写入
clouds.yaml配置文件,用于 os-client-config,无论是否安装了 keystone。这允许统一使用 ironic 相关的 openstackclient 命令,无论是否安装了 keystone,通过以下形式使用
openstack命令:openstack --os-cloud bifrost baremetal ...
将
bifrost-create-vm-nodes角色更改为使用 Ansible 的 virt 模块来创建用于 bifrost 测试的虚拟机。这取代了用于创建虚拟机的嵌入式 bash 脚本。因此,bash 脚本中存在的所有变量现在都作为默认角色变量可用,并且可以通过标准的 Ansible 方法进行覆盖。为了向后兼容,一些变量仍然支持使用 shell 变量,但这已被弃用,应避免使用。
允许配置 inspector 处理钩子。
现在可以通过
inspector_processing_hooks变量配置 ironic inspector 使用的检查数据处理钩子集合,默认情况下使用 inspector 的默认列表。
允许在 inspector PXE 配置中指定额外的内核参数。
Ironic Python Agent (IPA) 中的许多可选功能通过内核命令行参数进行配置,例如
ipa-collect-lldp。现在可以使用
inspector_extra_kernel_options变量指定 IPA ramdisk 在检查期间使用的其他内核参数。
允许在配置的实例中设置多个 nameserver。ipv4_nameserver 设置现在可以接受字符串或字符串列表,从而允许填充所有所需的 nameserver。
允许配置日志目录
在某些情况下,能够配置 bifrost 服务写入日志文件的目录很有用。
现在可以使用
ironic_log_dir、inspector_log_dir和nginx_log_dir变量分别配置 ironic、inspector 和 nginx 的日志目录。
Bifrost 现在支持为 ironic 和 ironic-inspector 定义特定的数据库服务器、用户名、密码和数据库名称。
如果数据库的主机未设置为
localhost,则将跳过数据库和用户创建等操作。此功能存在于 ironic、ironic-inspector 和 keystone 的引导程序中,并适用于适用的初始显式数据库模式创建步骤。
Bifrost 已经移除了对 Ironic 的基于 SSH 的电源和管理驱动程序的支持,因为 Ironic 已经移除了这些驱动程序。
Bifrost 测试已迁移到基于
ipmitools的 ironic 驱动程序和通过 ‘virtualbmc’ 实用程序暴露的虚拟硬件。bifrost 设置的默认 ironic 驱动程序已更改为
pxe_ipmitool和agent_ipmitool。bifrost 动态库存中 CSV baremetal 数据文件的默认驱动程序已更改为
agent_ipmitool。
将所有使用“虚拟”硬件进行测试的准备工作移动到
bifrost-create-vm-nodes角色,并且 libvirt 交互已从bifrost-ironic-install角色中解耦。
允许从环境变量 UPPER_CONSTRAINTS_FILE 消费 upper_constraints_file。这将对 OpenStack CI 特别有用,在该 CI 中,此变量在每次作业运行时定义,指向根据分支正确的 requirements 文件。
现在可以为所有使用动态 JSON 库存的主机定义额外的每主机库存组。实现方法是简单地在 host_group 属性中定义一个组列表,如下例所示:
"node1": { "uuid": "a8cb6624-0d9f-c882-affc-046ebb96ec01", "host_groups": [ "baremetal" ], }
在配置虚拟机时,可以通过设置
test_vm_host_groups变量来设置每个虚拟机的库存组,如下所示:{ test_vm_host_groups: { testhost: [nova, cinder] } }
还可以通过简单地将
host_default_group变量设置为默认组列表来更改虚拟机的默认baremetal组,如下所示:{ test_vm_default_groups: [baremetal vms] }
默认组列表也可以在
DEFAULT_HOST_GROUPS环境变量中设置。这是更改 baremetal 主机默认组的唯一方法。export DEFAULT_HOST_GROUPS="foo bar zoo"
这将把默认组更改为 [foo, bar, zoo],而不是当前默认的 [baremetal]。在使用此方法时应格外小心,因为大多数 bifrost playbook 依赖于为配置主机提供 [baremetal] 组。
Bifrost 的测试已迁移到使用 JSON 格式的 baremetal 库存文件,而不是已弃用的 CSV 格式。
bifrost-create-vm-nodes角色仍然接受baremetal_csv_file变量作为写入库存的路径,但文件内容始终为 JSON 格式。应改用新的变量baremetal_json_file作为写入测试 baremetal 库存文件的位置。
下载的 IPA 文件现在可以使用校验和文件进行验证。上游构建默认情况下将进行验证,但可以通过将
ipa_kernel_upstream_checksum_url或ipa_ramdisk_upstream_checksum_url变量设置为空字符串来禁用此行为。默认校验和算法是sha256,与上游文件中提供的算法匹配。如果您想提供自己的校验和文件,可以将上述变量适当设置为匹配您的设置。您还可以将ipa_kernel_upstream_checksum_algo或ipa_ramdisk_upstream_checksum_algo设置为校验和算法,例如md5,如果您想提供非 sha256 校验和。但请小心,因为这些值必须对 Ansibleget_url模块的checksum参数有效。最后,也可以通过将ipa_kernel_checksum或ipa_ramdisk_checksum变量设置为$algorithm:$checksum来直接提供校验和。如果验证失败,bifrost 将重试几次以重新下载和重新验证文件,然后再放弃,假设存在网络问题或远程服务器上的文件损坏。
升级说明¶
bifrost 设置的默认 ironic 驱动程序已更改为
pxe_ipmitool和agent_ipmitool。
bifrost 动态库存中 CSV baremetal 数据文件的默认驱动程序已更改为
agent_ipmitool。依赖于此行为的 bifrost 用户必须显式地在 CSV baremetal 数据文件中设置驱动程序。
在
bifrost-create-vm-nodes角色中baremetal_csv_file变量已被弃用,并将于 Queens 版本中删除。此角色写入此位置的文件现在始终为 JSON 格式。应改用baremetal_json_file变量,而不是baremetal_csv_file。这仅涉及使用bifrost-create-vm-nodes角色和树外脚本来处理此角色生成的 baremetal 库存文件的操作员。如果这些脚本依赖于文件为 CSV 格式,则必须更新为使用 JSON 格式。
弃用说明¶
依赖于 shell 环境变量来设置创建的虚拟节点的参数已被弃用,并将于 Queens 版本中删除。任何依赖于此行为的脚本都需要更改为显式地将这些参数作为 extra-vars 传递给 ansible-playbook 调用。
将
ironic_db_password变量作为可用默认值将被删除在 bifrost 的 Queens 版本中。
对 CSV baremetal 数据格式的
*_ssh驱动程序的处理已被删除,因为这些驱动程序已被从 ironic 中删除。
CSV 格式的 baremetal 库存文件已被弃用,并且在 Queens 版本中将无法使用它。在弃用期间,bifrost 的动态库存仍然支持其处理,但此功能将在 Queens 版本中删除。
错误修复¶
CI 测试 playbook 以前在
/opt/git/openstack/中查找 requirements 存储库。现在已更改为在执行时使用WORKSPACE环境变量。
修复了一个执行
install.yaml会返回一个错误,指示未找到SUDO_USER,通过提供回退到ansible_user_id变量的问题。
允许覆盖
undionly.kpxe启动选项。作为操作员,我可能希望为不由 bifrost 管理的主机提供 DHCP 启动选项,使用 bifrost dnsmasq 服务器。
以前,如果在
/etc/dnsmasq.d/中通过文件向 dnsmasq 提供dhcp-boot配置选项,并且服务器未通过 iPXE 启动,则该选项将被 bifrost 在/etc/dnsmasq.conf中添加的undionly.kpxe选项覆盖。Bifrost 现在支持在
/etc/dnsmasq.d中提供的用户提供的dhcp-boot选项。应使用适当的标签集来匹配这些选项,以确保规则覆盖 bifrost 在/etc/dnsmasq.conf中配置的默认规则。
支持将
no_proxy环境变量传递给 Ansible,用户可以使用no_proxy排除指定的主机使用代理。
其他说明¶
bifrost 主机依赖项现在使用
bindep工具进行安装。应将新的依赖项添加到 bindep.txt 文件中,并在必要时使用适当的配置文件信息。核心依赖项(即启动系统所需依赖项,例如 python、gcc、libffi 等)必须同时列在 bindep.txt 文件和 scripts/install-deps.sh 文件中,主要有两个原因。首先,OpenStack CI 可能仅会咨询 bindep.txt 以拉取必要的依赖项。其次,bindep需要某些软件包存在才能正确构建其依赖项。有关bindep工具的更多信息,请参见 https://docs.openstack.org/infra/bindep/