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_clientcinder,则 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

升级说明

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 部署到标记为 hostgroup mistral_all 的主机。

  • 现在可以使用 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_filterscinder.conf 中,先前只能通过 cinder_cinder_conf_overrides 中的条目定义。现在,您可以选择定义一个列表变量,cinder_scheduler_default_filters,该变量定义了启用的过滤器。如果想要禁用默认启用的过滤器(撰写本文时,这些过滤器为 AvailabilityZoneFilterCapacityFilterCapabilitiesFilter),或者相反地,想要添加通常未启用的过滤器,例如 DifferentBackendFilterInstanceLocalityFilter,这将很有帮助。

    例如,要启用 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_horizon role 现在支持分发用户自定义主题。部署人员可以使用 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_classifier

    • sfc

    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 或您选择的 custom CPU 模型通常不会传递的额外的 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_policiesoslomsg_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_projectstempest_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-rgw playbook 启用了 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.SwiftBackupDriver

    • cinder.backup.drivers.ceph.CephBackupDriver

    如果您不进行此更改,Cinder 备份服务将无法正确启动。

  • 已更新 tempest_test_blacklist 的数据结构,以添加与正在跳过的测试关联的 launchpad 和/或 bugzilla 链接。

  • ceph-rgw playbook 现在设置 rgw_swift_account_in_url = true 并相应地更新相应的 Keystone 服务目录条目。不依赖服务目录查找的应用程序(例如监控脚本)必须使用包含 AUTH_%(tenant_id)s 的新端点 URL 进行更新,就像原生 Swift 一样——或者,应该更新为毕竟尊重服务目录。

  • ceph-rgw playbook 现在设置 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.ymlneutron_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_modelnova_cpu_model_extra_flagsnova_virt_types 字典的相应条目(通常为 kvm)中。

  • 已删除创建 keystone 服务用户的任务,以及相关的变量 keystone_service_user_namekeystone_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_port

    • repo_pypiserver_pip_packages

    • repo_pypiserver_package_path

    • repo_pypiserver_bin

    • repo_pypiserver_working_dir

    • repo_pypiserver_start_options

    • repo_pypiserver_init_overrides

  • 删除了变量 tempest_image_dir_owner,转而使用默认 ansible 用户来创建镜像目录。

  • glance v1 API 已在上游删除,并且此 glance ansible 角色中的部署代码现已删除。已删除变量 glance_enable_v1_api

  • 已删除变量 ceilometer_oslomsg_rpc_serversceilometer_oslomsg_notify_servers,而使用 ceilometer_oslomsg_rpc_host_groupceilometer_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_packages

    • ceilometer_service_name

    • ceilometer_service_port

    • ceilometer_service_proto

    • ceilometer_service_type

    • ceilometer_service_description

  • ceph_client 角色中,ceph_pkg_source 的唯一有效值现在是 cephdistro。 对于 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_disabled

    • lxc_host_machine_qgroup_space_limit -> lxc_host_btrfs_qgroup_space_limit

    • lxc_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_upstreamrepo_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_enabled

    • repo_pkg_cache_port

    • repo_pkg_cache_bind

    • repo_pkg_cache_dirname

    • repo_pkg_cache_dir

    • repo_pkg_cache_owner

    • repo_pkg_cache_group

  • repo 构建过程不再构建打包的 venvs。相反,venv 在目标主机上创建,因为每个服务的安装过程都需要它。这为角色提供了创建多个 venvs 的机会,并且任何角色都可以创建 venvs - 这些选项在以前的版本中都不可能。

    因此,以下变量已被移除。

    • repo_build_venv_selective

    • repo_build_venv_rebuild

    • repo_build_venv_timeout

    • repo_build_concurrency

    • repo_build_venv_build_dir

    • repo_build_venv_dir

    • repo_build_venv_pip_install_options

    • repo_build_venv_command_options

    • repo_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-rgw playbook 包含 Keystone object-store 端点的 AUTH_%(tenant_id)s 后缀。这使 radosgw 的行为与原生 Swift 保持一致。它还允许 radosgw 支持容器上的公共读取 ACL 以及对象上的临时 URL,就像 Swift 一样 (bug 1800637)。

  • 在计算节点上运行的 ceilometer-polling 服务没有配置轮询命名空间。 因此,它们使用了默认值,即从中央和计算命名空间运行所有轮询器。 但是,来自中央命名空间的轮询器不必在每个计算节点上运行。 通过仅在计算节点上运行计算轮询器来修复此问题。

  • 通过启用 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-playbookansible 仅在从 git 克隆路径内部调用时才会调用 inventory 并包含 extra vars。

  • 随着 CentOS 7.6 的发布,部署中断并变得非常缓慢,因为我们在尝试捕获一些 PolicyKit 更改时重启了 dbus。但是,这些更改实际上从未被使用,因此它们是毫无理由的。我们不再对 systemd-machined 配置和/或 PolicyKit 进行任何修改,以保持上游兼容性。

  • 确定是否为联合部署部署 sso_callback_template.html 文件的条件已得到修复。

其他说明

  • 现在,config_template action 模块已移动到它自己的 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 从所有主机和容器中来删除现有部署中的此设置。