2024.2 系列发布说明¶
30.1.3¶
其他说明¶
RabbitMQ 的 Debian/Ubuntu 仓库已从 ppa1.rabbitmq.com 更改为 deb1.rabbitmq.com 和 deb2.rabbitmq.com。
30.1.2¶
升级说明¶
变量
networking_ovn_bgp_install_branch已重命名为networking_ovn_bgp_git_install_branch,以匹配现有的命名约定。
安全问题¶
包含 Keystone 和 Swift 的补丁版本,用于 OSSA-2025-002
错误修复¶
修复了仓库容器启动时的竞争条件,当 var-www-mount.repo 在 glusterd.service 完全启动之前启动时。
修复了 SHA pinning 和
ovn-bgp-agent的安装,因为 SHA pinning 和 role 使用了不同的变量名。
30.1.0¶
已知问题¶
发现 Ubuntu 24.04 (Noble Numbat) 中的 LXC 5.0.3 包含打包问题,导致 apparmor 剖析冲突。已在
lxc_hostsrole 中应用了一个临时解决方法,以应用到配置文件的热修复。但是,在下次更新liblxc-common包时,它将被清除。请查看 bug #2110635 以获取有关该问题的更多详细信息。
错误修复¶
os_neutronrole 忽略了aa-disable命令的实际退出代码,当它异常退出时。这可能会导致 neutron 代理稍后出现不明显的故障。已修复此问题,如果aa-disable无法禁用所需的 apparmor 配置文件,该 role 将会失败,而不是抑制该问题。
由于
mirror.mariadb.org中 MariaDB 的存储版本策略发生变化,当前 pinned 的 MariaDB 版本已从仓库中删除。通过切换到archive.mariadb.org,应该可以解决 MariaDB 的安装失败问题。
其他说明¶
MariaDB 的镜像已切换到
archive.mariadb.org
30.0.2¶
升级说明¶
为了支持 eventlet 服务器,Neutron 的 uWSGI 默认再次被禁用。这也停止并禁用了 uWSGI 模式所需的以下服务
neutron-periodic-workersneutron-ovn-maintenance-workerneutron-rpc-server
错误修复¶
在使用 uWSGI 的情况下,与 HashRing 生成相关的 bug #2096937 已被报告。为了快速解决该 bug,Neutron 的 uWSGI 模式默认再次被禁用,直到为 uWSGI 提供适当的修复为止。
30.0.0¶
序言¶
OpenStack-Ansible 的所有 playbook 都已移动到 openstack.osa collection 下,该 collection 作为 bootstrap-ansible.sh 过程的一部分进行安装。我们保留了 playbook 在原始名称和位置,以实现向后兼容性,尽管它们只是从 collection 导入相应的 playbook。
rabbitmq_upgrade 变量的行为已更改。它不再可以用于重置集群状态。现在它仅充当执行现有集群滚动升级的标志。
新特性¶
添加了一个新变量
octavia_security_group_additional_rules,允许配置 Amphora 的其他安全组规则。
添加了对 ceilometer 消耗 magnum 通知的功能。当 magnum_ceilometer_enabled 为 True 时,将自动消耗通知。
添加了变量
octavia_gigabytes和octavia_num_volumes,以控制 Octavia Amphorae 被生成到的项目的配额定义。
添加了变量
openstack_apache_mpm_backend,它用作服务特定变量的默认值,以定义整个部署中使用的 Apache MPM。如果未被覆盖,将使用默认 MPMevent。
添加了一个 bash 自动完成脚本,该脚本将帮助运行 openstack-ansible 命令。它被放置在
/etc/bash_completion.d/openstack-ansible,因此请确保您的 .bashrc 配置为从那里加载完成脚本。截至今天,它可以帮助完成 playbook 名称,这些名称是 collection 的一部分,Ansible 原生标志以及在使用了--limit标志的情况下主机。
添加了一个变量
cloudkitty_storage,允许轻松定义 Cloudkitty 的存储配置选项。
添加了变量
nova_ssh_custom_config,它允许应用 Nova Compute 在执行离线迁移或调整大小期间建立的 SSH 连接的额外配置。可用于定义自定义 SSH 端口或 ProxyJump。
添加了一个变量
rabbitmq_erlang_package_version,当external_repo用作软件包源时,可以使用它来定义正在使用的 erlang 版本。
如果启用了 FWaaS 服务,Neutron 的防火墙即服务仪表板将自动部署。FWaaS 现在是 Neutron 项目的一个有效交付物。
一个映射
<service>_haproxy_services现在可以包含一个键haproxy_limit_hosts,可用于过滤应用于此配置的 haproxy 节点。如果希望对 haproxy 主机应用不同的服务配置,此行为可能很有用。
实现了变量
horizon_extra_local_settings,允许将定义为常规映射的任意参数插入到 Horizon 的 local_settings.py 中。参数将在配置文件末尾插入。
实现了变量 neutron_l3_agent_extensions 以控制启用的 L3 代理扩展列表。
添加了变量以更好地控制 Octavia 的 SSH 密钥对生成
octavia_ssh_key_manage(True):启用 Octavia role 以生成和管理 Amphora 将使用的 SSH 密钥对。octavia_resources_deploy_host(localhost):将创建 SSH 密钥的主机。octavia_ssh_key_dir(${HOME}/.ssh):在octavia_resources_deploy_host上创建密钥对的目录octavia_ssh_key_comment(Generated-by-Nova):密钥对的注释。octavia_ssh_key_format(ssh):存储的私钥的格式octavia_ssh_key_type(rsa):生成的 SSH 密钥对的类型octavia_ssh_key_size(2048):私钥长度。
playbooks 文件夹中的功能代码已移动到 OpenStack-Ansible 仓库到 openstack.osa collection。
这意味着您可以单独控制 playbook 的版本,而无需控制 OpenStack-Ansible 仓库本身。这还允许您在不提供 playbook 的显式路径的情况下调用 playbook,而是通过 FQCN,例如:
openstack-ansible openstack.osa.setup_openstack我们还重命名了一些 playbook,以更好地反映其目的。例如
playbooks/os-nova-install.yml变为openstack.osa.nova为了向后兼容,我们保留了旧的 playbook 名称/路径,尽管它们包含来自 collection 的相应 playbook 的简单导入。
RabbitMQ 版本已升级到新的主要版本 4.0
rabbitmq_server role 的 apt 仓库设置已迁移到使用 deb822_repository ansible 模块,而不是旧的 apt_key 和 apt_repository 模块。新的模块要求更改了 rabbitmq_repo 和 rabbitmq_erlang_repo ole 默认变量的格式,现在它们是列表,允许在需要时配置多个仓库。
位于 novemberain.com 的 rabbitmq apt/yum 包仓库已被 rabbitmq.com 上的仓库取代,这符合 rabbitmq 安装指南的更改。
添加了对 Ubuntu 24.04 LTS (Noble Numbat) 的部署的支持。
已知问题¶
由于 Ansible collections 中 OpenStack 的 bug,在某些情况下,“Default”域名可以重命名为“default”。一个已知的示例是在
keystone_sp -> trusted_idp_list -> federated_identities结构下定义domain: default的情况下。
升级说明¶
通过 ceph_yum_repo_url 和 ceph_repo_url 变量对 ceph_client role 的仓库配置发生了变化。这些变量已被统一的 ceph_repo_url 变量取代。因此,ceph_apt_repos 已被 ceph_repos 变量取代,该变量应遵循 Debian/Ubuntu 的 deb822_repository 格式和 CentOS Stream/Rocky Linux 的 yum_repository 格式。
将
octavia_cinder_volume_size的默认值更改为 20gb,以与octavia_amp_disk的值对齐
当
octavia_cinder_enabled: True时,Amphorae flavor 将设置 0 个磁盘(通过变量octavia_amp_disk)。
由于当前 OpenStack 版本存在兼容性问题,Neutron API 的默认值已切换回旧的 eventlet,而不是 uWSGI。您可以在 Neutron bug report 中找到更多信息。您可以通过设置
neutron_use_uwsgi: True来保留当前行为
请确保在联邦使用的情况下,定义域名称而不是其 ID(例如,在
keystone_sp -> trusted_idp_list -> federated_identities结构下定义Default而不是default)。
由于当前版本的 RabbitMQ 不再支持 RabbitMQ HA(镜像)队列,请确保在继续升级之前已执行迁移到 Quorum Queues。请查看 迁移到 HA 和 Quorum Queues 文档,以获取有关迁移路径的更多详细信息。
在 openstack_user_config.yml` 中,HAProxy 目标主机的组名已从
haproxy_hosts更改为load_balancer_hosts。虽然保持了向后兼容性,但建议在升级期间使用新组替换定义。
为了使整个部署中使用的 Apache MPM 保持一致,Horizon 默认 MPM 已从
worker切换到event。引入了变量horizon_apache_mpm_backend来定义正在使用的 MPM。
为了与 服务部署指南 中的服务类型对齐,目录中的服务类型已从
ha更改为instance-ha。
更改了变量
neutron_default_availability_zones的默认值。从现在开始,该 role 将收集所有主机上定义的neutron_availability_zone(默认情况下为 nova),并尝试默认在所有可用可用区上进行调度。更改默认值不应改变单可用区设置的行为。
uWSGI 再次默认启用 Neutron。随之而来的是,当使用 uWSGI 时,应确保 Neutron 正常运行的新服务被引入。
neutron-periodic-workers服务在启用 WSGI 时,对所有驱动程序都已启用。它与先前存在的neutron-rpc-server服务一起运行。neutron-ovn-maintenance-worker服务仅在将 ml2.ovn 用作neutron_plugin_type时添加。只有当 Neutron 的neutron_use_uwsgi设置为 True 时,该服务才会被启用并运行。
如果您使用的是 Ubuntu 22.04 Jammy Jellyfish 且
install_method: distro,请确保禁用neutron_use_uwsgi,因为此模式下工作所需的二进制文件缺失于此发行版的软件包中。
在继续升级之前,请确保您正在运行 RabbitMQ 3.13 版本。如果您的 RabbitMQ 版本低于 3.13,则升级到 4.0 将会失败。您可以通过在运行时提供变量
rabbitmq_package_version来使用相同版本的角色升级到 3.13,例如:openstack-ansible openstack.osa.rabbitmq_server -e rabbitmq_upgrade=true -e rabbitmq_package_version=3.13.7-1,然后重新运行升级到 4.0。
通过 rabbitmq_repo 变量对 rabbitmq_server 角色 apt 仓库的配置已更改,以匹配 deb822_repository ansible 模块。任何自定义仓库配置的部署都应调整其 rabbitmq_repo 和 rabbitmq_erlang_repo 重写以适应。
用于 repo 容器/主机的 Web 服务器已从 Nginx 更改为 Apache。这样做是为了减少我们通过角色管理的服务的数量,并更好地对齐方法和开发方向。
位于 novemberain.com 的 rabbitmq apt/yum 包仓库已被 rabbitmq.com 上的仓库取代,这符合 rabbitmq 安装指南的更改。任何本地镜像都应调整为使用推荐的上游源。
gnocchi_policy_default_file_path的默认值已更改为在/etc/openstack_deploy/gnocchi/文件夹下搜索policy.yaml文件。请确保您使用 YAML 格式而不是 JSON 格式的文件。
弃用说明¶
为了统一 EL 和 Debian 平台上的 Ceph 客户端安装方法,以下变量已被弃用且会被静默忽略
ceph_yum_repo_url
ceph_apt_repo_url
ceph_apt_repos
以下已弃用的变量已被删除,不再生效
cinder_service_v2_name
cinder_service_v2_port
cinder_service_v2_proto
cinder_service_v2_type
cinder_service_v2_description
cinder_service_v2_publicuri
cinder_service_v2_publicurl
cinder_service_v2_adminuri
cinder_service_v2_adminurl
cinder_service_v2_internaluri
cinder_service_v2_internalurl
以下变量已被弃用并删除,以支持其类似变量
cinder_service_description -> cinder_service_v3_description
cinder_service_publicuri_proto -> cinder_service_v3_publicuri_proto
cinder_service_adminuri_proto -> cinder_service_v3_adminuri_proto
cinder_service_internaluri_proto -> cinder_service_v3_internaluri_proto
cinder_service_type -> cinder_service_v3_type
cinder_service_publicuri -> cinder_service_v3_publicurl
cinder_service_adminuri -> cinder_service_v3_adminurl
cinder_service_internaluri -> cinder_service_v3_internalurl
cinder_service_v3_port -> cinder_service_port
cinder_service_v3_proto -> cinder_service_proto
已移除对 Debian 11 (Bullseye) 的支持。
变量
rabbitmq_erlang_version_spec已被弃用,不再生效。请改用rabbitmq_erlang_package_version。
RabbitMQ HA(镜像)队列不再受 RabbitMQ 支持,因此相应的策略已被弃用并删除,以支持 quorum 队列。预计在 2024.1 (Caracal) 版本中执行迁移到 Quorum 队列。请查看 迁移到 HA 和 Quorum 队列 文档,了解有关迁移路径的更多详细信息。
在 openstack_user_config.yml` 中使用
haproxy_hosts已被弃用,以支持load_balancer_hosts。
变量
keystone_external_ssl已被弃用且不再使用。您仍然可以通过keystone_backend_ssl或haproxy_ssl/haproxy_ssl_all_vips来控制 HAProxy 和 Keystone 之间的通信是否应使用 TLS 保护,以及客户端和 HAProxy 之间的通信是否应使用 TLS 保护。
变量
haproxy_tls_vip_binds已重命名为haproxy_vip_binds,以更好地反映变量的目的。旧变量名称仍然受尊重,但不鼓励使用,旧命名将在未来删除。
Bug 修复¶
Octavia 角色现在通过定义
octavia_cinder_enabled: True正确处理 Amphorae 的配额定义。
跨服务的 Apache MPM 已对齐,不会在 metal 部署上发生冲突。默认使用 Apache MPM event。
在切换 Neutron 从 uWSGI 到旧的 eventlet 时,该角色将禁用并停止 neutron-rpc-server 服务。
haproxy_all组不再填充在 LXC 容器内安装 haproxy/keepalived 的裸机主机。
通过
haproxy_limit_hosts键恢复了为每个 haproxy 主机提供不同 haproxy 服务设置的功能,该键提供了目标 HAProxy 主机的过滤,该配置应应用于这些主机。在将<service>_haproxy_services从 haproxy_all group_vars 移动之前,可以提供完全独立的后端集,这些后端将在 HAProxy 服务器上配置。在将后端定义移动到特定的服务 group_vars 后,由于没有办法告诉配置应用到哪个 HAProxy 服务器,因此这种能力丢失了。
Ironic 的内核和 ramdisk 镜像的格式现在是 raw,以符合上游期望。
已解决 Neutron 的 uWSGI 模式问题,并且可以使用 uWSGI 作为该服务。
Octavia
amphora提供程序已返回到受支持的提供程序列表中,以满足 Magnumoctavia_provider默认标签。
Skyline 不再默认作为
os-infra_hosts的一部分安装,这可能会导致 OpenStack 升级过程中不希望的仪表板更改。
Python wheels 构建不再因仓库主机问题而失败,只要至少有一个可访问的仓库主机具有匹配的 Distro/Version/Architecture,就应该成功。
其他说明¶
为了与 oslo.messaging 恢复默认 的
heartbeat_in_pthread值,我们删除了基于主机组处理该值的自定义逻辑。您仍然可以使用oslomsg_heartbeat_in_pthread或特定的角色变量来更改行为。
默认情况下,
octavia_management_net_dhcp的值为 False。这意味着如果 os_octavia 角色负责管理它,Octavia 管理网络将不会启用 DHCP。
提供
rabbitmq_upgrade=true不再重新初始化集群,而是将执行 RabbitMQ 集群的常规滚动升级。
Skyline 已从被分配给
os-infra_hosts中移除。如果您想将 Skyline 作为您的仪表板安装,则需要显式定义skyline_dashboard_hosts。