Zed 系列发布说明¶
26.5.2¶
错误修复¶
变量
horizon_webroot的更改现在得到尊重,并将反映在 Apache 配置中,以相应地提供静态文件并定义 wsgi 路径。
26.5.0¶
新特性¶
添加
rabbitmq_additional_config以能够添加额外的配置,例如添加插件的配置。
错误修复¶
在显式将
localhost添加到 inventory 后,由于在 /etc/hosts 文件管理的块内添加了 localhost 的记录,导致潜在的 FQDN 更改。 现在已修复,Ansible 管理的块内的 /etc/hosts 文件中的127.0.0.1记录将被删除。
26.4.0¶
升级说明¶
Keystone OIDC 参数“oidc_redirect_uri”已替换为“oidc_redirect_path”。 除非您运行可能与 Keystone 上的默认设置冲突的其他服务,否则不再需要显式设置此参数。 您的 OIDC 提供程序可能需要更新以反映此重定向 URI 的更改,默认情况下为 Keystone 公共 URL 加上路径 /oidc_redirect。
错误修复¶
修复了 OpenStack 命令行 OIDC 集成问题,适用于 Apache mod_auth_openidc 版本 >= v2.4.9,包括 Ubuntu Jammy。
其他说明¶
由于 bug #2041717,
localhost目标已显式添加到 OSA 库存中。因此,“all”组现在包含 localhost,针对“all”的自定义 playbook 可能需要调整,例如:hosts: all:!localhost
26.3.0¶
新特性¶
添加了变量
galera_backups_full_init_overrides和galera_backups_increment_init_overrides,这些变量可用于覆盖 mariadb 备份的默认 systemd 单元文件集。 类似于更改 I7b3b0f4da047f82a49266ef57fba2fbaa24cebdc。
弃用说明¶
nova_pci_passthrough_whitelist 现在已被弃用,转而使用 nova_device_spec。
错误修复¶
修复了在 Ubuntu Jammy 上使用 Apache mod_auth_openidc 时的问题,需要一个新的 OIDCXForwardedHeaders 配置选项。
26.2.0¶
新特性¶
实现了变量
lxc_image_cache_expiration,用于控制缓存的 LXC 镜像的有效时长。 默认值为 1年。 变量格式应与 community.general.to_time_unit 过滤器兼容。
为使用 mariabackup 创建的备份添加了可选的压缩。 添加了两个新的 CLI 参数到 mariabackup 脚本,用于启用压缩和选择压缩工具。
--compress=True|False--compressor=<compressor>
还引入了控制上述参数的新 Ansible 变量。
galera_mariadb_backups_compressgalera_mariadb_backups_compressor
每个备份存档都存储在一个专用目录中,以及备份元数据。
升级说明¶
CentOS/Rocky Linux 部署将获得 OVS 版本从 2.17 到 3.1 以及 OVN 从 22.12 到 23.03 的重大更新。RDO 已停止为之前的 OVS/OVN 版本构建软件包,这意味着它们将不会收到任何上游错误修复或安全补丁。
如果您仍然想保留旧版本的 OVS/OVN,可以定义以下变量
openstack_hosts_package_repos: - name: rdo-deps file: rdo-deps description: rdo-deps baseurl: "{{ openstack_hosts_rdo_deps_url }}" gpgcheck: no module_hotfixes: yes exclude: - '*rdo-openvswitch*3.1*' - '*rdo-ovn*3.1*'
默认情况下禁用备份压缩,因此现有部署无需进行任何更改。 如果需要压缩,请将
galera_mariadb_backups_compress设置为True。 使用galera_mariadb_backups_compressor选择压缩工具,默认值为gzip。
错误修复¶
修复了 LXC 图像缓存到期机制。 之前 LXC 图像将永远有效。
26.1.2¶
弃用说明¶
由于上游存储库在 2023-05-28 之后不再可用,RabbitMQ 包不再由 PackageCloud 提供。 安装现在将使用 Rabbitmq 和 erlang 的 CloudSmith 存储库的社区镜像。
https://github.com/rabbitmq/rabbitmq-server/discussions/8386
安全问题¶
包含 Nova、Cinder 和 Glance 的 SHA 变更,以涵盖 OSSA-2023-003。
错误修复¶
修复了当主机同时属于 central 和 compute 组时(例如 metal/aio 场景),ceilometer
polling_namespaces的错误定义。
修复了计算节点上缺少
libvirtd.service的问题。使用 CentOS 将 libvirt 版本升级到 9.3.0 后,他们不再将 libvirt-deamon 作为对 libvirt-deamon-kvm 的依赖项进行安装。libvirt-deamon 现在显式安装。
26.0.1¶
安全问题¶
此版本包含 Cinder、Nova 和 Glance 的 SHA 补丁,涵盖 OSSA-2023-002 漏洞 (CVE-2022-47951)。
错误修复¶
修复了在 OVN 场景下 neutron-metadata-agent 和 neutron-dhcp-agent 在 network_hosts 上启动的问题,同时 neutron-ovn-metadata-agent 也启动。这些服务将在现有环境中被禁用和屏蔽。仍然需要手动清理 systemd 服务和相应的 neutron agent。新的部署将从一开始就停止部署这些服务。
26.0.0¶
序言¶
默认 neutron 插件已从 LinuxBridge 切换到 OVN。这适用于所有新部署。同时,OpenStack-Ansible 不提供任何内部工具来完成从 ml2.lxb 到 ml2.ovn 的升级。请参阅升级部分,了解有关如何升级 OpenStack-Ansible 的更多详细信息。
新特性¶
添加了
zookepeer角色,该角色部署 zookeeper 集群,可作为 cinder、designate、octavia 等服务的协调驱动程序。要进行部署,需要在 conf.d 或 openstack_user_config.yml 中指定coordination_hosts,并运行zookeeper-install.ymlplaybook。
添加了以下变量,旨在控制协调配置。为使服务开箱即用,已设置合理的默认值。
coordination_driver
coordination_group
coordination_client_ssl
coordination_verify_cert
coordination_port
此外,每个使用协调的服务都定义了以下变量
<service>_coordination_enable
<service>_coordination_url
现在可以在 Galera 安装过程中通过定义 ‘galera_additional_users’ 列表来设置其他用户指定的用户名和密码对。
添加了变量
haproxy_bind_external_lb_vip_interface和haproxy_bind_internal_lb_vip_interface,允许部署者仅将 haproxy 绑定到特定的接口。
添加了变量
haproxy_tls_vip_binds,允许完全覆盖 haproxy 绑定,这些绑定由角色生成,如果某些假设对于某些场景无效。它是一个映射列表,包括地址和接口。接口键是可选的,可以省略。
已添加新变量来管理使用的缓存后端
openstack_cache_backend:定义将用于缓存的驱动程序。默认值:oslo_cache.memcache_poolopenstack_cache_backend_map:将选定的后端映射到应为其安装和配置的 oslo 驱动程序。
添加了变量
ceph_cluster_name,允许 ceph_client 角色与具有非默认集群名称的集群一起工作。它默认为ceph。
可以定义一个新的变量
haproxy_stick_table,以将自定义的 stick-table 应用到负载均衡器上的所有后端。此外,可以将haproxy_stick_table设置在每个服务定义中,以便为特定的后端提供自定义的 stick-table。
添加了变量
openstack_host_custom_hosts_records,允许部署者向 /etc/hosts 文件添加自定义记录。它的结构是一个简单的列表,其中每个元素都是应放置到 /etc/hosts 的字符串。
os_ironic ansible 角色现在可以将 ironic 部署镜像上传到 glance。定义了几个新的变量 ironic_deploy_image_*,用于控制此操作。可以禁用上传到 glance,也可以指定自定义位置来暂存镜像(如果需要)。
添加了与
haproxy_<service>_overrides变量(例如:haproxy_cloudkitty_api_service)合并,可用于 haproxy 服务配置的部分覆盖。
添加了定义受信任的跨站点请求伪造域的功能,方法是使用 horizon_ssl_csrf_trusted_origins 变量。新的变量是一个字符串数组,当定义时,将呈现 django 内置变量 CSRF_TRUSTED_ORIGINS。
https://docs.django.ac.cn/en/4.1/ref/settings/#csrf-trusted-origins
Horizon 现在可以直接从 uWSGI 运行。为了支持此功能,添加了新的布尔变量 horizon_use_uwsgi。当将新变量设置为 true 时,将省略 apache2 安装过程,而是从 systemd 服务文件利用 uWSGI 进程运行 horizon。
添加了
keepalived_instances_overrides变量,允许传递keepalived_instances的自定义选项。
keystone 角色现在支持选项 keystone_use_uwsgi,这将允许部署者通过 uWSGI 运行 keystone,而无需 apache Web 服务器。当启用 keystone_use_uwsgi 选项时,将在端口 5000 上设置 uWSGI 进程。
lxc_hosts 角色现在支持省略 lxc 网络接口部署。选项 lxc_net_managed 是一个布尔运算符,默认值为 true。当此选项设置为 false 时,该角色将不会部署接口文件或尝试管理接口的状态。
添加了
mistral_api_use_uwsgi,允许在没有 uWSGI 的情况下运行 mistral-api 服务(默认设置为 true)。
可以通过将它们添加到新引入的
neutron_dhcp_config_list列表中来配置 dnsmasq 的选项。这有助于配置例如no-negcache以解决 https://bugs.launchpad.net/ubuntu/+source/dnsmasq/+bug/1974230。
添加了一个新的变量 nova_ironic_console_type,以启用 ironic_console ansible 组中一个 nova 控制代理的部署。目前唯一支持的设置是 disabled 或 serialconsole。
在添加 zookeeper 作为协调后端后,Octavia 将配置为默认使用 amphorav2 作为提供程序驱动程序。这将导致创建新的数据库和 jobboard 配置。可以使用变量
octavia_galera_persistence_database来控制数据库名称,并且现有的 octavia db 用户将获得对该数据库的所有权限。
添加了一个新的参数 octavia_provider_network_mtu,默认将 MTU 设置为 1500。 这对于允许巨型帧同时将管理网络设置为标准以太网 MTU 的部署非常重要。 MTU 可以在初始 octavia 部署期间或使用 openstack network set –mtu 命令行随时更改。
OVN 现在通过 SSL 进行保护。可以通过 neutron_ovn_ssl 禁用它。不支持从非 SSL 切换到 SSL。
实现了变量
rally_openstack_git_repo和rally_openstack_git_install_branch,允许覆盖 rally-openstack 包的安装源以及控制包的安装版本。
添加了参数
galera_mariadb_backups_full_randomized_delay_sec和galera_mariadb_backups_incremental_randomized_delay_sec,以使用随机延迟运行 mariabackup 的 systemd 定时器。如果对多个节点进行备份,这对于避免在完全相同的时间运行备份很有用。
支持 Rocky Linux 9 作为部署和目标主机
现在可以定义
execstartpres和execstopposts键用于 systemd_services 结构。它们将允许定义服务启动前和停止后的可执行文件,并且必须定义为列表。
添加了从用户文件获取环境变量的可能性,该文件将优先于在 openstack-ansible.rc 之后加载的所有环境变量,并优先于那里定义的所有变量。默认情况下,用户文件的路径是
/etc/openstack_deploy/user.rc。
默认
ansible-core版本已切换到 2.13 系列
ceph-ansible版本已切换到 v7 系列
默认 ceph 版本已切换到 Quincy
已知问题¶
截至今天,ceph 社区存储库 (download.ceph.com) 不为 Ubuntu 22.04 (Jammy) 提供软件包。基于此,OpenStack-Ansible 从发行版提供的存储库安装 ceph 软件包。因此,您无法控制将安装的软件包版本,并且应将 ceph 支持视为实验性的。
升级说明¶
如果使用 cinder 的 active/active 模式(即使用 Ceph 后端),强烈建议在升级之前定义
coordination_hosts,以部署 zookeeper 协调集群,这对于 cinder active/active 模式的正常工作是必需的。
以前默认将 stick-table 应用于所有后端,但没有特定目的。现在已删除此操作,应使用变量
haproxy_stick_table提供配置行列表,以应用于每个后端以控制 stick-table 功能。
变量 ironic_inspector_ipa_initrd_name 和 ironic_inspector_ipa_initrd_name 已从 os_ironic 角色中删除,并且更灵活的功能现在通过 ironic_deplo_image_* 变量提供。查看您对 ironic 服务的任何覆盖,并根据需要调整这些新变量。
随着
mistral_api_use_uwsgi,cron_trigger.enabled将默认设置为 false,禁用所有现有安装上的 Cron Triggers,如 建议。
添加了一个新的参数 octavia_provider_network_mtu,默认将 MTU 设置为 1500。 这对于允许巨型帧同时将管理网络设置为标准以太网 MTU 的部署非常重要。 MTU 可以在初始 octavia 部署期间或使用 openstack network set –mtu 命令行随时更改。
随着将 ML2/LinuxBridge 驱动程序标记为上游 Neutron 项目中的“实验性”,OpenStack-Ansible 已将默认机制驱动程序切换到 ML2/OVN。为了升级任何依赖于默认值的现有部署,您必须确保定义以下变量,以确保与现有功能的同等性
neutron_plugin_type: ml2.lxb neutron_ml2_drivers_type: "flat,vlan,vxlan,local" neutron_plugin_base: - router - metering
未能定义任何这些变量将导致 playbook 失败和 neutron 错误配置。
我们使用升级脚本涵盖了此步骤,该脚本将创建一个
user_neutron_migration.yml文件,其中包含假定的默认值。
OVN 现在配置为启用 SSL,升级现有的 ovn 部署未经测试。在升级时,明智的做法是将 neutron_ovn_ssl 设置为 false,并在稍后阶段管理 ssl 配置。
从 Yoga 版本开始,RabbitMQ 管理界面通过 HAProxy 默认使用 TLS。请注意,在使用 TLS 时,默认端口从 15672 切换到 15671。如果需要,可以通过调整 ‘rabbitmq_management_ssl’ 来禁用 TLS。
由于 Yoga 版本
service角色被分配给所有服务用户。但是,service_token_roles_required 设置为False以进行升级目的。现在service_token_roles_required默认设置为True。如果您仍然想保留旧行为,可以在 user_variables 中定义openstack_service_token_roles_required: False。
弃用说明¶
Ironic 已弃用 pxe_append_params 配置选项,并将其替换为 kernel_append_params。相应的配置覆盖 ironic_pxe_append_params 已替换为 ironic_kernel_append_params,但在未来的某个未定版本中仍将受支持。
变量
nova_memcached_servers已弃用,并替换为nova_cache_servers,后者默认设置为memcached_servers。为了保持向后兼容性,nova_memcached_servers仍然受到尊重,但将在未来的版本中删除。
角色
rsyslog_client和rsyslog_server已弃用并从 OpenStack-Ansible 中删除。由于 Train 服务配置为将日志保存到 journald 而不是常规日志文件。来自容器的 journald 传递到主机,因此您可以读取和操作主机上的日志。Journald 可以通过许多工具进行转换和收集,包括 rsyslog。同时,rsyslog 并非理想选择,因为它以纯文本形式存储数据,这很难进行索引和搜索,而 journald 具有结构化,因此可以使用其他工具更有效地使用日志。
错误修复¶
已修复为多架构和多发行版设置构建 wheels 的问题。为此,您仍然需要一组 venv_build_targets,它将为每个操作系统和架构定义目标。
变量
haproxy_fall和haproxy_rise现在再次受到尊重,并将用于定义 haproxy 将后端标记为 UP 或 DOWN 之前的检查次数。服务定义中设置的键backend_rise和haproxy_fall仍然受到尊重,并且将优先于全局键。
Mistral Cron Triggers 不会在 mistral-api 服务在 uWSGI 中运行时创建 Workflow Executions,因此我们引入了
mistral_api_use_uwsgi,它将 Cron Trigger 服务状态与 Mistral API 执行环境绑定。
其他说明¶
文件
/etc/openstack_deploy/openstack_hostnames_ips.yml不再使用,可以从您的部署配置中安全地删除。
external_lb_vip_address已添加到glance_cors_allowed_origin的默认值,无论其他变量如何。
glance_show_multiple_locations的默认值已更改为 False,无论其他变量如何。
当启用选项 horizon_use_uwsgi 时,操作员需要注意,并非所有 Horizon 功能都会存在。 最小的 uWSGI 进程就是字面意义上的“最小”,并非完整功能。 如果部署需要完整功能,则应继续启用基于 Apache 的部署。
当设置选项 keystone_use_uwsgi 为 true 时,Keystone 角色现在可以运行 Keystone 的最小 uWSGI 进程。 此功能为操作员提供了在没有 Apache 的情况下运行最小化安装的能力。 虽然最小化部署是可用的,但它并非功能齐全。 在运行最小化配置时,modshib 和 oath 等功能不受支持。
实现了
tempest_extra_plugins变量,该变量允许定义额外的 tempest 插件,而无需覆盖整个 tempest_plugins 列表。