2024.1 系列发布说明¶
29.2.4-5¶
升级说明¶
变量
networking_ovn_bgp_install_branch已重命名为networking_ovn_bgp_git_install_branch,以匹配现有的命名约定。
错误修复¶
修复了仓库容器启动时的竞争条件,当 var-www-mount.repo 在 glusterd.service 完全启动之前启动时。
修复了 SHA pinning 和
ovn-bgp-agent的安装,因为 SHA pinning 和 role 使用了不同的变量名。
29.2.2¶
序言¶
作为我们常规维护周期的一部分,此版本将角色和服务的版本更新到最新版本。请注意,来自 OpenStack 内部其他项目的错误修复未在此版本说明中列出。
29.2.0¶
新特性¶
RabbitMQ 已更新到新的次要版本 3.13.7
升级说明¶
由于过渡到 4.0 需要 RabbitMQ 最低版本 3.13(发生在 2024.2 (Dalmatian) 中),因此在继续进行主要的 OpenStack 升级之前,必须升级到此版本。 在此版本之前,默认使用 RabbitMQ 3.12。
29.1.0¶
新特性¶
添加了 ceilometer 消耗 magnum 通知的功能。当 magnum_ceilometer_enabled 为 True 时,将自动消耗通知。
添加了变量
openstack_apache_mpm_backend,它用作服务特定变量的默认值,以定义部署中使用的 Apache MPM。如果未覆盖,则默认 MPMevent将被使用。
添加了变量以更好地控制 Octavia 的 SSH 密钥对生成
octavia_ssh_key_manage(True):启用 Octavia 角色以生成和管理用于 Amphoras 的 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):私钥长度。
已知问题¶
由于 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)。
为了统一整个部署中使用的 Apache MPM,Horizon 默认 MPM 从
worker切换到event。引入了变量horizon_apache_mpm_backend以定义正在使用的 MPM。
错误修复¶
服务之间使用的 Apache MPM 已对齐,不会在 metal 部署中发生冲突。默认使用 Apache MPM event。
在切换 Neutron 从 uWSGI 到旧的 eventlet 时,该角色将禁用并停止 neutron-rpc-server 服务。
Octavia
amphora提供程序已返回到受支持的提供程序列表中,以满足 Magnumoctavia_provider默认标签。
Skyline 不再默认安装作为
os-infra_hosts的一部分,这可能会导致 OpenStack 升级过程中出现不必要的仪表板更改。
其他说明¶
Skyline 已从分配给
os-infra_hosts中移除。如果您想将 Skyline 作为您的仪表板安装,则需要显式定义skyline_dashboard_hosts。
29.0.2¶
安全问题¶
包含关于 OSSA-2024-002 的安全(非漏洞)服务版本
错误修复¶
Python wheels 构建不再因仓库主机问题而失败,只要至少有一个可访问的仓库主机具有匹配的 Distro/Version/Architecture,就应该成功。
其他说明¶
为了与 oslo.messaging 恢复默认 的
heartbeat_in_pthread值,我们删除了基于主机组处理该值的自定义逻辑。您仍然可以使用oslomsg_heartbeat_in_pthread或特定的角色变量来更改行为。
29.0.1¶
弃用说明¶
变量
keystone_external_ssl已被弃用且不再使用。您仍然可以通过keystone_backend_ssl或haproxy_ssl/haproxy_ssl_all_vips来控制 HAProxy 和 Keystone 之间的通信是否应使用 TLS 保护,以及客户端和 HAProxy 之间的通信是否应使用 TLS 保护。
安全问题¶
包含针对 OSSA-2024-001 的安全版本服务。
29.0.0¶
序言¶
Ansible 编目中容器的命名约定已更改,以符合 RFC1034 中定义的规范。从现在开始,所有新添加的容器都不会在其 inventory_hostname 或 container_name 中带有下划线 (_) 符号。此更改不会触碰或更改编目中已存在的容器。为了将新的命名约定应用于现有环境,您需要删除主机和编目中的容器。之后,将生成新的容器名称,并且可以再次创建容器。
RabbitMQ Quorum 队列默认启用,以及对 oslo.messaging 的其他重大改进,例如队列管理器、使用 Quorum 的瞬态队列以及为扇出使用流队列。有关这些选项的更多详细信息,请查看 oslo.messaging 版本说明
添加了对 Skyline 仪表板部署的支持。
新特性¶
添加了变量
cinder_manage_volume_types,允许跳过卷类型创建和管理,由 os_cinder 角色执行。
RabbitMQ 策略现在支持 apply_to 参数,例如,仅针对 classic_queues、exchanges 等目标策略。
添加了新的变量
blazar_nova_aggregate_name,允许控制 Blazar 的 Nova 聚合名称。如果不是 False(默认值‘freepool’),则在部署期间将创建主题中的聚合。
实现了变量
blazar_manager_plugins,允许配置 Blazar 的启用插件列表。
Blazar 现在使用 memcached 进行令牌缓存。可以使用变量
blazar_memcached_servers控制 memcached 服务器列表。
添加了额外的变量以更好地控制 Blazar 与 Nova 的集成
nova_blazar_enabled(bool) - 控制是否应配置 Blazar 集成nova_blazar_scheduler_filters(list) - 将在 Nova 调度器中启用的额外过滤器nova_blazar_pip_packages(list) - 将安装在 Nova 调度器主机上的额外 Python 包
默认在 openstack-ansible all-in-one 中部署的 Ceph 版本已从 Quicny 切换到 Reef。仍然,这种集成主要是一个测试工具,并且对于生产部署的建议是部署独立的 ceph 集群。
添加了变量
nova_cell_force_update,可以在运行时设置为 True 以强制更新 cell 记录。这在 cell0 或任何其他连接配置的密码轮换时可能很有用。
添加了变量
galera_install_method以控制是否应配置外部存储库,或者角色是否应尝试从发行版的默认存储库安装。
添加了属性保护配置,通过新的变量进行管理:
glance_property_protection_file_overrides(应配置才能运行,请参阅默认变量中的示例)、glance_property_protection_rule_format、glance_property_protection_file。
haproxy_pki_create_certificates已实现。它允许用户显式禁用使用 PKI 角色生成证书,但继续使用它进行证书分发。
添加了新的变量,以允许指定在 setup-hosts、setup-infrastructure 和 setup-openstack 中运行预先和事后现有代码的用户定义的 playbook。OpenStack-Ansible 部署可以通过这些挂钩进行扩展,并添加额外的用户定义功能,这些功能将完全访问 OSA 编目和主机变量。
Horizon 现在可以与 Skyline 仪表板一起安装。如果同时部署了 Horizon 和 Skyline,Horizon 将由 /horizon URI 提供。
添加了变量
ironic_user_driver_types,允许扩展默认ironic_driver_types以及覆盖现有的默认记录。
为 Neutron 角色添加了额外的变量以进行可用区配置
neutron_default_availability_zones- 定义一个可用区列表,l3/dhcp 代理或 OVN 路由器/端口将在没有在 Neutron API 请求中提供提示的情况下被调度到该列表。neutron_availability_zone- 当前组件的可用区。建议利用组/主机变量来设置此变量。对于 OVN,此变量可以包含用冒号分隔的多个值。
添加了一个新参数 octavia_ovn_enabled,以支持 Octavia OVN 提供程序驱动程序。Octavia OVN 提供程序驱动程序是 amphora 的替代方案,并使用 OVN/OVS 内置的支持进行负载均衡。需要 ml2.ovn Neutron 插件才能使用此功能。可以通过指定 –provider ovn 参数来在 openstack loadbalancer create 命令期间使用 OVN 提供程序。
添加了新的变量
octavia_enabled_provider_agents,允许启用 Octavia 的提供程序代理。
添加了
openstack-resources.ymlplaybook,旨在处理 OpenStack 资源的创建和进一步调整。它严重依赖于 OpenStack 的 Ansible 集合。该 playbook 的主要目标是提供一种统一的方法来创建和管理常见资源,例如镜像、flavor、计算聚合、网络等。Playbook 可以消耗以下变量,这些变量提供给openstack.osa.openstack_resources角色中类似的变量openstack_user_identity
openstack_user_compute
openstack_user_network
openstack_user_image
openstack_user_coe
请参阅角色文档和示例以获取更多详细信息。
为 os_neutron 角色添加了新的变量以调整与 OVS 管理器的连接
neutron_ovsdb_manager_host:默认为 127.0.0.1neutron_ovsdb_manager_port:默认为 6640neutron_ovsdb_manager_proto:默认为 tcpneutron_ovsdb_manager_connection:将 proto、host 和 port 组合成有效的 neutron 插件连接字符串。
实现了新的变量以控制新的 oslo.messaging 行为
oslomsg_rabbit_stream_fanout:如果
oslomsg_rabbit_quorum_queues也设置为 True 则启用oslomsg_rabbit_transient_quorum_queues:如果
oslomsg_rabbit_stream_fanout为 True 则启用oslomsg_rabbit_qos_prefetch_count:如果
oslomsg_rabbit_stream_fanout为 True 则必须设置为正值oslomsg_rabbit_queue_manager:默认禁用。某些服务配置中缺少 [oslo_concurrency]/lock_path 定义,这是 QManager SHM 锁定的必需条件。
每个服务还具有相应的变量,前缀为服务名称,例如
<service>_oslomsg_rabbit_stream_fanout以单独控制它们。
添加了使用 key-value 对配置 rabbitmq-server 记录选项的变量
rabbitmq_log。默认值 journald (true) 和 file (false) 已保留,但现在可以配置更多选项(请参阅 https://rabbitmq.cn/logging.html)。
部署者现在可以通过 user-role/collection-requirements.yml 文件从引导过程中删除不需要的角色/集合。请查看文档以获取更多详细信息:https://docs.openstack.org/openstack-ansible/2025.2/reference/configuration/extending-osa.html
OpenStack-Ansible 现在可以用于部署 Skyline,一种替代仪表板。已向 env.d 和 conf.d 添加了新的示例文件以支持 Skyline 基础设施,并添加了一个名为 os-skyline-install.yml 的 playbook 来部署 API 和控制台服务。
引入了一个新的覆盖 skyline_client_max_body_size,以支持通过 Skyline 仪表板上传大型镜像。默认值 1100M 支持上游 Ubuntu 和 Rocky Linux 镜像,但可以增加以支持更大的镜像,或减少以鼓励使用 CLI。
Trove 角色引入了变量以独立配置 Guest Agent 的 RPC/通知通信:- trove_guest_oslomsg_rabbit_quorum_queues - trove_guest_oslomsg_rpc_port - trove_guest_oslomsg_rpc_userid - trove_guest_oslomsg_rpc_password - trove_guest_oslomsg_rpc_vhost
实现了在 Ansible 虚拟环境中安装额外的 Python 包。默认情况下,额外的需求应在
/etc/openstack_deploy/user-ansible-venv-requirements.txt文件中定义。可以通过USER_ANSIBLE_REQUIREMENTS_FILE环境变量覆盖文件路径。
已知问题¶
由于 config_template 模块的最新更改,不再可以将变量作为字典键在 overrides 中使用。 下面的示例将无法正确渲染
config_overrides: "{{ inventory_hostname }}": cruel: world
此限制归结于 Ansible 设计,也适用于任何其他模块。 为了克服它,您可以将字典转换为 Jinja2 格式
config_overrides: |- {{ { inventory_hostname: { 'cruel': 'world' } } }}
升级说明¶
当配置 MariaDB 以使用 TLS 时,可用额外的变量,通过将
galera_use_ssl设置为true来启用。galera_require_secure_transport以要求所有客户端连接都经过加密,默认为 false。galera_tls_version以提供接受的 TLS 协议列表,默认为 ‘TLSv1.2,TLSv1.3’。
Blazar 的浮动 IP 插件 (virtual.floatingip.plugin) 现在默认启用。使用
blazar_manager_plugins变量更改启用插件的列表(如果需要)。
确保在 openstack_user_config.yml / conf.d 中,
cloudkitty_hosts被替换为rating_hosts。对于使用 LXC 容器的部署:升级完成后,请确保 Cloudkitty 不再在您的 LXC 主机上运行,之后您应该能够从编目中的 cloudkitty_all 组中删除 LXC 主机。
添加了对默认启用所有稳定的 RabbitMQ 功能标志的支持。 这将在升级后自动发生,并避免在安装新版本的 RabbitMQ 时可能发生的兼容性问题。
对于配置了
nova_backend_ssl: True的部署,Nova API 后端的 TLS 证书将在升级期间重新生成。从现在开始,它们将以 _api 为后缀。
magnum_glance_images的格式已更改为与openstack_resources角色兼容的格式。请参阅 os_magnum 角色文档以获取相关示例。
标记为非活动的的服务(Murano、Senlin、Sahara)将不会被升级,因为它们未针对 2024.1 (Caracal) 发布。为了继续管理这些旧版本上的服务,您需要执行以下操作
创建文件 /etc/openstack_deploy/user-role-requirements.yml,内容如下
- name: os_<service> scm: git src: https://opendev.org/openstack/openstack-ansible-os_<service> version: master trackbranch: master
管理服务的 playbook 可以在角色示例中找到,例如:
/etc/ansible/roles/os_<service>/examples/playbook.yml服务将保留在您之前生成的编目中,直到您显式删除它们。
默认启用 RabbitMQ Quorum Queues 后,所有 vhost 都将被重新创建并重命名,且不带前导斜杠 (‘/’)。例如,/nova vhost 将被重命名为 nova。这可能会影响已配置的监控告警规则或统计数据收集。
重命名过程还会导致服务在升级期间停机时间延长,从 vhost 重命名开始,直到服务角色执行完成。这对于 Nova 和 Neutron 等服务尤其重要,因为角色运行时可能需要一段时间才能覆盖所有主机。
您可以通过在 user_variables.yml 中定义
oslomsg_rabbit_quorum_queues: False来禁用 Quorum Queues 的使用,并使用之前的 HA Queues 默认设置。请查看 RabbitMQ 维护 文档,了解更多关于如何在两种模式之间切换,以减少停机时间的信息。
为了防止升级过程中出现故障,将在升级前自动启用稳定的 RabbitMQ 功能标志。
在使用高可用性集群(非 quorum 队列)中的 RabbitMQ 时,先前未包含在 HA 策略中的临时 ‘reply_’ 队列现在包含在 HA 策略中。 请注意,这会增加 RabbitMQ 集群的负载,尤其是在具有大量计算节点的部署中。
强烈建议在升级期间显式禁用
trove_guest_oslomsg_rabbit_quorum_queues,如果oslomsg_rabbit_quorum_queues: True,这是自 2024.1 (Caracal) 以来默认行为。迁移到 Trove Guestagent 的 Quorum 队列不受支持,并且可能存在问题,因为已经启动的 agent 将不会重新加载配置。但是,新的部署可以从一开始安全地使用 quorum 队列。
变量
gnocchi_policy_default_file_path的默认值已更改为在/etc/openstack_deploy/gnocchi/文件夹下搜索policy.yaml文件。请确保您使用 YAML 格式而不是 JSON 格式的文件。
弃用说明¶
变量
client在ceph_extra_components变量中的格式已被弃用,转而使用映射,其中包含一个必需的属性name。 将client键定义为简单列表是为了保持向后兼容性,但将在未来的版本中删除。
变量
heat_deferred_auth_method已被弃用,且没有效果。默认行为是使用 trust 作为延迟方法,并且这是目前唯一可用的选项。使用密码在 keystonev3 中已损坏,不应使用。
由于服务已转移到 Inactive state,以下角色将不再包含在 2024.1 版本中:- Murano - Senlin - Sahara
用于管理这些服务的 Playbook 也已从树中删除,只能在特定角色 examples 文件夹下找到。
控制 systemd-networkd 默认文件名模板的变量(当未提供一个时)已被弃用,并且现在没有效果。
systemd_networkd_filename
systemd_networkd_filename_alt
强烈建议在定义
systemd_netdevs或systemd_networks结构时,显式提供filename参数。
为 Ironic 用户生成 SSH 密钥对已被弃用并删除。变量
ironic_recreate_keys已被删除,且没有效果。
变量
neutron_ovs_socket_path已被弃用,将被静默忽略。请使用neutron_ovsdb_manager_connection来覆盖与 OVS 的连接。
错误修复¶
Blazar 端点现在已版本化,默认情况下后缀为
/v1
Blazar 服务身份验证已修复
修复了用户集合需求引导过程,当部署者集合使用“git+file”作为源方案时。 之前,在使用“git+file”方案时,可能会安装到意外版本的集合。
修复了
ceph_extra_components变量中client键的向后兼容性,以支持列表和映射列表。
由于 Cloudkitty 的 env.d 定义中的问题,该服务不仅安装在 LXC 容器内,还安装到所有 LXC 主机上,这不是预期的行为。已在服务的 env.d 定义中修复了此问题,并将其从
cloudkitty_hosts重命名为rating_hosts,这应反映在您的openstack_user_config.yml或 conf.d 文件中。
修复了
ceph_conf_overrides_rgw变量的格式,通过将覆盖字典转换为 Jinja2 格式来解决 Ansible 在字典中使用变量作为键的限制。
在显式将
localhost添加到 inventory 后,由于在 /etc/hosts 文件管理的块内添加了 localhost 的记录,导致潜在的 FQDN 更改。 现在已修复,Ansible 管理的块内的 /etc/hosts 文件中的127.0.0.1记录将被删除。
PKI 角色在
metal场景下已修复,当 nova-compute 放置在与 nova-api 相同的宿主机上时。 之前,由于名称不唯一,证书每次运行都会被重新生成。
变量
horizon_webroot的更改现在得到尊重,并将反映在 Apache 配置中,以相应地提供静态文件并定义 wsgi 路径。
已发布 env.d 文件 physical_skel 部分中组名命名限制,关于使用下划线符号的问题。
可以向 systemd 网络提供多个路由,它们将被放置到单独的配置文件 /etc/systemd/network/{{ filename }}.d/routes.conf 中
先前定义多个路由会导致它们在同一部分名称下被压缩,而为了使它们正常工作,每个描述的路由必须放置在自己的部分中。
由于缺少参数,Nova cell0 配置为即使启用了
nova_galera_use_ssl,也不使用 TLS 进行 MySQL 通信。现在已修复,cell0 在下一次 playbook 运行时应更新。
其他说明¶
当使用 Ceph 作为存储时,Glance 正在使用 uWSGI。
从 os-<service>-install.yml playbook 中删除了与服务名称匹配的标签。例如 ‘nova’、‘neutron’、‘cinder’ 等。这些标签仅在与 setup-openstack.yml 结合使用时才有用,但被发现具有意外行为,可能会导致跳过重要的任务。
当 Skyline 使用内置 HAProxy 服务器部署时,默认情况下将在禁用 ssl 时监听 80 端口,在启用 ssl 时监听 443 端口。 Skyline 后端在其术语中将监听 9999 端口。
当尝试使用 Horizon 部署 Skyline 时,Skyline 将优先,在 80/443 端口提供服务。与此同时,Horizon 将在“子目录”
/horizon中可用。