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_repo和rally_openstack_git_install_branch,允许覆盖 rally-openstack 包的安装源以及控制安装包的版本。
安全问题¶
MariaDB 已默认更新到版本 10.5.16。 这涵盖了以下 CVE:
其他说明¶
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¶
安全问题¶
此版本消除了以下安全问题
OSSA-2021-005: https://security.openstack.org/ossa/OSSA-2021-005.html
OSSA-2021-006: https://security.openstack.org/ossa/OSSA-2021-006.html
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_ports和masakari_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_overrides 和 systemd_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.conf和trove-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_start和trove_service_net_allocation_pool_end表示。如果您在生产环境中使用了默认值,请在 user_variables 中定义这些变量。
弃用说明¶
以下变量已被弃用,将不再生效。
haproxy_ssl_cert_pathhaproxy_ssl_keyhaproxy_ssl_pemhaproxy_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_enabled、nova_serialconsoleproxy_enabled和nova_console_agent_enabled已被删除,将来将不再生效。如果您想禁用控制台功能,请在 user_variables.yml 中设置nova_console_type: disabled。
变量 haproxy_ssl_self_signed_regen 和 haproxy_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_overrides和trove_conductor_config_overrides已被删除,以及受影响的配置文件。您应该使用trove_config_overrides来覆盖 trove 配置。
删除了变量
trove_provider_ip_from_q和trove_container_net_name。如果您需要更改将在 trove 容器内部用于访客的网络,请使用变量trove_provider_network或trove_provider_net_iface。
删除了变量
trove_admin_user_name和trove_service_tenant_name。请相应地使用trove_service_user_name和trove_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 的门控作业。