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_hosts role 中应用了一个临时解决方法,以应用到配置文件的热修复。但是,在下次更新 liblxc-common 包时,它将被清除。请查看 bug #2110635 以获取有关该问题的更多详细信息。

错误修复

  • os_neutron role 忽略了 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-workers

    • neutron-ovn-maintenance-worker

    • neutron-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_gigabytesoctavia_num_volumes,以控制 Octavia Amphorae 被生成到的项目的配额定义。

  • 添加了变量 openstack_apache_mpm_backend,它用作服务特定变量的默认值,以定义整个部署中使用的 Apache MPM。如果未被覆盖,将使用默认 MPM event

  • 添加了一个 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_reporabbitmq_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_urlceph_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_reporabbitmq_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_sslhaproxy_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_serviceshaproxy_all group_vars 移动之前,可以提供完全独立的后端集,这些后端将在 HAProxy 服务器上配置。在将后端定义移动到特定的服务 group_vars 后,由于没有办法告诉配置应用到哪个 HAProxy 服务器,因此这种能力丢失了。

  • 已解决 Neutron 的 uWSGI 模式问题,并且可以使用 uWSGI 作为该服务。

  • Octavia amphora 提供程序已返回到受支持的提供程序列表中,以满足 Magnum octavia_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