2025.2 系列发布说明

32.0.0.0rc1-5

序言

已移除对 CentOS 9 Stream 和 EL 9 衍生版本的支持。

已移除对 Ubuntu 22.04 (Jammy Jellyfish) 的支持。

新特性

  • 引入了新的变量 nova_console_type_mapping,它定义了每个架构的默认控制台类型。该变量用于定义 nova_console_type 的默认值,以及生成可用的 nova_console_proxy_types

升级说明

  • 为了配置负载均衡器上的 SPICE 前端/后端,请使用 nova_console_type_mapping 代替 nova_console_type

    例如

    nova_console_type_mapping:
      x86_64: spice
      ppc64le: novnc
      aarch64: serialconsole
    

    变量 nova_console_type 是计算节点特定的,不用于计算负载均衡器的配置。

  • CentOS 9 Stream 和 EL 9 衍生版本,如 Rocky Linux 9,不再受支持,所有主机(部署、控制、计算、网络等)必须升级到受支持的版本才能继续升级。

  • Ubuntu 22.04 (Jammy Jellyfish) 不再受支持,所有主机(部署、控制、计算、网络等)必须升级到受支持的版本才能继续升级。

错误修复

  • 定义和配置所有可用控制台类型的逻辑已进行了翻新和改进,以确保控制台将根据部署中可用的计算架构进行配置。

32.0.0.0rc1

序言

添加了对 Debian 13 (Trixie) 部署的支持

新特性

  • ceph_extra_components 映射添加了 condition 键,可用于定义组件应具有 Ceph 映射的更窄条件。

  • 引入了变量 ceph_cinder_backup_enabled,可以手动覆盖以启用 Ceph 客户端到 cinder-backup 服务的配置。 以前的逻辑是硬编码的,不易覆盖。

  • 为 Aodh 服务添加了协调支持。 如果部署中存在 zookeeper,则将配置服务以使用它进行协调。 操作员可以通过 aodh_coordination_url 变量提供任意协调 URL。

  • Debian 13 (Trixie) 现在同时支持部署节点和目标节点。

  • Erlang 版本已更新到 27.3.x 系列。

  • pki_create_certificates 添加了键 ttl。 该值可以定义为 timespec,没有前导 +。 例如

    默认值由 community.crypto.x509_certificate 模块定义。

  • RabbitMQ 版本已升级到版本 4.1.4

  • 添加了变量 venv_install_tool,其默认值为 pip。 您可以将其定义为 uv,以利用 uv 工具在 venv 内部进行包安装,而不是 pip。 轮子构建和 venv 创建仍然由 pipvenv 分别管理。

升级说明

  • 变量 networking_ovn_bgp_install_branch 已重命名为 networking_ovn_bgp_git_install_branch,以匹配现有的命名约定。

  • 由于 Neutron 中 neutron-server 的 eventlet 模式已被移除,该服务的唯一受支持模式是 uWSGI。 所有使用 eventlet 的部署都将被迁移到 neutron-server 的 uWSGI 模式。 这样,多个额外的强制服务将与 neutron-server 一起启动,例如 neutron-rpc-serverneutron-periodic-workers 和 OVN-based 部署的 neutron-ovn-maintenance-worker

弃用说明

  • 变量 not_afterpki_authorities 中已被标记为弃用。 应使用 ttl 代替,格式为 <duration><unit>(例如 7d)。

  • 变量 neutron_use_uwsgi 已被移除,不再生效,因为 neutron-server 的 eventlet 模式已在 2025.2 (Flamingo) 中移除。 uWSGI 是当前唯一受支持的模式。

  • 变量 octavia_legacy_policy 已被移除,不再生效。 如果您正在使用该变量并且将其设置为 True,您可以将该变量实施的策略更改合并到您的 octavia_policy_overrides 中。 您可以通过 此链接 找到受此变量控制的规则。

  • 移除 SHOW_KEYSTONE_V2_RC 配置选项,该选项自 Stein 版本以来已被弃用。 现在可以安全地移除此选项。

错误修复

  • 通过将 setuptools 版本升级到 75.8.2,修复了通过 pkg_resources 解析 oslo.cache 包的问题。

  • 修复了仓库容器启动时的竞争条件,当 var-www-mount.repo 在 glusterd.service 完全启动之前启动时。

  • 修复了 SHA pinning 和 ovn-bgp-agent 的安装,因为 SHA pinning 和 role 使用了不同的变量名。

  • 修复了先前定义的服务的策略被移除时的服务故障。

  • 已修复基于 EL 的发行版中 Shibboleth 镜像的 URI。

其他说明

  • 默认值 ANSIBLE_LOCAL_TEMP 已设置为 /tmp 文件夹,而不是默认值 ANSIBLE_HOME ~ "/tmp"

  • RabbitMQ 的 Debian/Ubuntu 仓库已从 ppa1.rabbitmq.com 更改为 deb1.rabbitmq.com 和 deb2.rabbitmq.com。

  • 即使未定义任何策略覆盖,默认情况下也会为服务创建空的 policy.yaml 文件。

32.0.0.0b1

序言

添加了对 CentOS 10 Stream 部署的支持

添加了对 RHEL 10 衍生版本(如 Rocky Linux)部署的支持。

新特性

  • 对于 systemd_mount 角色,在 systemd_mounts 映射中添加了布尔键 escape_name,用于防止在挂载名称不是路径时进行名称转义。 默认情况下评估为 true

  • 添加了变量 openstack_host_blacklist_kernel_modules,允许列入禁止所需的内核模块。

  • 一系列更改已回溯到 CentOS 10 Stream 支持,适用于部署和目标主机。

  • 添加了变量 lxc_apt_mirror_gpg_check,用于强制或禁用在通过 debootstrap 准备 LXC 镜像期间的 gpg 检查。 默认情况下启用。

  • 添加了变量 lxc_apt_mirror_gpg_file,它提供远程主机上 GPG 文件位置的路径,用于在 debootstrap 过程中验证来自 lxc_apt_mirror 的软件包。

  • 一系列更改已回溯到 Rocky 10 支持,适用于部署和目标主机。

  • 添加了控制 MariaDB 默认字符集和排序规则的新变量

    • galera_default_charset

    • galera_default_collation

    • galera_default_collation_set

    变量 galera_default_collation_set 仅在 MariaDB 版本 >= 11.5 时在 my.cnf 中定义。

  • 在 OpenStack-Ansible 中启用 Barbican Secrets 对 Glance 的支持。 当启用 Barbican 支持时,Glance 没有配置为使用 Barbican 进行密钥管理。 此补丁确保 Glance 被有效地配置为与 Barbican 交互,并允许在 OpenStack 环境中正确处理密钥(例如图像加密密钥)。

  • 为变量 openstack_host_specific_kernel_modules 添加了键 params,允许以简单的字符串形式提供模块参数。

  • 添加了变量 lxc_centos_repo_keyslxc_centos_repos,允许提供将添加到 lxc_host 的仓库列表。 默认情况下,该角色会继续安装带有其 GPG 密钥的 EPEL 仓库。

  • 对于 systemd_mount 角色,在 systemd_mounts 映射中添加了 mount_overrides_only。 此键旨在仅对角色未直接管理的现有挂载应用 systemd 覆盖。

  • 如果定义了目录而不是证书文件,haproxy 将尝试将所有文件视为捆绑的 pem 证书。 并将导致其配置测试失败。 为了避免这种情况,引入了一个新的变量 haproxy_ssl_temp_path。 当它被定义时,pki 中的证书将被放入该目录,然后以正确的目录中组合成 pem。

    这种方法允许我们将其他证书放入目录之外的 haproxy_server 角色,并保持目录的清洁。 这也消除了列出所有其他自定义证书并将它们与此角色计算出的证书相加的需要。

    此外,添加了在 haproxy_ssl_temp_path 设置为与 haproxy_ssl_cert_path 不同的情况下的证书清理/移动,从而允许从旧设置过渡。

  • 为 Trove Guest Agent 添加了 SSH 密钥对生成支持。 当 trove_guest_ssh_enabled 设置为 True 时,该角色将生成一个 SSH 密钥对并将其上传到 Nova。 它还会创建一个允许在 DBaaS 网络上进行 SSH 访问的安全组,并将其附加到 management_security_groups

  • 对于 openstack_hosts 角色,实现了变量 openstack_host_custom_grub_options,允许使用任意参数修改 GRUB_CMDLINE_LINUX_DEFAULT 或从中删除现有参数。

升级说明

  • EL 不需要携带 thm COPR 仓库来安装 LXC,因为 LXC 现在由 EPEL 提供。 我们在升级期间移除仓库并清理 dnf 元数据。

  • 变量 haproxy_ssl_letsencrypt_certbot_bind_address 的默认值已从 ansible_host 更改为 management_address,后者将设置为管理网络的 IP。 为了避免在未定义 management_address 时发生故障,存在回退到 ansible_host 的功能。

  • 变量 pki_certificatessan 参数的格式已从字符串更改为列表的字典。 新字典可以包含以下键:dns、ip、uri、other。 这些键应包含所有应作为证书一部分的 SAN 的列表。

  • 变量 galera_wsrep_address 的默认值已从 ansible_host 更改为 management_address,后者将设置为管理网络的 IP。 为了避免在未定义 management_address 时发生故障,存在回退到 ansible_host 的功能。

  • OpenStack-Ansible 加载的内核模块将在 /etc/modules-load.d/ 下的自己的文件中定义用于加载。 以前由 OpenStack-Ansible 管理的路径,例如 EL 系统的 /etc/modules-load.d/openstack-ansible.conf 或 DEB 系统的 /etc/modules,将在升级期间从管理的模块中清除。

  • rabbitmq_node_address 的默认值已从 ansible_host 更改为 management_address,ansible_host 的值可能因部署场景而异,而 management_address 将设置为管理网络的 IP 地址。为了避免在未定义 management_address 时出现故障,保留了回退到 ansible_host 的功能。

  • 由于这些项目已退役,因此移除了 Sahara 插件和 Senlin 插件的支持。

  • 在使用独立的 RabbitMQ 集群进行 Trove 部署时,请确保使用 trove_guest_rpc_host_group 作为指向主机组的指针,而不是指向特定主机的指针。您可以使用变量 trove_guest_oslomsg_rpc_setup_host 来定义应负责 RabbitMQ vhost 和用户配置的特定主机。

弃用说明

  • Octavia 服务的配额管理已被弃用,转而采用通过 openstack.osa.openstack_resources playbook 进行的集中化方法。由于默认项目名称为 service,因此在 Octavia 角色中定义配额会导致与其他服务(如 Trove)发生冲突。

    相应的变量已被弃用且不再生效

    • octavia_num_instances

    • octavia_ram

    • octavia_gigabytes

    • octavia_num_server_groups

    • octavia_num_server_group_members

    • octavia_num_cores

    • octavia_num_secgroups

    • octavia_num_ports

    • octavia_num_security_group_rules

    • octavia_num_volumes

    请参阅 Octavia 文档 以获取有关如何管理服务配额的更多信息。

  • 变量 zun_docker_kv_storage、zun_docker_kv_port 和 zun_docker_kv_group 已被删除且不再生效。

  • Zun 的 Docker Swarm 模式不再受支持,仅支持 Docker 的本地部署。

  • pki_method 已被 pki_backend 取代

错误修复

  • 已将 Masakari 用户添加到 libvirt 组,以确保正确访问 libvirt 资源的权限。这解决了可能阻止 Masakari 有效监控和管理虚拟机实例的权限问题。此修复可确保 Masakari 服务能够在主机故障期间成功与 libvirt 守护程序交互,以进行实例撤离和恢复操作。

  • 通过实施升级检查并在升级时禁用遗留策略,修复了旧部署中 RabbitMQ 升级问题,这些部署先前使用了 RabbitMQ Classic Queue 镜像(HA 队列)。

  • Skyline 现在适用于具有内部 TLS 覆盖的场景。

  • 修复了由于未在安装期间使用 OpenStack 上限约束而导致 httpx 1.0 版本发布后 Skyline 安装问题。

  • 变量 trove_guest_rpc_host_group 现在按预期使用,代表一个主机组。它不再直接用作配置独立的 RabbitMQ 集群以供 Trove 使用时的“委托主机”。

其他说明

  • AIO 设置的网络配置行为已更改。脚本不再在 boostrap-aio.sh 脚本期间直接应用所有配置,而是会生成另一个变量文件 user_variables_systemd.yml,其中包含预期的配置。变量将被 openstack_hosts 角色消耗和应用,该角色将在 setup-hosts(setup-everything)playbook 期间启动。

  • Etcd 角色已从 ansible-role-requirements.yml 中删除,因为它不再被任何组件需要。如果您依赖该角色或在部署中使用 etcd,可以将以下内容添加到 /etc/openstack_deploy/user-role-requirements.yml

    - name: etcd
      scm: git
      src: https://github.com/noonedeadpunk/ansible-etcd
      version: master
    
  • 为了统一 playbook 的位置和使用方式,升级 playbook 已从集成仓库的 upgrade_utilities 移动到 openstack.osa 集合

    • upgrade-utilities/deploy-config-changes.yml -> openstack.osa.upgrade.deploy_config_changes

    • upgrade-utilities/galera-cluster-rolling-restart.yml -> openstack.osa.tools.galera_cluster_rolling_restart

    • upgrade-utilities/nova-restore-compute-id.yml -> openstack.osa.tools.nova_restore_compute_id

31.0.0.0rc1

新功能

  • 添加了使用 haproxy_errorfiles 定义自定义错误文件的支持。这些文件可以与 haproxy_static_files_extra 一起分发。

已知问题

  • 发现 Ubuntu 24.04 (Noble Numbat) 中的 LXC 5.0.3 包含打包问题,导致 apparmor 剖析冲突。已在 lxc_hosts role 中应用了一个临时解决方法,以应用到配置文件的热修复。但是,在下次更新 liblxc-common 包时,它将被清除。请查看 bug #2110635 以获取有关该问题的更多详细信息。

升级说明

  • Zun-compute 的 Docker 模式已切换到“local”模式。这意味着,支持 etcd 集群不再是 Zun 运行的必需条件。如果您想保留旧行为,需要将 Docker 和 Containerd 版本回退,并向 user_variables.yml 添加 zun_docker_kv_storage: etcd

  • 对于具有 Zun 的部署,底层软件版本已升级为:* Docker 20.10.24 -> 27.5.1 * Containerd 1.6.20 -> 1.7.27 * Kata 3.1.0 -> 3.16.0

弃用说明

  • 变量 zun_docker_kv_storage 和 zun_docker_kv_group 已被弃用,将在下一个版本中删除。

  • Horizon 角色不再确保 Keystone 中 horizon_default_role_name(默认值为 member)角色的存在。预计由 horizon_default_role_name 定义的角色已经存在于 Keystone 中,并在 os_keystone 执行期间通过 keystone-bootstrap 命令进行引导。您可以使用 opestack.osa.openstack_resources playbook 创建额外的角色,如果您需要/想要对 horizon_default_role_name 变量使用非默认值

错误修复

  • os_neutron role 忽略了 aa-disable 命令的实际退出代码,当它异常退出时。这可能会导致 neutron 代理稍后出现不明显的故障。已修复此问题,如果 aa-disable 无法禁用所需的 apparmor 配置文件,该 role 将会失败,而不是抑制该问题。

  • 由于 mirror.mariadb.org 中 MariaDB 的存储版本策略发生变化,当前 pinned 的 MariaDB 版本已从仓库中删除。通过切换到 archive.mariadb.org,应该可以解决 MariaDB 的安装失败问题。

其他说明

  • MariaDB 的镜像已切换到 archive.mariadb.org