Wallaby 系列发布说明

23.4.0

新特性

  • 现在可以使用变量 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"
    
  • 实现了变量 rally_openstack_git_reporally_openstack_git_install_branch,允许覆盖 rally-openstack 包的安装源以及控制安装包的版本。

安全问题

其他说明

  • rabbitmq 和 erlang 包的默认源已切换到 cloudsmith.io

23.3.0

新特性

  • 引入了新的变量 cinder_volume_usage_audit_send_actions_enabled,允许部署者禁用 cinder-volume-usage-audit 服务单元中的 send actions 选项。 为了获得尽可能小的占用空间,默认值为 true,以不更改现有部署中 cinder-volume-usage-audit 的行为。

  • 添加了变量 rabbitmq_manage_hosts_entries,用于控制 rabbitmq_server 角色是否会尝试调整 /etc/hosts 文件

错误修复

  • 修复了可能影响使用 oslo.messaging RabbitMQ 心跳机制的服务的文件描述符泄漏。

  • 修复了可能影响使用 oslo.messaging RabbitMQ 心跳机制的服务的文件描述符泄漏。

  • 修复了可能影响使用 oslo.messaging RabbitMQ 心跳机制的服务的文件描述符泄漏。

  • 当 OSA 已经管理 hosts 文件时,rabbitmq 角色不会在 /etc/hosts 文件中重复记录。

23.2.0

升级说明

  • 对于 Ubuntu Focal (20.04) 的小版本升级,将添加 UCA 仓库。 使用 distro 安装方法进行的部署将导致 OpenStack 主要版本升级。

错误修复

  • 修复了 haproxy_frontend_raw 键命名在文档和 service 模板之间不一致的问题。 之前,模板生成期望的是 haproxy_raw 而不是 haproxy_frontend_raw

  • Ubuntu Cloud Archive (UCA) 仓库未正确添加到 Ubuntu 20.04 设置中。

23.1.1

安全问题

23.1.0

错误修复

  • 此版本解决了在从一个操作系统升级到另一个操作系统时,wheels 可能会构建失败的问题。 建议在尝试操作系统升级之前升级到此版本。

23.0.0

序言

从历史上看,Open vSwitch (OVS) 无法直接与 iptables 交互以实现安全组。 因此,OVS 代理和 Compute 服务在每个实例 (VM) 和 OVS 集成桥 br-int 之间使用 Linux 桥来实现安全组。 现在,OVS 代理包含一个可选的防火墙驱动程序,该驱动程序以 OVS 中的流而不是 Linux 桥设备和 iptables 的方式原生实现安全组。 这提高了可扩展性和性能。

新特性

  • 实现了 openstack_hosts_package_manager_extra_conf 变量。 它允许将额外的内容添加到包管理器的配置中(适用于 apt、yum 和 dnf)。

  • 添加了数据库加密的支持。 默认情况下禁用此功能,可以通过将 galera_mariadb_encryption_enabled 设置为 true 来启用。 目前仅支持 file_key_management 加密插件。 您可以使用 galera_encryption_overrides 覆盖加密选项。 该角色会为您创建 galera_db_encryption_keys(如果未指定)。 要指定您自己的加密密钥,请像这样提供它们。

    galera_db_encryption_keys: |
       1;5bbc03648be8db3d2087815717eabdec9fbc310f2b7fd53705b36fbdc80333e3
       2;5bbc03648be8db3d2087815717eabdec9fbc310f2b7fd53705b36ebdc80333e3
    
  • 添加了变量 blazar_policy_overrides,旨在允许使用提供的覆盖来部署 policy.yaml 文件,用于 Blazar 服务。

  • 添加了对 Debian Bullseye 的实验性支持。 使用 distro 包的部署路径目前不可用。

  • 在用于管理 OpenStack Ansible 配置的独立主机上进行部署时,该主机的 ‘/etc/hosts’ 文件现在将包含一个部分,为库存中的所有主机添加主机名到 IP 解析。

  • 在计算 ‘dynamic address fact’ 用于 neutron、nova 和 cinder playbook 时,仅收集最少的事实。 此前,在计算和网络节点上,这需要花费大量时间,并且收集最少的事实将加快速度。 而是为存储、覆盖和管理网络的事实接口收集事实。

  • 添加了变量 security_rhel7_enable_aide,旨在避免安装和初始化与 STIG 相关的 aide。

  • 添加了变量 glance_image_cache_stall_time 以在需要时控制 glance 缓存时间。 默认值为 86400

  • 添加了新的变量 haproxy_hatop_install,允许有条件地启用或禁用 hatop 的安装。

  • 创建了一系列变量 haproxy_*_service,其中包含特定于服务的 haproxy 配置块。 这允许部署者仅选择性地调整特定服务的 haproxy 前端/后端配置,而无需覆盖整个 haproxy_default_services。

  • 实现了 horizon WEBSSO 自动重定向。 添加了以下新变量来管理重定向配置

    • horizon_websso_default_redirect

    • horizon_websso_default_redirect_region

    • horizon_websso_default_redirect_logout

  • 新的变量 ‘keepalived_internal_ping_address’ 和 ‘keepalived_external_ping_address’ 允许部署将 HAProxy 可访问性的生存能力检查与内部和外部网络解耦。 先前的 ‘keepalived_ping_address’ 变量为了向后兼容而保留。

  • 添加了变量 galera_init_overrides,可用于覆盖 mariadb 的默认 systemd 单元文件集。 这也带来了对 systemd_service 角色的要求。

  • 添加了变量 masakari_monitor_corosync_multicast_portsmasakari_monitor_corosync_ipmi_check,允许定义 corosync 服务使用的端口,并在设置了 ipmi RA 的情况下启用 pacemaker 中的 IPMI 检查。

  • 为了使用专用的 net 节点,不再需要覆盖 env.d。 部署者可以将 network-infra_hosts 设置为他们的 infra (LXC) 主机,并将 network-agent_hosts 设置为他们的 net 节点,在 openstack_user_config.yml 或 conf.d 文件中。

  • 重新添加了变量 nova_dhcp_domain,其默认值为 dhcp_domain。 当设置为空字符串时,只有不带域名的主机名将被配置为实例。

  • 您可以通过设置 neutron_firewall_driver: openvswitch 来覆盖 Open vSwitch 的默认 iptables_hybrid 防火墙驱动程序

  • 引入了一个新的 ansible 角色 (ansible-role-pki) 来管理服务器证书和证书颁发机构的创建。 在部署主机上创建了一个自签名根 CA 和中间 CA,并用于为 RabbitMQ 提供 TLS,并使用默认配置为 HAProxy 提供自签名服务器证书。 引入了一组新的变量,前缀为 openstack_pki_*,允许部署者自定义和扩展创建的证书颁发机构集。 根证书颁发机构安装到所有主机和容器的信任存储中,从而形成完整的信任链,而此前从未实现过。

  • 仓库服务器现在可以检索和缓存 upper-constraints 文件,并在构建 python wheel 时根据需要提供它们。 默认情况下,相关版本的 upper-constraints 将从 https://releases.openstack.org/constraints/upper/ 下载,或者来自新的覆盖 user_requirements_git_url。 额外的约束文件可以放置在部署主机上的 /etc/openstack_deploy/upper-constraints 中,这些文件将被复制到仓库服务器,并可用于引用其他覆盖,例如 magnum_upper_constraints_url。 如果目标主机处于隔离环境中,将 requirements_git_repo 设置为空字符串将禁用将 upper-constraints 下载到仓库服务器,并依赖部署者通过部署主机 /etc/openstack_deploy/upper-constraints 目录提供合适的 upper-constraints 副本。

  • 添加了新的变量 openstack_ca_bundle_path,它定义了包含所有系统信任 CA 的 ca-bundle 证书的路径,并将由 Python Requests 模块使用。

  • 添加了变量 openstack_systemd_global_overrides,它定义了所有 systemd 服务的默认设置。 它将被部署到所有主机和容器,但如果需要,可以通过 group_vars 或 host_vars 进行控制。

  • 添加了能够以 systemd 作为共享文件系统挂载 s3fs 的选项。 类型应声明为 ‘fuse.s3fs’,并且应为 systemd_mounts 设置额外的键 ‘credentials’。 S3 url 应放置在选项中。 请遵循 https://github.com/s3fs-fuse/s3fs-fuse#examples 以获取有关 s3fs 的文档。

  • 添加了新的变量 haproxy_stick_table_enabled 到 haproxy_service_configs,允许您有条件地启用或禁用默认的 stick-table。

  • 添加了 systemd_overridessystemd_overrides_only 键到 systemd_services 字典。 通过 systemd_overrides 的帮助,您可以定义 systemd 原生覆盖,这些覆盖将放置在 /etc/systemd/system/service_name.service.d/overrides 中。 systemd_overrides_only 表示不应创建 service_name.service,而仅创建覆盖。

  • 添加了 sockets 键以配置 systemd 服务的 systemd-sockets。

  • 添加了变量 keepalived_sysctl_tcp_retries,允许控制内核放弃连接的重试次数。 它控制 net.ipv4.tcp_retries2 sysctl 设置,其默认值为 15。 keepalived_sysctl_tcp_retries 的默认值为 8,因此 VIP 故障转移时间约为 1 分钟。 将 keepalived_sysctl_tcp_retries 设置为 0 将删除上述 sysctl 设置。

  • 将访客镜像上传功能添加到 Trove 角色中。 为了使用此功能,您需要定义 trove_guestagent_images 变量,其中可能包含需要上传的镜像列表以及为它们设置所需的标签。

  • 添加了变量 trove_management_security_groups 以设置 Trove 访客实例的管理接口的安全组列表。

  • 添加了以下变量以控制 trove 将在目录中搜索的端点类型

    • trove_service_endpoint_type

    • trove_service_neutron_endpoint_type

    • trove_service_cinder_endpoint_type

    • trove_service_nova_endpoint_type

    • trove_service_glance_endpoint_type

    • trove_service_swift_endpoint_type

    • trove_guest_endpoint_type

  • 添加了以下变量以控制何时将特定的服务块添加到配置文件并启用这些服务

    • trove_swift_enabled

    • trove_designate_enabled

    • trove_cinder_enabled

  • 添加了以下变量以简化 designate 与 trove 的集成

    • trove_dns_domain_name

    • trove_dns_domain_id

    • trove_notifications_designate

  • 添加了 Trove 访客特定变量,以便能够使用独立的 rabbitmq,以及默认行为,以使访客能够使用 trove_container_net_name 用于 rabbitmq 服务器

    • trove_guest_oslomsg_rpc_hostgroup

    • trove_guest_oslomsg_notify_hostgroup

  • 向 Zun 计算虚拟环境添加了一个 ‘zun-docker-cleanup’ 脚本,该脚本可用于清理计算主机上缓存的 Docker 镜像。 可以通过设置 ‘zun_docker_prune_images’ 变量按计时器运行,或通过将 ‘–force’ 添加到脚本手动执行。

  • 添加了变量 zun_policy_overrides,旨在允许使用提供的覆盖来部署 policy.yaml 文件,用于 Zun 服务。

已知问题

  • 当单个 OSA 部署主机用于管理多个部署时,某些委托的 Ansible 任务使用主机名而不是 IP 地址执行,这是由于 Ansible 问题 72776 造成的。 主机名(例如 ‘infra1’)将是模棱两可的,因此建议为每个部署使用单独的主机。

升级说明

  • 在 ml2 插件中添加了 subnet_dns_publish_fixed_ip 选项扩展。 subnet-dns-publish-fixed-ip 扩展为子网资源定义添加了一个新的属性。 如果设置为 true,它将允许发布固定 IP 的 DNS 记录。

  • 为了适应 Centos-8 Stream 的支持,有必要要求 Centos-8 Classic 的最低版本为 8.3。 在 Stream 和 Classic 版本 8.3 之前存在破坏性更改,这些更改会破坏检测 Centos 主要/次版本的 ansible 代码。 在升级到 Wallaby 之前,部署者应确保其 Centos 主机已更新到 8.3。

  • 变量 cinder_enable_v2_api 默认设置为 False。 这将导致升级期间从 keystone 目录中删除 Cinder v2 API。 如果您想保留 v2 API,则必须在 user_variables.yml 中覆盖 cinder_enable_v2_api

  • 对于 Designate designate_pool_uuid 在 os_designate 角色中被硬编码。 现在它在 secrets.yml 中动态生成,并且每个部署都是唯一的。 但是,在升级之前,您必须将 designate_pool_uuid 设置为当前的 uuid。 它很可能是 794ccc2c-d751-44fe-b57f-8894c9f5c842,因为该值在角色中默认,并且除非显式覆盖,否则将保持不变。 您可以使用命令 /openstack/venvs/designate-20.1.1.dev7/bin/designate-manage pool show_config 检查您的池 uuid,该命令应从 Designate venv 执行。

  • 在计算 ‘dynamic address fact’ 用于 neutron、nova 和 cinder playbook 时,仅收集最少的事实。 如果使用覆盖来设置 neutron 隧道地址,或各种存储或管理地址,这些地址依赖于 ansible 事实收集来提供形式为 ansible_<interface> 的变量,那么这些事实可能不再默认收集。 新变量 dynamic_address_gather_filter 可用于指定 shell 样式的 (fnmatch) 通配符,以指定在 neutron/nova/cinder playbook 早期收集的事实集。

  • Galera 权限用户名已从 root 更改为 admin。 升级过程后可以删除旧的 ‘root’@’%’ 用户。

  • MariaDB 版本 10.5.9 已知存在 bug,该 bug 会导致升级后 root 权限损坏。 我们已经实施了一个解决方法,该解决方法将自动触发。 此注释仅供参考。

  • gnocchi_service_project_name 现在设置为 service,即使对于涉及 Swift 的部署也是如此。 如今,cielometer.middleware 默认排除 service 项目,因此不需要额外的保护。 如果您想保留当前的 gnocchi_service_project_name,请在 user_variables.yml 中将其定义为等于 gnocchi_swift

  • 移除了变量 haproxy_hatop_downloader,部署者应该使用 haproxy_hatop_download_url 覆盖,以便在互联网连接受限的部署中安装。

  • HAProxy haproxy_whitelist_networks 键在 haproxy_service_configs 字典中已被 haproxy_allowlist_networks 替换。

  • 变量 cinder_service_internaluri_insecure 已被 keystone_service_internaluri_insecure 替换,后者用于所有角色,用于完全相同的目的。

  • 现在,所有受支持的操作系统都在 lxc 容器主机上本地构建 LXC 镜像,而不是依赖于外部预构建的基本镜像。 debootstrap 和 dnf 用于 Debian 和 CentOS 变体,分别。 所有控制下载镜像的变量都已从 lxc_hosts 角色中删除,并添加了一个新的覆盖 lxc_apt_mirror,以允许指定 debootstrap 的本地镜像。 CentOS 系统将在使用 dnf 构建容器根文件系统时使用主机上已存在的镜像配置。

  • 在升级过程中,您当前的 Nova cell 映射将被转换为使用 Template URLs。这意味着,您对 nova.conf 中的 transport_url 或 [database]/connection 的更改将立即在 nova-conductor 中反映到 cells 中,只需重启服务即可,无需显式运行 nova-manage cell_v2 update_cell

  • 将此功能引入到空的计算节点,并在代理重启后迁移虚拟机。

  • 现在强制使用可验证的 SSL 证书和证书颁发机构信任链进行 RabbitMQ 安装。这可以通过新的 ansible role ansibe-role-pki 结合适当的 openstack_pki_* 变量自动实现。任何现有部署使用 rabbitmq_user_ssl_* 变量的,必须确保提供的证书可以被安装在每个主机和容器信任存储中的 CA 证书验证。可以通过在部署主机上提供 CA 证书,并使用 openstack_hosts role 的覆盖来安装它来实现。

  • openstack-ansible 的 Wallaby 版本不支持在 nspawn 容器中部署控制平面。

  • 如果部署使用 openstack requirements repo 或 upper-constraints 文件的本地副本或缓存,则 repo 服务器现在能够原生托管相关的 upper-constraints 文件,并在 wheel 构建期间将其提供给 pip。现在也可以在部署主机 /etc/openstack_deploy/upper-constraints 目录中提供自定义约束文件。部署者应考虑 repo 服务器的新功能,并调整他们可能通过覆盖进行的任何特殊 upper-constraints 下载处理,特别是 requirements_git_url。

  • cloudkitty_package_state 继承 package_state 并且默认值为“latest”。

  • cloudkitty_uwsgi_bind_address 继承 openstack_service_bind_address 并且默认值为 0.0.0.0

  • cloudkitty_galera_port 继承 galera_port 并且默认值为“3306”。

  • cloudkitty_service_region 继承 service_region 并且默认值为“RegionOne”。

  • Trove 服务特定的配置文件,例如 trove-conductor.conftrove-taskmanager.conf,已被删除,所有功能都合并到 trove.conf 文件中。因此,您需要确保所有覆盖的选项现在都放置在 trove.conf 文件中。

  • 默认 Trove 服务用户名已从 admin_trove_user 更改为 trove。您可能需要在升级后手动删除 admin_trove_user 或覆盖新的默认值。

  • 默认 Trove 服务项目名称已从 trove_for_trove_usage 更改为 service。您可能需要在升级后手动删除 trove_for_trove_usage 项目或覆盖新的默认值。

  • 默认值 trove_service_net_subnet_cidr 已从“192.168.20.0/24”更改为“172.29.252.0/22”。同时,池的起始和结束值也已更改,分别由变量 trove_service_net_allocation_pool_starttrove_service_net_allocation_pool_end 表示。如果您在生产环境中使用了默认值,请在 user_variables 中定义这些变量。

弃用说明

  • 以下变量已被弃用,将不再生效。

    • haproxy_ssl_cert_path

    • haproxy_ssl_key

    • haproxy_ssl_pem

    • haproxy_ssl_ca_cert

    这些变量负责 haproxy 在目标主机上查找证书的路径。

    变量已被 haproxy_ssl_cert_path 替换,因为证书的实际路径将根据用于前端的 VIP 动态设置。

  • 变量 masakari_policy_json_overrides 已被弃用,转而使用 masakari_policy_overrides,将在 X 版本之后删除。目前,masakari_policy_overrides 默认值为 masakari_policy_json_overrides 以保持兼容性。

  • 自定义 PowerVM 代码已被删除,因为它未经测试。可以使用以下设置替换该代码:

    neutron_firewall_driver: openvswitch

  • 变量 nova_novncproxy_agent_enablednova_serialconsoleproxy_enablednova_console_agent_enabled 已被删除,将来将不再生效。如果您想禁用控制台功能,请在 user_variables.yml 中设置 nova_console_type: disabled

  • 变量 haproxy_ssl_self_signed_regenhaproxy_ssl_self_signed_subject 已被删除,应使用 ansible-role-pki 变量中的等效功能。

  • 移除了 octavia_amp_image_id 选项,因为 Octavia 中的相应配置选项 amp_image_id 已被弃用,应该使用镜像标签代替。

  • tempest_test_whitelist 重命名为 tempest_test_includelist,将 tempest_test_blacklist 重命名为 tempest_test_excludelist。依赖项目应更新以使用新的变量。

  • 由于现在使用 PKI role 处理证书和 CA 分发,因此变量 openstack_host_ca_location 已被弃用并删除。

  • 由于最近的 Open vSwitch 版本中内置了对 NSH 的支持,因此使用变量 ovs_nsh_support 的 Open vSwitch dataplate 支持已被立即弃用并删除。以前的 PPA 提供了 OVS 2.9 的自定义版本,这对于 OSA 和各自操作系统的最新版本不再适用。

  • cloudkitty_collected_services 已被弃用,应在 Cloudkitty 度量配置中进行配置。

  • 变量 swift_gnocchi_enabled 已被删除,将不再生效。

  • 变量 trove_taskmanager_config_overridestrove_conductor_config_overrides 已被删除,以及受影响的配置文件。您应该使用 trove_config_overrides 来覆盖 trove 配置。

  • 删除了变量 trove_provider_ip_from_qtrove_container_net_name。如果您需要更改将在 trove 容器内部用于访客的网络,请使用变量 trove_provider_networktrove_provider_net_iface

  • 删除了变量 trove_admin_user_nametrove_service_tenant_name。请相应地使用 trove_service_user_nametrove_service_project_name 来管理将在 keystone 中用于身份验证的用户名和项目名称。

关键问题

  • 此功能需要内核和用户空间对 conntrack 的支持,因此需要 Linux 内核和 Open vSwitch 的最低版本。所有情况都需要 Open vSwitch 版本 2.5 或更高版本。内核版本 4.3 或更高版本包含 conntrack 支持。内核版本 3.3,但低于 4.3,不包含 conntrack 支持,需要构建 OVS 模块。

错误修复

  • 修复了变量 nova_spice_console_agent_enabled 的行为。现在可以安全地使用它来在需要时禁用 spice 代理。

其他说明

  • 为了弃用这些部署场景和相关代码,已删除了 OpenDaylight、SFC 和 OVS w/ NSH 的门控作业。