Stein 系列发布说明¶
19.1.7¶
安全问题¶
MariaDB 版本更新至 10.3.25,解决了 CVE-2020-2574
错误修复¶
修复了 ceph_client 角色在 distro 安装中的问题
由于 Ubuntu 已经放弃了旧的基础镜像,导致所有之前的标签都已损坏,因此我们切换为始终下载最新的可用基础镜像。这应该保证我们只检索相关的镜像。
19.1.2¶
弃用说明¶
Fedora 不再在 CI 中为每次提交进行测试。
19.1.1¶
新特性¶
如果定义了变量``ceph_keyrings_dir``,则从文件中获取 ceph 密钥环。目录中的所有文件都必须具有
.keyring扩展名,并以其对应的ceph_client名称命名。例如,如果cinder_ceph_client是cinder,则 cinder 密钥环文件必须命名为cinder.keyring。每个文件必须包含用户名和密钥,仅此而已,以下是 cinder.keyring 内容的示例。[client.cinder] key = XXXXXXXXXXX
19.0.10¶
已知问题¶
journald-remote 在 setup-infrastructure 内部的执行被禁用,直到 https://github.com/systemd/systemd/issues/2376 包含在当前的 systemd 包中。可以通过将
journald_remote_enabled设置为True来启用该 playbook
升级说明¶
journald-remote playbook 在 setup-infrastructure 内部的执行被禁用,直到将
journald_remote_enabled设置为True,因为 https://github.com/systemd/systemd/issues/2376
19.0.7¶
新特性¶
您可以为 epel 设置私有仓库,必须使用
repo_centos_epel_mirror作为仓库 URL,如果需要从内网或镜像获取 GPG 密钥,请使用repo_centos_epel_key作为 gpg 密钥位置。
添加了禁用仪表板中 openrc v2 下载的可能性。新的变量
horizon_show_keystone_v2_rc可以设置为False以删除 openrc v2 下载的条目。
19.0.4¶
新特性¶
传递给 openstack-ansible 的 –extra-vars 标志现在优先于 user-variables*.yml。
安全问题¶
需求版本已更新以引入 os-vif 1.15.2,其中包含 OSSA-2019-004 / CVE-2019-15753 的修复。使用 linuxbridge 网络(openstack-ansible 中的默认设置)的运营商应立即更新。修复后的软件包将在使用 os-nova-install.yml playbook 重新部署 nova 时安装在 nova venv 中。之后,使用
brctl showstp <bridge name>验证 neutron 控制的 linux bridge 上的老化计时器显示为“300.00”而不是“0.00”。
19.0.2¶
新特性¶
如果您使用 Ceph 作为后端存储,Cinder 将默认启用 Active-Active。
已知问题¶
以前跨所有部署使用通用的 backend_host 的方式不被 Cinder 团队推荐,并且会导致重复消息,从而在环境中引起问题。
升级说明¶
您可能需要使用 cinder-manage 命令将卷迁移到特定的主机。此外,您将需要删除旧的
rbd:volumes服务,该服务将是陈旧的。
19.0.0¶
新特性¶
已添加在 Ubuntu 18.04 LTS 主机上部署的支持。最显著的变化是 LXC 的主要版本增量,从 2.x 增加到 3.x,这弃用了先前在容器配置文件中使用的某些元素。
可以通过使用
glance_cors_allowed_origin变量指定允许的来源地址来配置 Glance 以允许跨域请求。默认情况下,这将是负载均衡器的地址。
os_horizon 角色现在支持 horizon manila-ui 仪表板。可以通过在
/etc/openstack_deploy/user_variables.yml中将horizon_enable_manila_ui设置为True来启用仪表板。
已添加实验性支持,以允许在存在于 host group
masakari-infra_hosts中的主机上部署 OpenStack Masakari 服务。
添加了对 Mistral 在 repo 构建过程中构建的支持。
添加了
os-mistral-install.yml文件,以将 mistral 部署到标记为 hostgroupmistral_all的主机。
此角色现在可以选择启用计算节点的 KVM 内核模块嵌套虚拟化功能,方法是将 nova_nested_virt_enabled 设置为 true。根据您的发行版和 libvirt 版本,您可能需要设置其他变量才能完全启用嵌套虚拟化。有关详细信息,请参阅 https://docs.openstack.org/nova/2025.2/admin/configuration/hypervisor-kvm.html#nested-guest-support。
现在可以使用 nova_nfs_client 变量使用 NFS 挂载点,这对于使用 NFS 作为实例数据和保存很有用。
os_tempest角色现在可以通过将tempest_install_method设置为distro从发行版包安装。
引入了新的变量
tempest_workspace以设置 tempest 工作区的路径。
默认 tempest 配置文件的位置现在是
/etc/tempest/tempest.conf,而不是以前的默认位置$HOME/.tempest/etc。
keystone 中 aodh 的服务设置现在将通过委托给
aodh_service_setup_host来执行,默认情况下为localhost(部署主机)。部署者可以选择将其更改为实用程序容器,方法是在user_variables.yml中实施以下覆盖。aodh_service_setup_host: "{{ groups['utility_all'][0] }}"
keystone 中 barbican 的服务设置现在将通过委托给
barbican_service_setup_host来执行,默认情况下为localhost(部署主机)。部署者可以选择将其更改为实用程序容器,方法是在user_variables.yml中实施以下覆盖。barbican_service_setup_host: "{{ groups['utility_all'][0] }}"
在 tempest_test_blacklist ansible 变量中添加了 launchpad 和 bugzilla 密钥。开发人员必须能够追踪为什么测试被插入到 skiplist 中,其中一种方法是通过 bug。此功能在 os_tempest 的跳过测试列表中添加了有关此信息。
blazar 仪表板在 Horizon 中可用。部署者可以通过设置以下 Ansible 变量来启用面板
horizon_enable_blazar_ui: True
keystone 中 ceilometer 的服务设置现在将通过委托给
ceilometer_service_setup_host来执行,默认情况下为localhost(部署主机)。部署者可以选择将其更改为实用程序容器,方法是在user_variables.yml中实施以下覆盖。ceilometer_service_setup_host: "{{ groups['utility_all'][0] }}"
现在可以使用
security_ntp_server_options修改 chrony 中的 NTP 服务器选项。
Chrony 获得了一个新的配置选项,可以使用
security_ntp_sync_rtc变量将系统时钟同步回 RTC。默认情况下禁用。
keystone 中 cinder 的服务设置现在将通过委托给
cinder_service_setup_host来执行,默认情况下为localhost(部署主机)。部署者可以选择将其更改为实用程序容器,方法是在user_variables.yml中实施以下覆盖。cinder_service_setup_host: "{{ groups['utility_all'][0] }}"
cloudkitty 仪表板在 Horizon 中可用。部署者可以通过设置以下 Ansible 变量来启用面板
horizon_enable_cloudkitty_ui: True
Cinder 调度器的已启用过滤器列表,scheduler_default_filters 在 cinder.conf 中,先前只能通过
cinder_cinder_conf_overrides中的条目定义。现在,您可以选择定义一个列表变量,cinder_scheduler_default_filters,该变量定义了启用的过滤器。如果想要禁用默认启用的过滤器(撰写本文时,这些过滤器为 AvailabilityZoneFilter、CapacityFilter 和 CapabilitiesFilter),或者相反地,想要添加通常未启用的过滤器,例如 DifferentBackendFilter 或 InstanceLocalityFilter,这将很有帮助。例如,要启用 InstanceLocalityFilter 以及通常启用的调度器过滤器,请使用以下变量。
cinder_scheduler_default_filters: - AvailabilityZoneFilter - CapacityFilter - CapabilitiesFilter - InstanceLocalityFilter
已添加选项
repo_venv_default_pip_packages,该选项将允许部署者根据需要将任何软件包插入服务 venv。该选项期望一个字符串列表,这些字符串是 PYPI 中找到的有效 python 包名称。
nova 配置已更新,以始终指定 LXD 存储池名称,当“nova_virt_type”为“lxd”时。变量“lxd_storage_pool”默认值为“default”,即 LXD 默认存储池名称。引入了新的变量“lxd_init_storage_pool”,它指定基础存储池名称。“lxd_init_storage_pool”由 lxd init 在设置存储池时使用。如果未提供,lxd init 将完全不使用此参数。有关存储池参数的更多信息,请参阅 lxd man 页面。
keystone 中 designate 的服务设置现在将通过委托给
designate_service_setup_host来执行,默认情况下为localhost(部署主机)。部署者可以选择将其更改为实用程序容器,方法是在user_variables.yml中实施以下覆盖。designate_service_setup_host: "{{ groups['utility_all'][0] }}"
比较配置前后字典变量,以确定配置键或值是否已更改,从而不会错误地将仅更改了顺序的文件标记为已更改。
将 diff 返回变量设置为应用于更改的字典。
os_horizonrole 现在支持分发用户自定义主题。部署人员可以使用horizon_custom_themes字典的新键theme_src_archive来提供存档主题的绝对路径。仅支持 .tar.gz、.tgz、.zip、.tar.bz、.tar.bz2、.tbz、.tbz2 存档。存档内的结构应为标准主题,没有前导文件夹。
Python-tempestconf 是一种基于 openstack 安装的凭据生成 tempest.conf 文件的工具。它使用 openstack 的可发现 api 来检查服务、功能等。
添加了使用 python-tempestconf 工具生成 tempest.conf 文件,而不是使用角色模板的可能性。
Octavia 正在创建虚拟机、安全组和其他内容在其项目中的。在大多数情况下,默认配额不够大。这将调整它们为 (可配置的) 合理值。
当 glance_default_store 设置为 file 并且未使用 nfs 时,Glance 容器现在将从主机绑定挂载默认 glance 缓存目录。通过此更改,glance 文件缓存大小不再受容器文件系统大小的限制。
keystone 中 glance 的服务设置现在将通过委托给
glance_service_setup_host来执行,默认情况下为localhost(部署主机)。部署者可以选择将其更改为实用程序容器,方法是在user_variables.yml中实施以下覆盖。glance_service_setup_host: "{{ groups['utility_all'][0] }}"
keystone 中 gnocchi 的服务设置现在将通过委托给
gnocchi_service_setup_host来执行,默认情况下为localhost(部署主机)。部署者可以选择将其更改为实用程序容器,方法是在user_variables.yml中实施以下覆盖。gnocchi_service_setup_host: "{{ groups['utility_all'][0] }}"
keystone 中 heat 的服务设置现在将通过委托给
heat_service_setup_host来执行,默认情况下为localhost(部署主机)。部署者可以选择将其更改为实用程序容器,方法是在user_variables.yml中实施以下覆盖。heat_service_setup_host: "{{ groups['utility_all'][0] }}"
keystone 中 horizon 的服务设置现在将通过委托给
horizon_service_setup_host来执行,默认情况下为localhost(部署主机)。部署者可以选择将其更改为实用程序容器,方法是在user_variables.yml中实施以下覆盖。horizon_service_setup_host: "{{ groups['utility_all'][0] }}"
Horizon 自 OSA 诞生以来,一直以启用 HTTPS 访问的方式部署,并且没有关闭它的方法。某些用例可能希望通过 HTTP 访问,因此此补丁启用了以下功能。
通过负载均衡器通过 HTTPS 侦听,但通过 horizon 主机通过 HTTP 侦听,并让负载均衡器转发正确的标头。由于负载均衡器的存在,它将在集成构建中默认执行此操作,因此保留了当前行为。
在没有负载均衡器的情况下,在 horizon 主机上启用 HTTPS。这是角色的默认行为,与它一直以来所做的一样。
通过设置
haproxy_ssl: no(这将禁用 haproxy 上的 https)完全禁用 HTTPS。此设置默认情况下被新的horizon_enable_ssl变量继承。这是一个新选项。
keystone 中 ironic 的服务设置现在将通过委托给
ironic_service_setup_host来执行,默认情况下为localhost(部署主机)。部署者可以选择将其更改为实用程序容器,方法是在user_variables.yml中实施以下覆盖。ironic_service_setup_host: "{{ groups['utility_all'][0] }}"
keystone 的服务更新现在将通过委托给
keystone_service_setup_host来执行,默认情况下为localhost(部署主机)。部署者可以选择将其更改为实用程序容器,方法是在user_variables.yml中实施以下覆盖。keystone_service_setup_host: "{{ groups['utility_all'][0] }}"
如果 OSA 安装的 Horizon 仪表板具有公共 FQDN,现在可以使用 LetsEncrypt 证书服务。证书将在 HAProxy 安装中生成,并设置每日更新证书的 cron 条目。请注意,此时没有证书分发实现,因此这仅适用于单个 haproxy-server 环境。
keystone 中 magnum 的服务设置现在将通过委托给
magnum_service_setup_host来执行,默认情况下为localhost(部署主机)。部署者可以选择将其更改为实用程序容器,方法是在user_variables.yml中实施以下覆盖。magnum_service_setup_host: "{{ groups['utility_all'][0] }}"
不再将镜像下载到 magnum API 服务器,而是将镜像下载到
magnum_service_setup_host的文件夹中,该文件夹由magnum_image_path_owner拥有。
ceph_client 角色现在将查找并配置 manila 服务以与 ceph 和 cephfs 协同工作。
masakari 仪表板在 Horizon 中可用。部署者可以通过设置以下 Ansible 变量来启用面板
horizon_enable_masakari_ui: True
os_masakari角色现在涵盖监视器的安装和配置,完成了完整的服务配置。
现在可以为部署者启用或禁用 mysqlcheck 功能。已添加布尔选项 galera_monitoring_check_enabled,其默认值为 true。
现在可以更改 mysqlcheck 使用的端口。已添加整数选项 galera_monitoring_check_port,其默认值为 9200。
Neutron 服务功能链扩展 (SFC) 可以选择性地部署和配置,方法是定义以下服务插件
flow_classifiersfc
neutron_plugin_base: - router - metering - flow_classifier - sfc
有关 Neutron 中 SFC 的更多信息,请参阅以下内容
provider_networks库已更新,以支持定义可以在部署期间自动添加到 OVS 提供商桥接端口的网络接口。要激活此功能,请将network_interface键添加到openstack_user_config.yml中的相应 flat 和/或 vlan 提供商网络定义中。有关更多信息,请参阅最新的 Open vSwitch 部署指南。
keystone 中 neutron 的服务设置现在将通过委托给
neutron_service_setup_host来执行,默认情况下为localhost(部署主机)。部署者可以选择将其更改为实用程序容器,方法是在user_variables.yml中实施以下覆盖。neutron_service_setup_host: "{{ groups['utility_all'][0] }}"
VPNaaS 仪表板再次在 Horizon 中可用。部署者可以通过设置以下 Ansible 变量来启用面板
horizon_enable_neutron_vpnaas: True
可以使用的覆盖
rabbitmq_memory_high_watermark用于设置在触发垃圾回收之前,erlang 虚拟机允许的最大大小。默认值降低到0.2,从0.4,因为垃圾回收操作期间可能需要分配量的 2 倍。这可能导致相当于使用0.4,导致内存使用量达到 40%,这对于 rabbitMQ 容器可见。原始默认设置0.4可能导致 rabbitMQ 内存分配达到 80%,可能导致底层 Linux 内核由于虚拟内存不足而杀死进程。
已添加一个新选项,允许部署者禁用给定主机上的所有容器。选项 no_containers 是一个布尔值,如果未定义,则默认值为 false。此选项可以添加到 openstack_user_config.yml 或通过 conf.d 中的覆盖中添加的任何主机。当此选项设置为 true 时,给定主机将被视为裸机。
log_hosts: infra-1: ip: 172.16.24.2 no_containers: true
现在可以设置 Libvirt CPU 模型和功能标志,方法是使用
nova_virt_types字典变量(通常为kvm)下的相应条目。nova_cpu_model是一个字符串值,用于设置 CPU 模型;如果将任何nova_cpu_mode设置为custom以外的值,则将忽略此值。nova_cpu_model_extra_flags是一个列表,允许您指定使用host-model或您选择的customCPU 模型通常不会传递的额外的 CPU 功能标志。
keystone 中 nova 的服务设置现在将通过委托给
nova_service_setup_host来执行,默认情况下为localhost(部署主机)。部署者可以选择将其更改为实用程序容器,方法是在user_variables.yml中实施以下覆盖。nova_service_setup_host: "{{ groups['utility_all'][0] }}"
keystone 中 octavia 的服务设置现在将通过委托给
octavia_service_setup_host来执行,默认情况下为localhost(部署主机)。部署者可以选择将其更改为实用程序容器,方法是在user_variables.yml中实施以下覆盖。octavia_service_setup_host: "{{ groups['utility_all'][0] }}"
该角色现在支持使用发行版包来获取 OpenStack 服务,而不是 pip 包。默认情况下禁用此功能,可以通过简单地将
nova_install_method变量设置为distro来启用此功能。
该角色现在支持使用 OpenStack 服务的发行版软件包,而不是 pip 软件包。此功能默认禁用,可以通过简单地将
neutron_install_method变量设置为distro来启用。
该角色现在支持使用发行版包来获取 OpenStack 服务,而不是 pip 包。默认情况下禁用此功能,可以通过简单地将
nova_install_method变量设置为distro来启用此功能。
部署者现在可以使用选项
public设置为 true 或 false,显式地将 cinder 后端卷类型定义为私有或公共。
支持为 RPC 和通知使用单独的 oslo.messaging 服务,以便在 trove 中运行单独且不同的消息传递后端服务器。
支持为 RPC 和通知使用单独的 oslo.messaging 服务,以便在 barbican 中运行单独且不同的消息传递后端服务器。
支持为 RPC 和通知使用单独的 oslo.messaging 服务,以便在 aodh 中运行单独且不同的消息传递后端服务器。
支持为 RPC 和通知使用单独的 oslo.messaging 服务,以便在 ceilometer 中运行单独且不同的消息传递后端服务器。
支持为 RPC 和通知使用单独的 oslo.messaging 服务,以便在 designate 中运行单独且不同的消息传递后端服务器。
支持为 RPC 和通知使用单独的 oslo.messaging 服务,以便在 magnum 中运行单独且不同的消息传递后端服务器。
支持为 RPC 和通知使用单独的 oslo.messaging 服务,以便在 swift 中运行单独且不同的消息传递后端服务器。
支持为 RPC 和通知使用单独的 oslo.messaging 服务,以便在 octavia 中运行单独且不同的消息传递后端服务器。
添加了两个新的变量用于所有组 - oslomsg_notify_policies 和 oslomsg_rpc_policies。这些变量包含默认的 rabbitmq 策略,这些策略将应用于每个 rabbitmq vhost。目前,它们将为所有 vhost 启用 [HA 模式](https://rabbitmq.cn/ha.html)。如果您想禁用 HA 模式,只需在 user_config.yml 中将这些变量设置为空列表即可。
当相关代理或 OVN 控制器部署在裸机上时,Neutron 提供程序网络定义不再需要
container_interface提供程序网络选项。
keystone 中 sahara 的服务设置现在将通过委托给
sahara_service_setup_host来执行,默认情况下为localhost(部署主机)。部署者可以选择将其更改为实用程序容器,方法是在user_variables.yml中实现以下覆盖。sahara_service_setup_host: "{{ groups['utility_all'][0] }}"
keystone 中 swift 的服务设置现在将通过委托给
swift_service_setup_host来执行,默认情况下为localhost(部署主机)。部署者可以选择将其更改为实用程序容器,方法是在user_variables.yml中实现以下覆盖。swift_service_setup_host: "{{ groups['utility_all'][0] }}"
tacker 仪表板在 Horizon 中可用。部署者可以通过设置以下 Ansible 变量来启用该面板
horizon_enable_tacker_ui: True
keystone 中 tempest 的服务设置现在将通过委托给
tempest_service_setup_host来执行,默认情况下为localhost(部署主机)。部署者可以选择将其更改为实用程序容器,方法是在user_variables.yml中实现以下覆盖。tempest_service_setup_host: "{{ groups['utility_all'][0] }}"
不再使用硬编码的项目和用户集,现在可以使用变量
tempest_projects和tempest_users配置 tempest。
现在可以使用变量
tempest_test_blacklist指定 tempest 在执行时要黑名单的测试列表。
调用
config_template任务时,可以使用变量default_section指定 ini 文件中的默认部分。默认值为DEFAULT。
keystone 中 trove 的服务设置现在将通过委托给
trove_service_setup_host来执行,默认情况下为localhost(部署主机)。部署者可以选择将其更改为实用程序容器,方法是在user_variables.yml中实现以下覆盖。trove_service_setup_host: "{{ groups['utility_all'][0] }}"
MariaDB 版本已升级到 10.2
MariaDB 版本已升级到 10.2
galera_server角色现在使用 mariabackup 来完成 SST 操作,因为这是 MariaDB 推荐的选择。
galera_server角色现在附带最新的 MariaDB 版本 10.3.13。
watcher 仪表板在 Horizon 中可用。部署者可以通过设置以下 Ansible 变量来启用该面板
horizon_enable_watcher_ui: True
zun 仪表板在 Horizon 中可用。部署者可以通过设置以下 Ansible 变量来启用该面板
horizon_enable_zun_ui: True
已知问题¶
由于 Ceph 中 backend_host 的定义方式发生变化,所有 Cinder 卷都将在相同的后端名称下重新启动。这意味着先前分配给托管卷的主机或容器将不再可管理。解决方法是使用 cinder-manage volume update_host 命令将这些卷移动到新的后端主机。此已知问题将很快通过升级 playbook 解决。
虽然
ceph-rgwplaybook 启用了 Swift 对象版本控制,但 radosgw 中的支持目前仅限于在容器上设置X-Versions-Location。由原生 Swift 理解的X-History-Location当前不受 radosgw 支持(尽管该功能正在上游等待中)。
可用 inotify 监视实例的数量受系统范围内的 sysctl 设置限制。某些进程,例如 pypi-server 或来自 ops 仓库的 elasticsearch,可能会消耗大量 inotify 监视实例。如果达到系统范围内的最大值,则主机或主机上的任何容器中的任何进程都将无法创建新的 inotify 监视实例。Systemd 使用 inotify 监视实例,如果没有可用实例,则无法重启服务。同步仓库服务器内容的进程也依赖于 inotify 监视实例。如果仓库服务器无法同步,或者服务未按预期重启,请检查在 fs.inotify.max_user_watches 中定义的 inotify 监视实例限制。已经合并了补丁来增加这些限制,但是对于现有环境或尚未升级到足够新点发布的那些环境,可能需要手动应用增加的限制。
我们将受限的 tarred 目录备份数量为 15,并且更改仅在配置发生变化时才应用备份。这些更改是为了解决大型集群上并行运行时目录损坏的问题。
在使用连接插件的
container_user选项时,ansible_remote_tmp应该设置为系统可写路径,例如 ‘/var/tmp/’。
升级说明¶
从 Xenial 升级到 Bionic 的受支持路径是通过重新安装所有节点的宿主机操作系统并重新部署所需的服务的。OSA 的 Rocky 分支旨在作为从 Xenial 升级到 Bionic 的过渡点。目前不支持就地操作系统升级(通常通过
do-release-upgrade)。
在 Stein 中,Cinder 停止支持在没有完整类路径的情况下配置备份驱动程序。这意味着现在必须使用以下值来配置
cinder_service_backup_driver。cinder.backup.drivers.swift.SwiftBackupDrivercinder.backup.drivers.ceph.CephBackupDriver
如果您不进行此更改,Cinder 备份服务将无法正确启动。
已更新
tempest_test_blacklist的数据结构,以添加与正在跳过的测试关联的 launchpad 和/或 bugzilla 链接。
ceph-rgwplaybook 现在设置rgw_swift_account_in_url = true并相应地更新相应的 Keystone 服务目录条目。不依赖服务目录查找的应用程序(例如监控脚本)必须使用包含AUTH_%(tenant_id)s的新端点 URL 进行更新,就像原生 Swift 一样——或者,应该更新为毕竟尊重服务目录。
ceph-rgwplaybook 现在设置rgw_swift_versioning_enabled = true,为object-store服务添加对象版本控制支持。
已更改
chrony.conf中的默认 NTP 服务器选项。offline选项已被删除,minpoll/maxpoll已被删除以支持上游默认值,同时添加了iburst选项以加快初始时间同步。
变量 cinder_iscsi_helper 已被新的变量 cinder_target_helper 替换,因为 iscsi_helper 在 Cinder 中已被弃用。
galera_client_gpg_keys的数据结构已更改为字典,直接传递给适用的 apt_key/rpm_key 模块。因此,需要检查任何覆盖,以确保它们不会传递任何导致模块失败的键/值对。
galera_client_gpg_keys的默认值已更改为所有受支持的平台,将使用提供的密钥。这意味着任务执行将不再访问互联网以添加密钥,从而使离线或基于代理的安装更容易可靠。
galera_gpg_keys的数据结构已更改为字典,直接传递给适用的 apt_key/rpm_key 模块。因此,需要检查任何覆盖,以确保它们不会传递任何导致模块失败的键/值对。
galera_gpg_keys的默认值已更改为所有受支持的平台,将使用提供的密钥。这意味着任务执行将不再访问互联网以添加密钥,从而使离线或基于代理的安装更容易可靠。
如果 glance_default_store 设置为 file 且未使用 nfs,则 Glance 容器将被重新启动以添加 glance 缓存绑定挂载。
分类器和 sfc 的插件名称已更改
networking_sfc.services.flowclassifier.plugin.FlowClassifierPlugin => flow_classifier
networking_sfc.services.sfc.plugin.SfcPlugin => sfc
provider_networks库已更新,以支持定义可以在部署期间自动添加到 OVS 提供程序桥接的接口的网络接口。因此,应用于user_variables.yml中neutron_provider_networks覆盖的network_interface值,如以前的 Open vSwitch 部署指南中所述,不再有效。如果需要覆盖,请在提供程序网络覆盖中使用network_interface_mappings并指定相应的桥接-接口映射(例如“br-provider:bond1”)。有关更多信息,请参阅最新的 Open vSwitch 部署指南。
rabbitmq 高水位线设置为
0.2而不是0.4,以防止可能的 OOM 情况,这限制了 rabbitMQ 可以使用的最大内存量为内存的 40%,而不是 rabbitMQ 容器可见的 80%。可以使用覆盖rabbitmq_memory_high_watermark来更改限制。
如果您的配置先前在
nova_nova_conf_overrides字典中设置了libvirt/cpu_model和/或libvirt/cpu_model_extra_flags变量,则应考虑将这些变量移动到nova_cpu_model和nova_cpu_model_extra_flags在nova_virt_types字典的相应条目(通常为kvm)中。
已删除创建 keystone 服务用户的任务,以及相关的变量
keystone_service_user_name和keystone_service_password。可以在现有部署中删除此用户。
rabbitmq_gpg_keys的数据结构已更改为字典,直接传递给适用的 apt_key/rpm_key 模块。因此,需要检查任何覆盖,以确保它们不会传递任何导致模块失败的键/值对。
rabbitmq_gpg_keys的默认值已更改为所有受支持的平台,将使用提供的密钥。这意味着任务执行将不再访问互联网以添加密钥,从而使离线或基于代理的安装更容易可靠。
为了提高效率,新的 HA 策略将默认队列策略更改为
^(?!(amq\.)|(.*_fanout_)|(reply_)).*,而不是^(?!amq\.).*。新的 HA 策略排除了回复队列(这些队列只有一个消费者和 TTL 策略)、扇出队列(它们具有 TTL 策略)和 amq 队列(它们是自动删除队列,只有一个消费者)。
默认的 Mnesia
dump_log_write_threshold值已更改为300,而不是100,以提高效率。dump_log_write_threshold指定允许写入事务日志的最大写入次数,然后执行日志的新转储。 增加此值可以在队列/交换机/绑定创建/销毁期间提高性能。 该值应在 100 到 1000 之间。 更多详情 [1]。[1] https://erlang.org.cn/doc/man/mnesia.html#dump_log_write_threshold
为了使用新的选项 rabbitmq_port_bindings 直接配置绑定地址和端口,已移除选项 rabbitmq_disable_non_tls_listeners。 此新选项是一个哈希,允许进行多个绑定地址和端口配置。
仓库服务器不再使用 pypiserver,因此已将其移除。 随之而来,以下变量也被移除。
repo_pypiserver_portrepo_pypiserver_pip_packagesrepo_pypiserver_package_pathrepo_pypiserver_binrepo_pypiserver_working_dirrepo_pypiserver_start_optionsrepo_pypiserver_init_overrides
删除了变量
tempest_image_dir_owner,转而使用默认 ansible 用户来创建镜像目录。
glance v1 API 已在上游删除,并且此 glance ansible 角色中的部署代码现已删除。已删除变量
glance_enable_v1_api。
已删除变量
ceilometer_oslomsg_rpc_servers和ceilometer_oslomsg_notify_servers,而使用ceilometer_oslomsg_rpc_host_group和ceilometer_oslomsg_notify_host_group代替。
由于 smart-resources 实现,删除了与精确配置文件自定义 git 路径相关的变量。现在,所有配置文件都来自上游 git 仓库,但仍然支持覆盖和客户端配置文件。现在不支持以下变量:* ceilometer_git_config_lookup_location * ceilometer_data_meters_git_file_path * ceilometer_event_definitions_git_file_path * ceilometer_gnocchi_resources_git_file_path * ceilometer_loadbalancer_v2_meter_definitions_git_file_path * ceilometer_osprofiler_event_definitions_git_file_path * ceilometer_polling_git_file_path 如果您正在维护自定义 ceilometer git 仓库,您仍然可以使用
ceilometer_git_repo变量来提供 git 仓库的 URL。
Tacker 角色现在使用默认的 systemd_service 角色。 因此,不再支持 upstart。 添加了变量 tacker_init_config_overrides,部署者可以使用它来覆盖预定义的选项。 此外,变量 program_override 现在无效,并且 tacker_service_names 已被移除,取而代之的是 tacker_service_name。
ceph_gpg_keys的数据结构已更改为字典列表,每个字典都直接传递给适用的 apt_key/rpm_key 模块。因此,需要检查任何覆盖,以确保它们不会传递任何导致模块失败的键/值对。
ceph_gpg_keys的默认值已更改为所有受支持的平台,现在使用提供的密钥。这意味着任务执行将不再访问互联网以添加密钥,从而使离线或基于代理的安装更容易可靠。
可以覆盖新的值
epel_gpg_keys以使用不同的 GPG 密钥来代替默认使用的 EPEL-7 RPM 包仓库提供的密钥。
弃用说明¶
变量
aodh_requires_pip_packages不再需要,因此已被删除。
变量
barbican_requires_pip_packages不再需要,因此已被删除。
以下变量不再使用,因此已被删除。
ceilometer_requires_pip_packagesceilometer_service_nameceilometer_service_portceilometer_service_protoceilometer_service_typeceilometer_service_description
在
ceph_client角色中,ceph_pkg_source的唯一有效值现在是ceph和distro。 对于 Ubuntu,Ubuntu Cloud Archive apt 源已经由openstack_hosts角色设置,因此无需由ceph_client角色再次设置。
变量
cinder_requires_pip_packages不再需要,因此已被删除。
此前有一个环境变量(
ANSIBLE_ROLE_FETCH_MODE)用于设置 ansible-role-requirements.yml 中的角色是使用 ansible-galaxy 还是使用 git 获取,但是,由于使用ceph-ansible仓库进行 ceph 部署,使用 ansible-galaxy 下载角色无法正常工作,因此默认值在一段时间内一直是 git。因此,此功能已被移除。
变量
designate_requires_pip_packages已不再需要,因此已被移除。
由于 MariaDB 不再推荐,因此已移除
galera_server角色中的压缩选项。 这意味着来自 Percona 的所有依赖项,例如 QPress,不再是必需的。
以下变量已被移除,因为它们不再使用。 *
galera_percona_xtrabackup_repo*use_percona_upstream*galera_xtrabackup_compression*galera_server_percona_distro_packages
变量
galera_xtrabackup_threads已重命名为galera_mariabackup_threads,以反映 SST 提供程序的更改。
Dragonflow 已不再作为 OpenStack 项目进行维护,因此已从 OpenStack-Ansible 中移除,不再作为 neutron 的受支持 ML2 驱动程序。
由于任何角色/剧本都不使用它,因此已移除过滤器
get_gested。
变量
glance_requires_pip_packages已不再需要,因此已被移除。
变量
gnocchi_requires_pip_packages已不再需要,因此已被移除。
变量
heat_requires_pip_packages已不再需要,因此已被移除。
变量
horizon_requires_pip_packages已不再需要,因此已被移除。
变量
ironic_requires_pip_packages已不再需要,因此已被移除。
日志路径
/var/log/barbican已不再用于捕获服务日志。barbican 服务的全部日志现在将直接发送到 systemd journal。
日志路径
/var/log/keystone已不再用于捕获服务日志。Keystone 服务的全部日志现在将直接发送到 systemd journal。
日志路径
/var/log/congress已不再用于捕获服务日志。congress 服务的全部日志现在将直接发送到 systemd journal。
日志路径
/var/log/cinder已不再用于捕获服务日志。cinder 服务的全部日志现在将直接发送到 systemd journal。
日志路径
/var/log/blazar已不再用于捕获服务日志。blazar 服务的全部日志现在将直接发送到 systemd journal。
日志路径
/var/log/aodh已不再用于捕获服务日志。aodh 服务的全部日志现在将直接发送到 systemd journal。
日志路径
/var/log/ceilometer已不再用于捕获服务日志。ceilometer 服务的全部日志现在将直接发送到 systemd journal。
日志路径
/var/log/designate已不再用于捕获服务日志。designate 服务的全部日志现在将直接发送到 systemd journal。
变量
keystone_requires_pip_packages已不再需要,因此已被移除。
为了更好地反映其目的,已实施以下变量名称更改。
lxc_host_machine_quota_disabled->lxc_host_btrfs_quota_disabledlxc_host_machine_qgroup_space_limit->lxc_host_btrfs_qgroup_space_limitlxc_host_machine_qgroup_compression_limit->lxc_host_btrfs_qgroup_compression_limit
变量
magnum_requires_pip_packages已不再需要,因此已被移除。
变量
neutron_requires_pip_packages已不再需要,因此已被移除。
变量
nova_requires_pip_packages已不再需要,因此已被移除。
变量
octavia_requires_pip_packages已不再需要,因此已被移除。
已移除变量
octavia_image_downloader。镜像下载现在使用与octavia_service_setup_host指定的镜像设置主机相同的宿主机进行镜像下载。
已移除变量
octavia_ansible_endpoint_type。用于 ansible 任务的端点已硬设置为“admin”端点,这在所有 OSA 角色中都很常见。
为了抽象消息服务与实际后端服务器部署,rabbitmq 服务器参数已被相应的 oslo.messaging RPC 和 Notify 参数替换。- trove_oslomsg_rpc_servers 替换 trove_rabbitmq_servers - trove_oslomsg_rpc_port 替换 trove_rabbitmq_port - trove_oslomsg_rpc_use_ssl 替换 trove_rabbitmq_use_ssl - trove_oslomsg_rpc_userid 替换 trove_rabbitmq_userid - trove_oslomsg_rpc_vhost 替换 trove_rabbitmq_vhost - 添加了 trove_oslomsg_notify_servers - 添加了 trove_oslomsg_notify_port - 添加了 trove_oslomsg_notify_use_ssl - 添加了 trove_oslomsg_notify_userid - 添加了 trove_oslomsg_notify_vhost - 添加了 trove_oslomsg_notify_password
为了抽象消息服务与实际后端服务器部署,rabbitmq 服务器参数已被相应的 oslo.messaging RPC 和 Notify 参数替换。- barbican_oslomsg_rpc_servers 替换 rabbitmq_servers - barbican_oslomsg_rpc_port 替换 rabbitmq_port - barbican_oslomsg_rpc_userid 替换 barbican_rabbitmq_userid - barbican_oslomsg_rpc_vhost 替换 barbican_rabbitmq_vhost - 添加了 barbican_oslomsg_rpc_use_ssl - 添加了 barbican_oslomsg_notify_servers - 添加了 barbican_oslomsg_notify_port - 添加了 barbican_oslomsg_notify_use_ssl - 添加了 barbican_oslomsg_notify_userid - 添加了 barbican_oslomsg_notify_vhost - 添加了 barbican_oslomsg_notify_password
为了抽象消息服务与实际后端服务器部署,rabbitmq 服务器参数已被相应的 oslo.messaging RPC 和 Notify 参数替换。- aodh_oslomsg_rpc_servers 替换 aodh_rabbitmq_servers - aodh_oslomsg_rpc_port 替换 aodh_rabbitmq_port - aodh_oslomsg_rpc_use_ssl 替换 aodh_rabbitmq_use_ssl - aodh_oslomsg_rpc_userid 替换 aodh_rabbitmq_userid - aodh_oslomsg_rpc_vhost 替换 aodh_rabbitmq_vhost - aodh_oslomsg_rpc_password 替换 aodh_rabbitmq_password
为了抽象消息服务与实际后端服务器部署,rabbitmq 服务器参数已被相应的 oslo.messaging RPC 和 Notify 参数替换。- ceilometer_oslomsg_rpc_servers 替换 rabbitmq_servers - ceilometer_oslomsg_rpc_port 替换 rabbitmq_port - ceilometer_oslomsg_rpc_userid 替换 ceilometer_rabbitmq_userid - ceilometer_oslomsg_rpc_vhost 替换 ceilometer_rabbitmq_vhost - 添加了 ceilometer_oslomsg_rpc_use_ssl - 添加了 ceilometer_oslomsg_notify_servers - 添加了 ceilometer_oslomsg_notify_port - 添加了 ceilometer_oslomsg_notify_use_ssl - 添加了 ceilometer_oslomsg_notify_userid - 添加了 ceilometer_oslomsg_notify_vhost - 添加了 ceilometer_oslomsg_notify_password
为了抽象消息服务与实际后端服务器部署,rabbitmq 服务器参数已被相应的 oslo.messaging RPC 和 Notify 参数替换。- designate_oslomsg_rpc_servers 替换 designate_rabbitmq_servers - designate_oslomsg_rpc_port 替换 designate_rabbitmq_port - designate_oslomsg_rpc_use_ssl 替换 designate_rabbitmq_use_ssl - designate_oslomsg_rpc_userid 替换 designate_rabbitmq_userid - designate_oslomsg_rpc_vhost 替换 designate_rabbitmq_vhost - designate_oslomsg_notify_servers 替换 designate_rabbitmq_telemetry_servers - designate_oslomsg_notify_port 替换 designate_rabbitmq_telemetry_port - designate_oslomsg_notify_use_ssl 替换 designate_rabbitmq_telemetry_use_ssl - designate_oslomsg_notify_userid 替换 designate_rabbitmq_telemetry_userid - designate_oslomsg_notify_vhost 替换 designate_rabbitmq_telemetry_vhost - designate_oslomsg_notify_password 替换 designate_rabbitmq_telemetry_password
为了抽象消息服务与实际后端服务器部署,rabbitmq 服务器参数已被相应的 oslo.messaging RPC 和 Notify 参数替换。- magnum_oslomsg_rpc_servers 替换 rabbitmq_servers - magnum_oslomsg_rpc_port 替换 rabbitmq_port - magnum_oslomsg_rpc_userid 替换 magnum_rabbitmq_userid - magnum_oslomsg_rpc_vhost 替换 magnum_rabbitmq_vhost - 添加了 magnum_oslomsg_rpc_use_ssl - 添加了 magnum_oslomsg_notify_servers - 添加了 magnum_oslomsg_notify_port - 添加了 magnum_oslomsg_notify_use_ssl - 添加了 magnum_oslomsg_notify_userid - 添加了 magnum_oslomsg_notify_vhost - 添加了 magnum_oslomsg_notify_password
为了抽象消息服务与实际后端服务器部署,rabbitmq 服务器参数已被相应的 oslo.messaging Notify 参数替换。- swift_oslomsg_notify_servers 替换 swift_rabbitmq_telemetry_servers - swift_oslomsg_notify_port 替换 swift_rabbitmq_telemetry_port - swift_oslomsg_notify_use_ssl 替换 swift_rabbitmq_telemetry_use_ssl - swift_oslomsg_notify_userid 替换 swift_rabbitmq_telemetry_userid - swift_oslomsg_notify_vhost 替换 swift_rabbitmq_telemetry_vhost - swift_oslomsg_notify_password 替换 swift_rabbitmq_telemetry_password
为了抽象消息服务与实际后端服务器部署,rabbitmq 服务器参数已被相应的 oslo.messaging RPC 和 Notify 参数替换。- octavia_oslomsg_rpc_servers 替换 octavia_rabbitmq_servers - octavia_oslomsg_rpc_port 替换 octavia_rabbitmq_port - octavia_oslomsg_rpc_use_ssl 替换 octavia_rabbitmq_use_ssl - octavia_oslomsg_rpc_userid 替换 octavia_rabbitmq_userid - octavia_oslomsg_rpc_vhost 替换 octavia_rabbitmq_vhost - octavia_oslomsg_notify_servers 替换 octavia_rabbitmq_telemetry_servers - octavia_oslomsg_notify_port 替换 octavia_rabbitmq_telemetry_port - octavia_oslomsg_notify_use_ssl 替换 octavia_rabbitmq_telemetry_use_ssl - octavia_oslomsg_notify_userid 替换 octavia_rabbitmq_telemetry_userid - octavia_oslomsg_notify_vhost 替换 octavia_rabbitmq_telemetry_vhost - octavia_oslomsg_notify_password 替换 octavia_rabbitmq_telemetry_password
repo 服务器的 pypi 反向代理已被移除,仅留下 pypiserver 来提供 repo 服务器上已有的软件包。反向代理上游 pypi 的尝试被证明非常不稳定,并增加了部署者使用代理或离线安装时的复杂性。因此,变量
repo_nginx_pypi_upstream和repo_nginx_proxy_cache_path也已被移除。
repo 服务器上的软件包缓存已被移除。如果需要缓存软件包,应在 OpenStack-Ansible 之外进行设置,并且可以使用变量
lxc_container_cache_files(对于 LXC 容器)或nspawn_container_cache_files_from_host(对于 nspawn 容器)将适当的主机配置从主机复制到容器中。或者,可以在容器创建之前在主机 /etc/environment 文件中设置环境变量,或者在deployment_environment_variables中设置正确的变量来使用它。以下变量已被移除。repo_pkg_cache_enabledrepo_pkg_cache_portrepo_pkg_cache_bindrepo_pkg_cache_dirnamerepo_pkg_cache_dirrepo_pkg_cache_ownerrepo_pkg_cache_group
repo 构建过程不再构建打包的 venvs。相反,venv 在目标主机上创建,因为每个服务的安装过程都需要它。这为角色提供了创建多个 venvs 的机会,并且任何角色都可以创建 venvs - 这些选项在以前的版本中都不可能。
因此,以下变量已被移除。
repo_build_venv_selectiverepo_build_venv_rebuildrepo_build_venv_timeoutrepo_build_concurrencyrepo_build_venv_build_dirrepo_build_venv_dirrepo_build_venv_pip_install_optionsrepo_build_venv_command_optionsrepo_venv_default_pip_packages
变量
repo_requires_pip_packages已不再需要,因此已被移除。
变量
sahara_requires_pip_packages已不再需要,因此已被移除。
变量
swift_requires_pip_packages已不再需要,因此已被移除。
变量
tempest_requires_pip_packages已不再需要,因此已被移除。
已移除变量
tempest_image_downloader。镜像下载现在使用与tempest_service_setup_host指定的镜像设置主机相同的宿主机进行镜像下载。
变量
trove_requires_pip_packages已不再需要,因此已被移除。
安全问题¶
由于这会影响其他服务的性能,并可能导致负载均衡器配额未正确设置或 RBAC 未正确设置时出现潜在的拒绝服务攻击,因此请避免为您的云设置过高的配额。
默认 TLS 版本设置为 TLS1.2。这仅允许在使用或创建 TLS 连接时使用协议版本 1.2。可以使用 ssl_protocol 变量更改该值。
默认 TLS 版本设置为 TLS1.2。这仅允许在使用或创建 TLS 连接时使用协议版本 1.2。可以使用 barbican_ssl_protocol 变量更改该值。
默认 TLS 版本设置为 TLS1.2。这仅允许在使用或创建 TLS 连接时使用协议版本 1.2。可以使用 horizon_ssl_protocol 变量更改该值。
默认 TLS 版本设置为 TLS1.2。这仅允许在使用或创建 TLS 连接时使用协议版本 1.2。可以使用 keystone_ssl_protocol 变量更改该值。
默认 TLS 版本设置为 TLS1.2。这仅允许在使用或创建 TLS 连接时使用协议版本 1.2。可以使用 gnocchi_ssl_protocol 变量更改该值。
默认 TLS 版本设置为 force-tlsv12。这仅允许在使用或创建 TLS 连接时使用协议版本 1.2。可以使用 haproxy_ssl_bind_options 变量更改该值。
默认 TLS 版本设置为 TLS1.2。这仅允许在使用或创建 TLS 连接时使用协议版本 1.2。可以使用 trove_ssl_protocol 变量更改该值。
错误修复¶
现在,
ceph-rgwplaybook 包含 Keystoneobject-store端点的AUTH_%(tenant_id)s后缀。这使 radosgw 的行为与原生 Swift 保持一致。它还允许 radosgw 支持容器上的公共读取 ACL 以及对象上的临时 URL,就像 Swift 一样 (bug 1800637)。
在计算节点上运行的 ceilometer-polling 服务没有配置轮询命名空间。 因此,它们使用了默认值,即从中央和计算命名空间运行所有轮询器。 但是,来自中央命名空间的轮询器不必在每个计算节点上运行。 通过仅在计算节点上运行计算轮询器来修复此问题。
修复了 bug https://bugs.launchpad.net/openstack-ansible/+bug/1778098,当指定了
horizon_custom_themes且未提供主题目录时,playbook 会失败。
通过启用
neutron-l3-agent调用所需的辅助脚本,修复了 neutron HA 路由器。
安全组规则的配额被错误地设置为 100,目的是为每个安全组提供 100 条安全组规则,而不是 100 * 安全组规则数。此补丁修复了此差异。
在使用带有写时复制后端的 LXC 容器时,由于带有
nspawn_host_前缀的未定义变量,lxc_hosts角色执行失败。现在已修复此问题。
RyuBgpDriver 不再可用,并被 neutron_dynamic_routing 项目的 OsKenBgpDriver 取代。
在 https://review.openstack.org/582633 中,对
openstack-ansible包装器进行了一项调整,该调整错误地改变了预期行为。该包装器仅应包含 extra-vars 并调用 inventory,如果从openstack-ansible仓库克隆(通常是/opt/openstack-ansible)内部执行ansible-playbook,但更改使路径变得无关紧要。现在已修复此问题 -ansible-playbook和ansible仅在从 git 克隆路径内部调用时才会调用 inventory 并包含 extra vars。
随着 CentOS 7.6 的发布,部署中断并变得非常缓慢,因为我们在尝试捕获一些 PolicyKit 更改时重启了 dbus。但是,这些更改实际上从未被使用,因此它们是毫无理由的。我们不再对 systemd-machined 配置和/或 PolicyKit 进行任何修改,以保持上游兼容性。
确定是否为联合部署部署
sso_callback_template.html文件的条件已得到修复。
其他说明¶
现在,
config_templateaction 模块已移动到它自己的 git 仓库 (openstack/ansible-config_template)。这样做是为了简化在其他非 OpenStack-Ansible 项目中使用该插件的能力。
当使用 apache(httpd) 运行 keystone 时,所有 apache 日志都将存储在标准的 apache 日志目录中,该目录由特定于发行版的变量
keystone_apache_default_log_folder控制。
当使用 apache(httpd) 运行 aodh 时,所有 apache 日志都将存储在标准的 apache 日志目录中,该目录由特定于发行版的变量
aodh_apache_default_log_folder控制。
删除添加了 ‘Acquire::http:No-Cache true’ 到主机和容器 apt 偏好设置的代码,当设置了 http 代理环境变量时。此设置仅在解决由配置不当的 http 代理引入的问题时才需要。在某些情况下,代理可能会错误地缓存 apt Releases 和 Packages 文件,从而导致软件包安装错误。如果部署位于配置不当的代理后面,部署者可以将必要的 apt 配置片段作为主机配置的一部分添加。OSA 会将该配置复制到创建的任何容器中。如果需要,可以通过手动删除文件
/etc/apt/apt.conf.d/00apt-no-cache从所有主机和容器中来删除现有部署中的此设置。