Yoga 系列发布说明¶
25.6.0¶
升级说明¶
Keystone OIDC 参数“oidc_redirect_uri”已替换为“oidc_redirect_path”。 除非您运行可能与 Keystone 上的默认设置冲突的其他服务,否则不再需要显式设置此参数。 您的 OIDC 提供程序可能需要更新以反映此重定向 URI 的更改,默认情况下为 Keystone 公共 URL 加上路径 /oidc_redirect。
错误修复¶
修复了在 Ubuntu Jammy 上使用 Apache mod_auth_openidc 时的问题,需要一个新的 OIDCXForwardedHeaders 配置选项。
修复了 OpenStack 命令行 OIDC 集成问题,适用于 Apache mod_auth_openidc 版本 >= v2.4.9,包括 Ubuntu Jammy。
其他说明¶
由于 bug #2041717,
localhost目标已显式添加到 OSA 库存中。因此,“all”组现在包含 localhost,针对“all”的自定义 playbook 可能需要调整,例如:hosts: all:!localhost
25.5.0¶
新特性¶
添加了变量
galera_backups_full_init_overrides和galera_backups_increment_init_overrides,这些变量可用于覆盖 mariadb 备份的默认 systemd 单元文件集。 类似于更改 I7b3b0f4da047f82a49266ef57fba2fbaa24cebdc。
实现了变量
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
每个备份存档都存储在一个专用目录中,以及备份元数据。
升级说明¶
默认情况下禁用备份压缩,因此现有部署无需进行任何更改。 如果需要压缩,请将
galera_mariadb_backups_compress设置为True。 使用galera_mariadb_backups_compressor选择压缩工具,默认值为gzip。
错误修复¶
修复了 LXC 图像缓存到期机制。 之前 LXC 图像将永远有效。
变量
haproxy_fall和haproxy_rise现在再次被尊重,并将用于定义在 haproxy 将后端标记为 UP 或 DOWN 之前检查的次数。在服务定义中设置的backend_rise和haproxy_fall键仍然被尊重,并且优先于全局设置。
25.4.0¶
升级说明¶
由于 OSSA-2023-003,
openstack_service_token_roles_required的值已更改为true。因此,升级到 Yoga 版本的重大升级可能会因长时间的停机而受阻。对 API 停机时间敏感的环境可以先升级到任何先前的版本,然后再进行次要升级,这将启用openstack_service_token_roles_required并安装安全版本的服务。另一种方法是手动创建并分配service角色给所有“service”用户。
弃用说明¶
由于上游存储库在 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 现在显式安装。
25.3.1¶
其他说明¶
Erlang 已更新到版本 25.0.4,RabbitMQ 将升级到版本 3.10.7。这将使 Debian Bullseye 的 RabbitMQ/Erlang 版本保持一致。
25.3.0¶
新特性¶
添加了一个新的参数 octavia_provider_network_mtu,默认将 MTU 设置为 1500。 这对于允许巨型帧同时将管理网络设置为标准以太网 MTU 的部署非常重要。 MTU 可以在初始 octavia 部署期间或使用 openstack network set –mtu 命令行随时更改。
升级说明¶
添加了一个新的参数 octavia_provider_network_mtu,默认将 MTU 设置为 1500。 这对于允许巨型帧同时将管理网络设置为标准以太网 MTU 的部署非常重要。 MTU 可以在初始 octavia 部署期间或使用 openstack network set –mtu 命令行随时更改。
安全问题¶
Erlang 版本已升级到 24.3.4.7,以涵盖 CVE-2022-37026,该漏洞的严重性为关键。
此版本包含 Cinder、Nova 和 Glance 的 SHA 补丁,涵盖 OSSA-2023-002 漏洞 (CVE-2022-47951)。
25.2.0¶
新特性¶
支持 Rocky Linux 9 作为部署和目标主机
已知问题¶
截至今天,ceph 社区仓库 (download.ceph.com) 尚未为 Ubuntu 22.04 (Jammy) 提供软件包。因此,OpenStack-Ansible 从发行版提供的仓库安装 ceph 软件包。因此,您无法控制将安装的软件包版本,ceph 支持应被视为实验性的。
升级说明¶
默认 MariaDB 版本设置为 10.6.10。在运行次要升级时,请不要忘记提供
-e galera_upgrade=true到 openstack-ansible 命令。这样,为 CentOS 9 Stream、Rocky 9 和 Ubuntu 22.04 安装的 MariaDB 版本将从发行版提供的版本切换到从 MariaDB 仓库安装的 10.6.10 版本,这可能是一个主要版本升级。
25.1.0¶
新特性¶
实现了变量
rally_openstack_git_repo和rally_openstack_git_install_branch,允许覆盖 rally-openstack 包的安装源以及控制包的安装版本。
升级说明¶
从 Yoga 版本开始,通过 HAProxy 暴露的 RabbitMQ 管理界面默认使用 TLS。请注意,在使用 TLS 时,默认端口从 15672 切换到 15671。如果需要,可以通过调整 ‘rabbitmq_management_ssl’ 来禁用 TLS。
错误修复¶
已修复为多架构和多发行版设置构建 wheels 的问题。为此,您仍然需要一组 venv_build_targets,它将为每个操作系统和架构定义目标。
25.0.0¶
新特性¶
添加了变量 uwsgi_tls,当将其添加到 uwsgi_services 项目时,它将为该服务启用 TLS。uwsgi_tls 是一个字典,应包含 2 个键 crt 和 key,它们定义证书及其相应密钥的路径。证书文件应包含客户端验证信任所需的任何中间证书。
引入了 3 个新变量 cinder_default_availability_zone、octavia_cinder_volume_size 和 octavia_cinder_volume_type。使用这些变量,可以使 Octavia 使用不同的 Cinder 配置。
已添加 UEFI 启动支持。要从 Legacy BIOS 模式迁移,请为支持 UEFI 的裸机节点定义 boot_mode:uefi 作为功能。此外,还需要创建或修改相应的 flavor,以包含 boot_mode:uefi 作为功能,以便将调度安排到 UEFI 节点上。
引入了一个新变量
centos_mirror_url到 openstack_hosts 角色,以允许单个部署范围变量来控制 centos 包镜像的位置。
ceph-ansible 已切换到版本 6.0,默认使用 Ceph Pacific。
添加了对两种凭证提供机制(动态凭证和预置凭证)的支持。
实现变量
galera_data_dir,该变量控制 MariaDB 数据库的 datadir。默认值为 /var/lib/mysql。
实现了新变量
galera_tmp_dir和galera_ignore_db_dirs,用于控制 tmp 目录的路径以及在列出数据库时应忽略哪些目录。
MariaDB 现在默认使用 TLS 加密。证书将由内部 CA 使用 PKI 角色颁发和签名。部署者可以通过在 user_variables.yml 中设置
galera_use_ssl: false来禁用加密 MariaDB 连接。客户端证书仍然可以提供,并且也将使用 PKI 角色进行分发。
添加了一个新变量 openstack_hosts_apt_pinned_packages,它允许在 user_variables 中定义部署范围的 apt 固定。该变量默认将 UCA 仓库固定到低于 Ubuntu 仓库的优先级,用于从 ceph 源代码包生成的任何二进制包。目的是确保 Ceph 包始终从 Ubuntu 仓库安装,或者在稍后针对主机运行 ceph_client 角色时从官方 ceph 仓库安装。特定 openstack 发行版的 ceph 包可能与 openstack-ansible 的其余部分预期的版本不同,因此此更改可确保部署的 ceph 版本一致。
实现了本地定义
gnocchi_incoming_driver与gnocchi_storage_driver分开的可能性。默认行为是[incoming]保持未配置状态,这意味着当 gnocchi_incoming_driver 和 gnocchi_storage_driver 相等时,将使用[storage]。角色将在需要时安装 incoming 驱动程序依赖项。为了实现这一点,引入了以下变量
gnocchi_storage_file_basepath
gnocchi_storage_swift_container_prefix
gnocchi_incoming_driver
gnocchi_incoming_file_basepath
gnocchi_incoming_swift_container_prefix
gnocchi_ceph_incoming_pool
gnocchi_ceph_incoming_username
实现了变量
gnocchi_metricd_workers,该变量旨在控制生成的 gnocchi-metricd worker 数量。默认情况下,它等于 CPU 核心数,但最多不超过 16 个 worker。
添加了变量
gnocchi_storage_redis_url和gnocchi_incoming_redis_url,用于管理 redis 连接(如果将其选定为存储/incoming 驱动程序)。默认值为 redis://:6379/ 请注意,截至今天,OpenStack-Ansible 不提供 Redis 的安装。
实现了变量
magnum_conductor_workers,该变量旨在控制生成的 magnum-conductor worker 数量。默认情况下,它等于 CPU 核心数,但最多不超过 16 个 worker。
已更新
provider_networks库,以支持可以自动添加到 DPDK 基于部署期间设置的 OVS 提供程序桥接的 bond 成员接口的定义。此功能当前仅限于基于 DPDK 的部署。要激活此功能,请将network_bond_interfaces键添加到openstack_user_config.yml中相应的提供程序网络定义中。有关更多信息,请参阅最新的 Open vSwitch 与 DPDK 部署指南。
现在可以使用变量
neutron_vpnaas_custom_config定义具有自定义配置文件 Neutron VPN 即服务 (VPNaaS)。 部署者应在 ‘user_variables.yml’ 中定义neutron_vpnaas_custom_config。 示例neutron_vpnaas_custom_config: - src: "/etc/openstack_deploy/strongswan/strongswan.conf.template" dest: "{{ neutron_conf_dir }}/strongswan.conf.template" - src: "/etc/openstack_deploy/strongswan/strongswan.d" dest: "/etc/strongswan.d" - src: "/etc/openstack_deploy/{{ neutron_vpnaas_distro_packages }}/ipsec.conf.template" dest: "{{ neutron_conf_dir }}/ipsec.conf.template" - src: "/etc/openstack_deploy/{{ neutron_vpnaas_distro_packages }}/ipsec.secret.template" dest: "{{ neutron_conf_dir }}/ipsec.secret.template"
我们还应该在 ‘user_variables.yml’ 中定义
neutron_l3_agent_ini_overrides,以告知l3_agent使用新的配置文件。 示例neutron_l3_agent_ini_overrides: ipsec: enable_detailed_logging: True strongswan: strongswan_config_template : "{{ neutron_conf_dir }}/strongswan.conf.template" openswan: ipsec_config_template: "{{ neutron_conf_dir }}/ipsec.conf.template"
添加了新变量
nova_glance_rbd_inuse和nova_glance_images_rbd_pool,这些变量允许部署者轻松配置 nova 直接从 RBD 检索 glance 镜像(如果 nova 使用本地存储作为临时驱动器)。
引入了新的变量
cinder_volume_usage_audit_send_actions_enabled,允许部署者禁用 cinder-volume-usage-audit 服务单元中的 send actions 选项。 为了获得尽可能小的占用空间,默认值为 true,以不更改现有部署中 cinder-volume-usage-audit 的行为。
已实现提供对 RabbitMQ 管理界面更好控制的新变量
rabbitmq_management_bind_tcp_port
rabbitmq_management_bind_tls_port
rabbitmq_management_ssl
添加了变量
rabbitmq_init_overrides,它允许控制将应用于 systemd 服务的 rabbitmq 覆盖。以前的值是硬编码的,无法覆盖。
添加了变量
rabbitmq_manage_hosts_entries,用于控制 rabbitmq_server 角色是否会尝试调整 /etc/hosts 文件
以前用于在多节点部署中的高可用性 repo 服务器之间同步 repo 服务器内容的机制(lsyncd 和通过 ssh 的 rsync)已被删除,并替换为共享文件系统挂载。这使得在构建和提供 python wheels 时更容易支持多操作系统和多处理器架构。默认部署将在每个 repo 服务器主机上运行 glusterfs 服务器,并使用 systemd_mount ansible 角色在 /var/www/repo 处挂载 glusterfs 文件系统。如果部署希望使用替代外部共享文件系统,则可以将新变量 openstack_repo_server_enable_glusterfs 设置为 false,并可以通过覆盖新的 repo_server_systemd_mounts 变量创建替代挂载。在所有部署中,使用某种类型的共享文件系统对于 repo 服务器是强制性的。
实现了变量
tempest_public_net_create、tempest_private_net_create、tempest_router_create、tempest_images_create、tempest_flavors_create、tempest_projects_create,这些变量允许跳过创建特定资源。
允许创建 模板化服务 现在,对于 systemd_services,您可以提供 template_arguments,其中包含将创建模板化服务的参数列表。
HAProxy 角色现在默认支持 TLS v1.3,以及 TLS v1.2。
添加了一个新的 ‘ssl_cipher_suite_tls13’ 变量,用于全局控制 TLS v1.3 密码套件。
已调整
venv_rebuild的功能范围到正确的范围。现在,将此变量设置为 true 不会触发 wheels 的重建 - 它只会删除并重新创建您的虚拟环境。如果您想重建 wheels,则已实现一个新的变量venv_wheels_rebuild。
已知问题¶
存在一个 已知问题,与升级到 Ceph Pacific 版本在 16.2.7 之前存在问题。请确保在执行 Ceph 升级之前已发布 16.2.7 或更高版本。否则,在 user_variables.yml 中覆盖
ceph_stable_release: octopus。
升级说明¶
现有变量
openstack_hosts_centos_mirror_url的使用将继续与以前的版本一样,但新的变量centos_mirror_url可用于为整个部署定义镜像位置。
我们已更改与数据库连接池相关的变量的默认值。对于某些服务(例如 nova),默认池大小将大大降低,我们还将默认 connection_recycle_time 降低到 10 分钟。这不应引起任何问题,但我们建议仔细检查这些值,尤其是对于大型环境。
变量
octaiva_db_pool_size之前已被弃用,现在已被移除。Xena 版本中引入了一个替代变量。
以下 keystone 角色变量之前已被弃用,现在已被移除。Xena 版本中引入了替代变量。
keystone_database_pool_timeoutkeystone_database_max_pool_sizekeystone_database_idle_timeout
变量
neutron_db_pool_size之前已被弃用,现在已被移除。Xena 版本中引入了一个替代变量。
OpenStack-Ansible 的 Yoga 版本不再支持 Ubuntu Bionic。在升级到 Yoga 之前或期间,应将部署从 Bionic 升级到 Focal。
OpenStack-Ansible 的 Yoga 版本不再支持 Debian Buster。在升级到 Yoga 之前或期间,应将部署从 Buster 升级到 Bullseye。
OpenStack-Ansible 的 Yoga 版本不再支持 Centos-8。在升级到 Yoga 之前或期间,应将部署从 Centos-8 升级到其他受支持的操作系统。
在基于 RedHat 的操作系统上,不再需要使用 nginx 包仓库,因为标准发行版仓库中现在有足够新版本的 nginx 包。变量
repo_centos_nginx_mirror和repo_centos_nginx_key已从 repo_server 角色中移除,不再有任何作用。
Galera 现在默认情况下还会监听 3307 端口,该端口将由监控用户用于检查集群状态。在升级之前,请确保任何防火墙规则允许访问此端口。如果已经配置了“extra_port”,请确保移除任何冲突的配置,并通过“galera_monitoring_port”和“galera_monitoring_max_connections”设置首选值。
在升级期间,
galera_monitoring_user_password的密码将在运行 galera-server 角色时生成并设置。如果任何第三方软件依赖此用户,则应更新为使用密码。您还可以通过将变量覆盖为galera_monitoring_user_password: ""来不使用密码进行身份验证,并保留之前的行为。
如果您的数据库名为
#tmp,则应更改galera_tmp_dir路径并调整galera_ignore_db_dirs或重命名数据库。
新变量 openstack_hosts_apt_pinned_packages 已添加到 openstack_hosts ansible 角色中,并设置 apt_package_pinning 角色中 apt_pinned_packages 的值,该角色作为 openstack_hosts 角色的依赖项运行。部署者在 user_variables 中对 apt_pinned_packages 变量的现有使用情况应进行审查,以确保这些固定应用于预期的 ansible 角色,并在必要时切换到此新变量。
如果您在部署中定义了
haproxy_tuning_params,请确保在升级之前所有键都是有效的 haproxy 选项。例如,不要使用chksize: 16384,而应设置tune.chksize: 16384。否则将生成无效的配置,并且 haproxy 将在启动时失败。对于此更改,未提供升级脚本,也没有向后兼容性。
keystone 安装现在使用 ansible-role-pki 创建并安装 Apache 的服务器证书,当 keystone_ssl 为 true 时。当部署者填充 keystone_idp 时,相同的角色也用于创建用于 SAML 联合的 CA 证书和密钥。对于现有的 keystone SAML 设置,证书和密钥将被重新创建,除非将现有的证书首先复制到部署主机上的
/etc/openstack_deploy/pki/roots目录中,否则这可能是不希望的。变量keystone_ssl_self_signed_regen和keystone_ssl_self_signed_subject已被移除,并由新的keystone_pki_*变量提供的等效功能取代。
Keystone 现在使用通用的 uwsgi 角色进行 uWSGI 部署。与此同时,变量
keystone_services已扩展为包含 uWSGI 所需的参数。如果您在本地覆盖此变量,请确保相应地更新其结构。
RabbitMQ 已迁移到新式配置,该配置位于
/etc/rabbitmq/rabbitmq.conf中。旧配置rabbitmq.config将在升级期间被移除。
Cinder v2 API 现在已完全从 Cinder 服务中移除。因此,os_cinder 角色确保 v2 端点不再存在于目录中,并移除存在的端点。
用于运行“clustercheck”脚本的 xinetd 脚本和配置已被 systemd socket 激活的服务取代。
repo 服务器主机将停止并卸载 repo 服务器主机上现有的 lsyncd 和 rsync 服务。此功能将默认情况下由 glusterfs 共享文件系统取代。如果部署在控制平面上使用防火墙,则应更新规则以允许 repo 服务器主机之间的 glusterfs 流量。如果需要,可以使用替代的外部共享文件系统(例如 NFS、cephfs 等),并且新的变量 repo_server_systemd_mounts 和 openstack_repo_server_enable_glusterfs 允许部署覆盖默认使用 glusterfs 的设置。
更改了
tempest_projects变量的默认值。现在此列表仅包含一个元素“tempest”。之前是“demo”和“alt_demo”,这有点令人困惑。
弃用说明¶
与 OVN 相关的 HAProxy 配置已被弃用,并已替换为内置的集群功能。与 OVN 相关的端点将在 Z 版本中完全移除。
变量
tempest_service_available_congress和tempest_service_available_nova_lxd已被移除,并且不再有任何作用,因为相应的服务不再受支持。
变量
nova_glance_api_servers已被移除,并且不再有任何作用,因为相应的上游 api_servers 已被弃用。
由于上游 Panko 项目已退役,os_panko 角色已被弃用。Panko 服务 API 端点将在升级期间被移除。如果您想保留 Panko API 的工作状态,则应覆盖 haproxy_panko_api_service。
以下 tempest 相关变量已被弃用,并且不再有任何作用
tempest_compute_ssh_user
tempest_compute_console_output_enabled
tempest_compute_resize_enabled
tempest_compute_snapshot_enabled
tempest_compute_change_password
tempest_image_api_v1_enabled
tempest_image_api_v2_enabled
tempest_swift_container_sync
tempest_swift_object_versioning
tempest_swift_discoverable_apis
tempest_volume_backup_enabled
tempest_volume_multi_backend_enabled
tempest_enable_instance_password
tempest_volume_backend_names
变量
glance_nfs_local_directory已重命名为glance_images_local_directory,以更好地反映变量的用途。glance_nfs_local_directory仍然为了向后兼容性,但将在 Zed 版本中移除。
变量
glance_nfs_client已被glance_remote_client取代。新变量具有新的键来定义挂载,以涵盖更广泛的受支持的文件系统。为了glance_nfs_client的兼容性,已保留直到 Zed 版本。
变量
nova_external_ssl和nova_secure_proxy_ssl_header已被移除,因为它们控制的 nova.conf 中的 secure_proxy_ssl_header 选项已被弃用,并且不再有任何作用。
变量
tempest_network_tenant_network_cidr已被弃用
变量
tempest_network_tenant_network_mask_bits已被弃用
变量
tempest_fatal_deprecations已被弃用
变量 ‘keystone_ssl_cipher_suite’ 已被 ‘keystone_ssl_cipher_suite_tls12’ 取代,后者将继续管理 TLS v1.2 及更早版本密码套件的配置。
变量 ‘haproxy_ssl_cipher_suite’ 已被 ‘haproxy_ssl_cipher_suite_tls12’ 取代,后者将继续管理 TLS v1.2 及更早版本密码套件的配置。
变量 ‘ssl_cipher_suite’ 已被 ‘ssl_cipher_suite_tls12’ 取代,后者将继续管理 TLS v1.2 及更早版本密码套件的配置。
变量 ‘horizon_ssl_cipher_suite’ 已被 ‘horizon_ssl_cipher_suite_tls12’ 取代,后者将继续管理 TLS v1.2 及更早版本密码套件的配置。
安全问题¶
已将以下安全标头添加到 haproxy Horizon 服务:strict-transport-security、x-content-type-options、referrer-policy 和 content-security-policy。在使用 strict-transport-security 标头时应小心,因为此标头实施了首次使用安全,这意味着浏览器首次访问页面后,将强制使用 HTTPS,直到最大年龄时间到期。目前,strict-transport-security preload 令牌,指示您希望您的站点包含在浏览器中内置的 HSTS 预加载列表中已被排除。可以通过设置 haproxy_security_headers: [] 来禁用标头,并且可以通过设置 haproxy_horizon_csp 来覆盖 Horizon 的 CSP(内容安全策略)以支持联合登录等内容。未来可以扩展到所有 haproxy 服务,但由于标头仅由浏览器使用,因此这样做的好处可能仅限于 keystone 和控制台服务。
错误修复¶
修复了阻止通过 Horizon 界面上传图像的内容安全策略错误。
修复了 playbook 运行时提供标签时的 facts 收集问题。
默认情况下,我们增加了
tune.maxrewrite,否则在使用 CSP 标头时,它们的大小可能会超过允许的缓冲区。部署者也可以根据需要覆盖此值。
修复了可能影响使用 oslo.messaging RabbitMQ 心跳机制的服务的文件描述符泄漏。
修复了可能影响使用 oslo.messaging RabbitMQ 心跳机制的服务的文件描述符泄漏。
修复了可能影响使用 oslo.messaging RabbitMQ 心跳机制的服务的文件描述符泄漏。
当 OSA 已经管理 hosts 文件时,rabbitmq 角色不会在 /etc/hosts 文件中重复记录。
其他说明¶
放宽了可以传递给
haproxy_tuning_params的参数限制。这意味着任何调整参数都可以以键/值格式传递。
rabbitmq 和 erlang 包的默认源已切换到 cloudsmith.io
添加了新变量
tempest_endpoint_type以避免在 tempest.conf 中硬编码端点类型