2023.2 系列发布说明¶
28.4.2¶
序言¶
作为我们常规维护周期的一部分,此版本将角色和服务的版本更新到最新版本。请注意,源自 OpenStack 内部其他项目的错误修复未包含在这些发布说明中。
28.4.0¶
已知问题¶
由于 Ansible collections 中 OpenStack 的 bug,在某些情况下,“Default”域名可以重命名为“default”。一个已知的示例是在
keystone_sp -> trusted_idp_list -> federated_identities结构下定义domain: default的情况下。
升级说明¶
由于当前 OpenStack 版本存在兼容性问题,Neutron API 的默认值已切换回旧的 eventlet,而不是 uWSGI。您可以在 Neutron bug report 中找到更多信息。您可以通过设置
neutron_use_uwsgi: True来保留当前行为
请确保在联邦使用的情况下,定义域名称而不是其 ID(例如,在
keystone_sp -> trusted_idp_list -> federated_identities结构下定义Default而不是default)。
错误修复¶
在切换 Neutron 从 uWSGI 到旧的 eventlet 时,该角色将禁用并停止 neutron-rpc-server 服务。
28.3.1¶
错误修复¶
Python wheels 构建不再因仓库主机问题而失败,只要至少有一个可访问的仓库主机具有匹配的 Distro/Version/Architecture,就应该成功。
其他说明¶
为了与 oslo.messaging 恢复默认 的
heartbeat_in_pthread值,我们删除了基于主机组处理该值的自定义逻辑。您仍然可以使用oslomsg_heartbeat_in_pthread或特定的角色变量来更改行为。
28.3.0¶
新特性¶
添加了变量
cinder_manage_volume_types,允许跳过卷类型创建和管理,由 os_cinder 角色执行。
升级说明¶
添加了对默认启用所有稳定的 RabbitMQ 功能标志的支持。 这将在升级后自动发生,并避免在安装新版本的 RabbitMQ 时可能发生的兼容性问题。
为了防止升级过程中出现故障,将在升级前自动启用稳定的 RabbitMQ 功能标志。
弃用说明¶
变量
keystone_external_ssl已被弃用且不再使用。您仍然可以通过keystone_backend_ssl或haproxy_ssl/haproxy_ssl_all_vips来控制 HAProxy 和 Keystone 之间的通信是否应使用 TLS 保护,以及客户端和 HAProxy 之间的通信是否应使用 TLS 保护。
安全问题¶
包含针对 OSSA-2024-001 的安全版本服务。
28.2.1¶
升级说明¶
在使用高可用性集群(非 quorum 队列)中的 RabbitMQ 时,先前未包含在 HA 策略中的临时 ‘reply_’ 队列现在包含在 HA 策略中。 请注意,这会增加 RabbitMQ 集群的负载,尤其是在具有大量计算节点的部署中。
错误修复¶
修复了用户集合需求引导过程,当部署者集合使用“git+file”作为源方案时。 之前,在使用“git+file”方案时,可能会安装到意外版本的集合。
由于缺少参数,Nova cell0 配置为即使启用了
nova_galera_use_ssl,也不使用 MySQL 的 TLS 进行通信。 现在已修复,cell0 应该在下一次 playbook 运行时更新。
28.2.0¶
安全问题¶
Ansible-core 已升级到版本 2.15.9,以涵盖 CVE-2023-5764 和 CVE-2024-0690
错误修复¶
变量
horizon_webroot的更改现在得到尊重,并将反映在 Apache 配置中,以相应地提供静态文件并定义 wsgi 路径。
28.0.1¶
已知问题¶
由于 config_template 模块的最新更改,不再可以将变量作为字典键在 overrides 中使用。 下面的示例将无法正确渲染
config_overrides: "{{ inventory_hostname }}": cruel: world
此限制归结于 Ansible 设计,也适用于任何其他模块。 为了克服它,您可以将字典转换为 Jinja2 格式
config_overrides: |- {{ { inventory_hostname: { 'cruel': 'world' } } }}
弃用说明¶
变量
client在ceph_extra_components变量中的格式已被弃用,转而使用映射,其中包含一个必需的属性name。 将client键定义为简单列表是为了保持向后兼容性,但将在未来的版本中删除。
控制 systemd-networkd 默认文件名模板的变量(当未提供一个时)已被弃用,并且现在没有效果。
systemd_networkd_filename
systemd_networkd_filename_alt
强烈建议在定义
systemd_netdevs或systemd_networks结构时,显式提供filename参数。
为 Ironic 用户生成 SSH 密钥对已被弃用并删除。 变量
ironic_recreate_keys已被删除,并且没有效果。
错误修复¶
修复了
ceph_extra_components变量中client键的向后兼容性,以支持列表和映射列表。
修复了
ceph_conf_overrides_rgw变量的格式,通过将覆盖字典转换为 Jinja2 格式来解决 Ansible 在字典中使用变量作为键的限制。
在显式将
localhost添加到 inventory 后,由于在 /etc/hosts 文件管理的块内添加了 localhost 的记录,导致潜在的 FQDN 更改。 现在已修复,Ansible 管理的块内的 /etc/hosts 文件中的127.0.0.1记录将被删除。
可以向 systemd 网络提供多个路由,它们将被放置到单独的配置文件 /etc/systemd/network/{{ filename }}.d/routes.conf 中
先前定义多个路由会导致它们在同一部分名称下被压缩,而为了使它们正常工作,每个描述的路由必须放置在自己的部分中。
28.0.0¶
新功能¶
使用非 Ansible inventory 中的后端节点的 HAProxy 服务现在可以在列表中指定
backend_port,以及name或ip_addr设置。 这允许服务绑定到不同后端服务器上的不同端口。
添加了变量
galera_backups_full_init_overrides和galera_backups_increment_init_overrides,这些变量可用于覆盖 mariadb 备份的默认 systemd 单元文件集。 类似于更改 I7b3b0f4da047f82a49266ef57fba2fbaa24cebdc。
启用 Ceilometer 资源缓存,使用 Memcached。
添加了变量
rabbitmq_erlang_extra_args,允许定义 erlang 的额外参数。
实现了变量
lxc_image_cache_expiration,用于控制缓存的 LXC 镜像的有效时长。 默认值为 1年。 变量格式应与 community.general.to_time_unit 过滤器兼容。
现在可以使用具有特定前缀的多个变量来定义 tempest 测试 include/exclude 列表的全部内容。 来自 host/group 或 ansible extra-vars 的任何名称以 os_tempest 角色默认值 tempest_test_search_includelist_pattern 或 tempest_test_search_excludelist_pattern 开头的变量将与现有的 tempest_test_includelist 或 tempest_test_excludelist 变量组合成一个单独的 include/exclude 列表。
为每个服务定义添加了新的键
haproxy_frontend_h2和haproxy_backend_h2,以针对指定的服务启用 HTTP/2。这还添加了新的变量来控制前端和后端的默认行为
haproxy_frontend_h2: truehaproxy_backend_h2: false
请注意,只有受 TLS 保护的前端才能使用 HTTP/1.1 和 HTTP/2 的双重堆栈。 如果前端只是 TCP,则会忽略 haproxy_frontend_h2。
同时,无论 TLS/纯 TCP 配置如何,都将尊重
haproxy_backend_h2。
HAProxy 服务现在可以使用
haproxy_ssl_path在服务定义下覆盖证书的路径。
添加了变量
openstack_host_journald_config,允许提供 systemd-journald 的任意配置作为映射。
为使用 mariabackup 创建的备份添加了可选的压缩。 添加了两个新的 CLI 参数到 mariabackup 脚本,用于启用压缩和选择压缩工具。
--compress=True|False--compressor=<compressor>
还引入了控制上述参数的新 Ansible 变量。
galera_mariadb_backups_compressgalera_mariadb_backups_compressor
每个备份存档都存储在一个专用目录中,以及备份元数据。
添加了
nova_console_proxy_types列表变量,用于在部署具有不同计算节点的混合 nova 控制台类型时使用。
添加
rabbitmq_additional_config以能够添加额外的配置,例如添加插件的配置。
添加了设置环境变量
RABBITMQ_USE_LONGNAMES通过rabbitmq-env.conf以能够使用节点的 FQDN。 默认情况下,这将设置为false,这也是 RabbitMQ 设置的默认值。
添加了新的变量
rabbitmq_queue_replication,允许控制是否使用任何冗余功能(如 quorum 队列或经典镜像队列)。 默认设置为True。
添加了对 RabbitMQ quorum 队列的支持。 默认情况下禁用 quorum 队列。 实现了以下变量来控制行为
oslomsg_rabbit_quorum_queues (默认值:false)
oslomsg_rabbit_quorum_delivery_limit (默认值:0)
oslomsg_rabbit_quorum_max_memory_bytes (默认值:0)
为每个服务也实现了类似的变量,而上述变量旨在全局更改行为。
升级说明¶
默认值
glance_available_stores已更改。 现在它始终应表示为映射列表,其中每个项目都具有以下键name(必需)
type(必需)
config(可选)
默认情况下,受 TLS 保护的前端已启用 HTTP/2。 可以通过设置
haproxy_frontend_h2: false来禁用此行为
默认情况下禁用备份压缩,因此现有部署无需进行任何更改。 如果需要压缩,请将
galera_mariadb_backups_compress设置为True。 使用galera_mariadb_backups_compressor选择压缩工具,默认值为gzip。
Keystone OIDC 参数“oidc_redirect_uri”已替换为“oidc_redirect_path”。 除非您运行可能与 Keystone 上的默认设置冲突的其他服务,否则不再需要显式设置此参数。 您的 OIDC 提供程序可能需要更新以反映此重定向 URI 的更改,默认情况下为 Keystone 公共 URL 加上路径 /oidc_redirect。
如果部署者希望在 OpenStack 升级期间切换到使用 RabbitMQ quorum 队列而不是传统的 HA 策略,则需要在 user_variables.yml 中定义变量
oslomsg_rabbit_quorum_queues: True。如果启用了
oslomsg_rabbit_quorum_queues,RabbitMQ vhosts 将在不带前导/的情况下重新创建。 确保在您的监控软件中反映这些更改(如果 vhosts 未自动发现)。 更改 vhost 名称会导致服务的停机时间延长,因为尚未重新配置的后端将无法连接到 RabbitMQ,直到重新启动。 对于对 RabbitMQ 停机时间敏感或某些服务(例如 Trove 或使用 ML2 LXB 或 ML2 OVS 驱动程序的 Neutron)也值得谨慎处理升级。
变量 lxc_cache_map 已删除,因为 lxc_hosts ansible 角色在几个版本中只能创建与主机架构和操作系统匹配的容器,并且 lxc_cache_map 只是携带了 ansible_facts 的副本。
之前弃用的变量 tempest_test_whitelist 和 tempest_test_blacklist 已删除。 应使用替换的 include/exclude 列表来定义要运行的 tempest 测试。
变量 tempest_test_includelist_file_path 和 tempest_test_excludelist_file_path 已重命名为 tempest_includelist_file_path 和 tempest_excludelist_file_path。 应更新使用这些变量的任何覆盖,以考虑新的变量名称。
弃用说明¶
为了遵循 Ansible 变量命名约定,以下变量已重命名
systemd_TimeoutSec -> systemd_service_timeout_sec
systemd_Restart -> systemd_service_restart
systemd_RestartSec -> systemd_service_restart_sec
systemd_CPUAccounting -> systemd_service_cpu_accounting
systemd_BlockIOAccounting -> systemd_service_block_io_accounting
systemd_MemoryAccounting -> systemd_service_memory_accounting
systemd_TasksAccounting -> systemd_service_tasks_accounting
systemd_PrivateTmp -> systemd_service_private_tmp
systemd_PrivateDevices -> systemd_service_private_devices
systemd_PrivateNetwork -> systemd_service_private_network
systemd_PrivateUsers -> systemd_service_private_users
保留了旧变量名称以保持向后兼容性,但将在下一个版本中删除。 强烈建议在您的部署中使用新的变量名称。
SSHD 和 rsync 不再为所有容器安装或配置。 这也弃用了
lxc_container_ssh_key的使用,并且该变量不再有效。
为 Zun 和 Kuryr 用户生成 SSH 密钥对已被弃用并删除。 变量
zun_recreate_keys已被删除,并且没有效果。
nova_pci_passthrough_whitelist 现在已被弃用,转而使用 nova_device_spec。
nova_ram_weight_multiplier已被弃用。 应使用nova_nova_conf_overrides定义乘数。 请注意,nova_ram_weight_multiplier的默认值先前设置为 5,而 nova 的默认值是 1。 此弃用将略微更改 OSA 中的称重行为。
OpenDaylight 驱动程序的支持已被 Neutron 团队在 2023.2(Bobcat)开发周期中弃用,并且已从 OpenStack-Ansible 中删除。
由于上游存储库在 2023-05-28 之后不再可用,RabbitMQ 包不再由 PackageCloud 提供。 安装现在将使用 Rabbitmq 和 erlang 的 CloudSmith 存储库的社区镜像。
https://github.com/rabbitmq/rabbitmq-server/discussions/8386
common-playbooks/nova.yml已被弃用并删除。 所有内容现在都直接位于os-nova-install.yml中。
错误修复¶
修复了 LXC 图像缓存到期机制。 之前 LXC 图像将永远有效。
修复了在 Ubuntu Jammy 上使用 Apache mod_auth_openidc 时的问题,需要一个新的 OIDCXForwardedHeaders 配置选项。
修复了 OpenStack 命令行 OIDC 集成问题,适用于 Apache mod_auth_openidc 版本 >= v2.4.9,包括 Ubuntu Jammy。
默认情况下,并非所有计算节点都会被添加为 OVN 网关,并且会尊重
network-gateway_hosts定义。
修复了 Cinder Volume 和 Backup 服务中的高水位线内存使用问题,并降低了峰值内存使用量。
其他说明¶
由于 bug #2041717,
localhost目标已显式添加到 OSA 库存中。因此,“all”组现在包含 localhost,针对“all”的自定义 playbook 可能需要调整,例如:hosts: all:!localhost
实现了变量
openstack_service_accept_both_protocols,以便临时允许 haproxy 前端同时接受 HTTP 和 HTTPS 流量。在更改服务端点的协议时很有用。
对于使用集成 ceph-ansible 的部署,现在默认启用了 S3 API。