Ocata 系列 (3.0.0 - 3.0.x) 发行说明¶
3.1.1¶
新特性¶
允许从环境变量 UPPER_CONSTRAINTS_FILE 消费 upper_constraints_file。这将对 OpenStack CI 特别有用,在该 CI 中,此变量在每次作业运行时定义,指向根据分支正确的 requirements 文件。
错误修复¶
CI 测试 playbook 以前在
/opt/git/openstack/中查找 requirements 存储库。现在已更改为在执行时使用WORKSPACE环境变量。
3.0.0¶
序言¶
在 Ocata 周期中,对 bifrost 进行了一系列改进,以提高 bifrost 安装的管理性和持久性。结合了许多修复和改进,升级的用户应该花时间阅读完整的发行说明。以下是一些亮点
Bifrost 现在默认从 PyPI 安装和使用 Ansible 2.1。
Ironic 之前在重新执行安装时会修改现有的 ironic.conf,现在改为使用模板文件。
Bifrost 支持生成和读取 os-client-config
clouds.yaml文件以获取凭据。Bifrost 现在可以利用身份验证,并在安装程序请求时安装和配置 keystone。
由于过去一个周期中,由于缺乏第三方 CI,ironic 中的许多内置驱动程序已被删除,因此添加了支持以启用安装暂存驱动程序仓库的功能。
新特性¶
允许用户插入 ironic 用户的私钥 SSH。这对于 ansible 部署驱动程序和其他基于 ssh 的驱动程序很有用。私钥可以指定为本地文件路径
ssh_private_key_path变量,或作为字符串ssh_private_key。
允许在远程服务器上安装 Ironic。在 inventory 中添加了与 localhost 默认相同的 ‘target’ 组。要远程安装 ironic,需要在 playbooks/inventory/target 文件中配置地址和 ssh 凭据。
Bifrost 已更新为使用 Ansible 2.1 的稳定分支安装版本的 ansible。
Bifrost 现在更倾向于使用已经安装了 Ansible 的系统。在这种情况下,执行
env-setup.sh脚本是不必要的,因为它专为 bifrost 的开发和测试使用而设计。为了在已经安装了 Ansible 的系统上使用 playbooks,必须先安装库依赖项,然后才能执行 playbook
pip install -r requirements.txt如果必须在系统范围内安装软件包,可能需要管理权限。
环境设置脚本现在将尝试从 PyPI 安装 bifrost,而不是使用稳定分支。这是为了解决 Ansible 稳定分支的稳定性问题。
如果未请求安装到 virtualenv,Ansible 将安装到用户
~/.local目录,以避免覆盖可能存在的系统安装。要使用这样安装的 Ansible,可能需要修改$PATH环境变量,以包含~/.local/bin路径。通过使用
ANSIBLE_GIT_BRANCH变量提供了一些向后兼容性,用户可以在其中定义stable-X.Y,并将该系列中可用的最新版本安装。要作为 env-setup 脚本的一部分安装 Ansible 2.1 系列,请执行env ANSIBLE_GIT_BRANCH="stable-2.1" scripts/env-setup。类似地,
ANSIBLE_PIP_VERSION可用于指定所需的精确版本或版本范围。例如ANSIBLE_PIP_VERSION=2.1.0.1或ANSIBLE_PIP_VERSION=<2.2
Bifrost 现在有一个角色,可以为基于 os-client-config 的客户端自动配置创建 clouds.yaml 文件。
添加了创建服务帐户和默认用户帐户到 bifrost 的功能。这由
enable_keystone参数以及包含所有必需参数的keystone和ironic数据结构控制。有关更多详细信息,请参阅 bifrost-ironic-install/defaults/main.yml 文件。
以前,在 RedHat/Suse 系统上执行 bifrost 部署时,必须至少以 permissive 模式执行 selinux。此补丁添加了必要的策略,以允许组件以 enforcing 模式运行。
bifrost 现在支持在基于 RedHat 的发行版上将
dnf作为软件包管理器。它默认尝试使用它,并在dnf不可用时回退到yum。
通过 ironic-inspector 发现节点现在默认启用。如果您希望禁用此功能,请将
enable_inspector_discovery设置为false并重新执行安装 playbook。
Inspector 现在默认安装并启用。这会将
enable_inspector变量的默认值从false更改为true。
配置 ironic-inspector 以利用 keystone 的功能已添加,使用基础
enable_keystone布尔参数。
添加了一个启用 keystone 安装的 ansible 角色,为 bifrost 添加 keystone 支持做准备。
bifrost-keystone-client-config角色现在可以编写一个用于 os-client-config 基于客户端自动配置的clouds.yaml文件。它开始接受单个复合变量clouds,该变量必须包含一个描述键值对的字典,格式为<cloud-name>:<dict-of-cloud-settings>。为了向后兼容,将config_*变量传递到该角色,但已弃用,预计将在 Pike 中删除。除了以前的
bifrost云之外,默认install.yamlplaybook 现在还会写入bifrost-admin云设置,其中包含 Keystone 管理员凭据,以便安装后,Keystone 服务可以立即完全使用(可以管理用户/项目等)。
添加了 Bifrost 直接从 os-client-config 数据读取的功能。虽然 shade 可以做到这一点,但 bifrost 还允许用户直接选择他们要连接的服务器,通过
ironic_url参数。为了避免重复代码和重新设计,如果未检测到全局auth参数,则将从os_client_config模块获取身份验证参数来设置参数。
添加了一个可选参数到与 ironic 交互的角色,定义一个
cloud_name。该云名称由角色用于确定要使用的 os-client-config 中的条目。
添加了对远程日志记录的支持。此功能允许将日志从本地 syslog 服务器发送,而不是从裸机节点上的服务收集日志。要从实际运行的节点收集,需要注入到每个已部署主机中的配置。Syslog 服务器地址和端口可以在选项
remote_syslog_server和remote_syslog_port中指定。
Ironic-Staging-Drivers 现在可以安装。这些驱动程序未包含在 ironic 仓库中,并为 ironic 提供额外的硬件支持。有关驱动程序的更多信息,请参见 Ironic-Staging-Drivers 要安装暂存驱动程序,请将 staging_drivers_include 设置为 true。默认值为 false。
Ironic.conf 已模板化,现在仅设置所需的选项,而不是编辑 Ironic 的示例配置。
已知问题¶
如果在 virtualenv (venv) 中安装 bifrost 并在 localhost 上运行 playbooks,则由于 Ansible 的操作系统行为,必须在系统范围内安装基本的 python 依赖项。
Bifrost 现在有一个角色,可以为基于 os-client-config 的客户端自动配置创建 clouds.yaml 文件。此文件会覆盖执行 bifrost 的用户的默认文件,该文件位于
~/.config/openstack/clouds.yaml。建议用户通过服务帐户执行 bifrost 的安装。
对 os-client-config 的支持的添加不允许用户直接选择他们的
cloud。仅使用返回的第一个条目。
已使用
no_log参数屏蔽读取和存储身份验证数据的日志条目。故障排除非标准身份验证配置可能需要修改 playbooks,以便用户可以调试他们的输入或以不同的方式直接传递数据。
升级说明¶
Bifrost 已更改为默认使用 Ansible 2.1。如果部署遇到 Ansible 问题,他们可能希望检查/更新他们的 Ansible 版本,或重新执行 env-setup.sh 脚本。
Bifrost 不再支持在启用 PXE 驱动程序(默认情况下)时安装 ironic AMT 驱动程序,因为 AMT 驱动程序已从 Ocata 版本中的 ironic 中删除。
安装后,bifrost 将替换已安装的 ironic.conf 文件为生成的模板文件。之前对该文件的自定义设置更改,在重新安装时将丢失。
弃用说明¶
ANSIBLE_INSTALL_ROOT变量已被弃用,仅用于为第三方脚本发出警告。
ANSIBLE_FROM_PYPI变量不再有效,因为 Ansible 现在始终从 PyPI 安装。
node_network_info参数已被弃用,以支持node_network_data参数,因为相关的配置驱动程序network_info.json文件最初命名不正确,应该命名为network_data.json。对 node_network_info 的支持以及继续写入配置驱动程序中的 network_info.json 文件将在 Queens 周期中删除。
ironic_auth_strategy设置已弃用,将在 Pike 中删除。如果存在enable_keystone设置并设置为true,则该设置无效。
inspector_auth设置已弃用,将在 Pike 中删除。如果存在enable_keystone设置并设置为true,则该设置无效。
将定义
bifrost云凭据的config_*变量传递到bifrost-keystone-client-config角色已被弃用,将在 Pike 周期中删除。相反,应将定义要写入clouds.yaml的设置的集合的单个复合变量clouds传递到该角色。
错误修复¶
由于 Ansible 使用的稳定分支标签发生了破坏性更改,bifrost 现在使用从 PyPI 安装 Ansible。
在最初创建将配置驱动程序数据传递到节点的支持时,该文件意外地命名为
network_info.json。正确的文件名是network_data.json。在 Queens 周期中删除对写入network_info.json的支持之前,将写入这两个文件。
添加了 dhcp 配置任务到 inspection 角色。如果启用 inventory_dhcp 并且节点尚未部署,则 inspection 无法工作,因为 dnsmasq 会忽略来自未知地址的请求。此修复程序引入了在 inspection 之前配置 dhcp 的任务。
一些用户定期遇到 introspection 超时的系统问题。因此,我们添加了一个新的参数
inspection_wait_timeout,现在默认值为1800秒。
其他说明¶
默认情况下,安装过程现在会在重新安装时从 ipxe.org 下载 iPXE 二进制文件。以前,未设置强制下载,因此如果文件已存在,则会跳过下载。
过去,Ironic 中的示例配置可能设置了一些 Bifrost 利用的样板。但现在该配置完全由注释组成,因此此更改不会带来太多变化,除了删除所有这些注释,并仅将使用 Bifrost 的 ironic.conf 中所需的配置保留下来。