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_overridesgalera_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_compress

    • galera_mariadb_backups_compressor

    每个备份存档都存储在一个专用目录中,以及备份元数据。

升级说明

  • 默认情况下禁用备份压缩,因此现有部署无需进行任何更改。 如果需要压缩,请将 galera_mariadb_backups_compress 设置为 True。 使用 galera_mariadb_backups_compressor 选择压缩工具,默认值为 gzip

错误修复

  • 修复了 LXC 图像缓存到期机制。 之前 LXC 图像将永远有效。

  • 变量 haproxy_fallhaproxy_rise 现在再次被尊重,并将用于定义在 haproxy 将后端标记为 UP 或 DOWN 之前检查的次数。在服务定义中设置的 backend_risehaproxy_fall 键仍然被尊重,并且优先于全局设置。

25.4.0

升级说明

  • 由于 OSSA-2023-003,openstack_service_token_roles_required 的值已更改为 true。因此,升级到 Yoga 版本的重大升级可能会因长时间的停机而受阻。对 API 停机时间敏感的环境可以先升级到任何先前的版本,然后再进行次要升级,这将启用 openstack_service_token_roles_required 并安装安全版本的服务。另一种方法是手动创建并分配 service 角色给所有“service”用户。

弃用说明

安全问题

  • 包含 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_reporally_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 个键 crtkey,它们定义证书及其相应密钥的路径。证书文件应包含客户端验证信任所需的任何中间证书。

  • 引入了 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_dirgalera_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_drivergnocchi_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_urlgnocchi_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_inusenova_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_createtempest_private_net_createtempest_router_createtempest_images_createtempest_flavors_createtempest_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_timeout keystone_database_max_pool_size keystone_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_mirrorrepo_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_regenkeystone_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_mountsopenstack_repo_server_enable_glusterfs 允许部署覆盖默认使用 glusterfs 的设置。

  • 更改了 tempest_projects 变量的默认值。现在此列表仅包含一个元素“tempest”。之前是“demo”和“alt_demo”,这有点令人困惑。

弃用说明

  • 与 OVN 相关的 HAProxy 配置已被弃用,并已替换为内置的集群功能。与 OVN 相关的端点将在 Z 版本中完全移除。

  • 变量 tempest_service_available_congresstempest_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_sslnova_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-securityx-content-type-optionsreferrer-policycontent-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 中硬编码端点类型