Mitaka 系列发布说明

13.3.13

已知问题

13.3.9

新特性

  • 添加了一个新的 haproxy_extra_services 变量,允许添加额外的 haproxy 端点。

  • nova SSH 公钥分发的速度得到了显著提升,尤其是在针对非常大的集群部署时。为了支持更大的集群,该角色已放弃使用“authorized_key”模块,现在正在生成一个脚本来插入授权密钥文件中可能缺失的密钥。该脚本保存在所有 nova 计算节点上,位于 /usr/local/bin/openstack-nova-key.sh。如果需要重新插入密钥或修复给定计算节点上的问题,则可以随时执行该脚本,而无需直接运行 ansible playbook 或角色。

弃用说明

  • haproxy_service_configs 变量移动到 haproxy_default_service_configs,以便可以修改和添加 haproxy_service_configs 而不会覆盖整个默认服务字典。

13.3.8

错误修复

  • 默认情况下,haproxy 守护程序配置中现在禁用了 SSLv3。

13.3.7

新特性

  • LXC 容器现在将在所有网络接口上生成固定的 MAC 地址,当选项 lxc_container_fixed_mac 设置为 true 时。此功能已实施,以解决通常在具有高强度网络服务的规模上遇到的容器中动态 MAC 地址的问题。

错误修复

  • 当选项 lxc_container_fixed_mac 设置为 true 时,LXC 容器现在将能够在所有网络接口上使用固定的 MAC 地址。此更改将有助于解决一个长期存在的问题,即高网络负载的服务(例如 neutron 和 rabbitmq)可能会进入混乱状态很长时间,并需要滚动重启或内部系统重置才能恢复。

13.3.6

升级说明

  • 在从 Liberty 迁移到 Mitaka 时,neutron 不会自动设置或迁移网络 MTU 设置。Neutron 没有迁移功能来正确设置现有网络的 MTU,因此我们创建了一个 OSA MTU 迁移 playbook 来解决此问题。该 playbook 将通过迭代 user_variables 和 facts 中已知的值来设置升级前创建的网络的 MTU。如果遇到任何已知的网络名称,MTU 将设置为已知值。如果不存在 MTU 且没有全局覆盖,则 playbook 将回退到对 vlan/flat 网络使用 1500,对 vxlan 网络使用 1450。

13.3.5

新特性

  • os_nova 角色现在可以通过定义 qemu_conf_dict 来部署自定义 /etc/libvirt/qemu.conf 文件。

  • openstack-ansible-galera_server 角色现在将阻止部署者更改已在正在运行的 galera 集群中设置了值的 galera_cluster_name 变量。您可以设置新的 galera_force_change_cluster_name 变量为 True 以强制更改 galera_cluster_name 变量。我们建议通过使用 -e galera_force_change_cluster_name=True 运行 galera-install.yml playbook 来设置此变量,以避免无意中更改 galera_cluster_name 变量。请谨慎使用,更改 galera_cluster_name 值可能会导致集群失败,因为如果节点按顺序重启,则无法加入。

  • LXC 容器创建过程现在对等待容器启动的任务具有可配置的延迟。变量 lxc_container_ssh_delay 可用于更改默认延迟五秒。

已知问题

  • 在使用 ansible 1.9.4 时,无法覆盖 nova 和 cinder 的 ceph 客户端凭据。

    有关详细信息,请参阅 bug 1605302

升级说明

  • 提供了新的覆盖,以允许更好地自定义日志文件保留和 UDP/TCP 套接字的速率限制。 rsyslog_server_logrotation_window 默认为 14 天 rsyslog_server_ratelimit_interval 默认为 0 秒 rsyslog_server_ratelimit_burst 默认为 10000

  • rsyslog.conf 现在使用 v7+ 样式的配置设置

错误修复

  • pip_install_options 变量现在在构建 repo 期间受到重视。此变量允许部署者通过将变量设置为“–cert /etc/ssl/certs/ca-certificates.crt”来指定受信任的 CA 证书。

  • repo_build playbook 现在可以正确评估在 /etc/environment 中配置的环境变量。这使得在具有 http 代理的环境中进行部署成为可能。

13.3.4

新特性

  • AIDE 在执行数据库初始化和执行检查时,配置为跳过整个 /var 目录。这可以减少磁盘 I/O,并使这些任务完成得更快。

    这也允许初始化成为一个阻塞过程,Ansible 将等待初始化完成,然后再运行下一个任务。

  • 虽然 STIG 要求记录恶意的网络包,但默认情况下现在已禁用记录。日志会迅速填满 syslog 服务器或使物理控制台无法使用。

    需要启用此日志记录的部署者需要设置以下 Ansible 变量

    security_sysctl_enable_martian_logging: yes
    

升级说明

  • 所有自主访问控制 (DAC) 审计默认情况下均已禁用。这减少了部署和次要升级期间生成的日志量。以下变量现在设置为 no

    security_audit_DAC_chmod: no
    security_audit_DAC_chown: no
    security_audit_DAC_lchown: no
    security_audit_DAC_fchmod: no
    security_audit_DAC_fchmodat: no
    security_audit_DAC_fchown: no
    security_audit_DAC_fchownat: no
    security_audit_DAC_fremovexattr: no
    security_audit_DAC_lremovexattr: no
    security_audit_DAC_fsetxattr: no
    security_audit_DAC_lsetxattr: no
    security_audit_DAC_setxattr: no
    

错误修复

  • 由于 /run 目录中的文件和目录只是临时文件,并且在服务启动和停止时经常更改,因此从 AIDE 检查中排除该目录。

  • initialize_aide 设置为 yes 时,AIDE 初始化现在始终在后续 playbook 运行中运行。如果未安装 AIDE 或 AIDE 数据库已存在,则初始化将被跳过。

    有关更多详细信息,请参阅 bug 1616281

  • auditd 规则用于审计 V-38568(文件系统挂载),在 auditd 日志中被错误地标记为键 export-V-38568。现在它们使用键 filesystem_mount-V-38568 正确记录。

13.3.3

新特性

  • 添加了 horizon_keystone_admin_roles 变量以支持 horizon_local_settings.py 文件中的 OPENSTACK_KEYSTONE_ADMIN_ROLES 列表。

  • keystone 模块已添加了支持登录用户域和登录项目域的功能。

    # Example usage
    - keystone:
        command: ensure_user
        endpoint: "{{ keystone_admin_endpoint }}"
        login_user: admin
        login_password: admin
        login_project_name: admin
        login_user_domain_name: custom
        login_project_domain_name: custom
        user_name: demo
        password: demo
        project_name: demo
        domain_name: custom
    
  • 当 LBaaS v2 包含在 neutron_plugin_base 中时,Horizon 中的 LBaaS v2 面板将自动启用。

  • 部署者现在可以通过设置以下变量来配置 tempest 公共和专用网络,‘tempest_private_net_provider_type’ 设置为 vxlan 或 vlan,‘tempest_public_net_provider_type’ 设置为 flat 或 vlan。根据部署者设置这些变量,他们可能还需要相应地更新其他变量,这主要涉及 ‘tempest_public_net_physical_type’ 和 ‘tempest_public_net_seg_id’。请参阅 https://docs.openstack.org/2025.2/networking-guide/intro-basic-networking.html 以获取更多 neutron 网络信息。

升级说明

  • galera 容器中损坏的 bind mount 的修复(有关详细信息,请参阅 bug 1609862 <https://launchpad.net/bugs/1609862>)将应用于 LXC 容器配置文件,但需要重启每个 galera 容器才能使更改生效。

    部署者可以使用 OpenStack-Ansible 仓库中提供的升级 playbook 中的滚动重启功能 OpenStack-Ansible 仓库

    部署者也可以手动逐个关闭和启动 galera 容器(如果喜欢这种方法)。

    这将导致容器中 /var/log/mysql_logs 中的旧错误日志变得不可用,因为新的 bind mount 挂载在容器内的现有日志目录之上。如果部署者需要保留这些日志,则部署者应

    1. 关闭一个 Galera 容器

    2. 将日志从容器的文件系统复制到主机文件系统上的 /openstack/log/{{ inventory_hostname }}

    3. 启动 Galera 容器

    4. 对其他 Galera 容器重复此操作

错误修复

  • bug 1609862 <https://launchpad.net/bugs/1609862> 中发现的 galera 容器上的 bind mount 损坏已修复。

    注意:此修复程序部分应用于现有的 OpenStack-Ansible 部署。有关完全应用修复程序所需的步骤,请参阅发布说明的升级部分。

  • 已添加了支持登录用户域和登录项目域的功能到 keystone 模块。这解决了 https://bugs.launchpad.net/openstack-ansible/+bug/1574000

    # Example usage
    - keystone:
        command: ensure_user
        endpoint: "{{ keystone_admin_endpoint }}"
        login_user: admin
        login_password: admin
        login_project_name: admin
        login_user_domain_name: custom
        login_project_domain_name: custom
        user_name: demo
        password: demo
        project_name: demo
        domain_name: custom
    

13.3.2

新特性

  • 已添加一个新变量,允许部署者通过处理程序控制容器的重启。这个新选项是 lxc_container_allow_restarts,默认值为 true。如果部署者希望禁用自动重启功能,他们可以将此值设置为 false,并且不绝对需要的自动容器重启将被禁用。

升级说明

  • LXC 包安装和缓存准备现在默认仅发生在将实际实现容器的主机上。

  • 在升级期间,mariadb/galera 集群的容器和服务的重启被多次触发,导致集群变得不稳定且通常无法恢复。这种情况得到了极大的改善,现在我们有严格的控制,使得 galera 容器的重启只需要发生一次,并且以受控、可预测和可重复的方式进行。

错误修复

  • LXC 包安装和缓存准备现在默认仅发生在将实际实现容器的主机上。

  • 已从 xtrabackup 选项中删除了 --compact 标志。已知这会导致某些 SST 情况下的崩溃

13.3.1

新特性

  • py_pkgs lookup 插件现在对需求文件发现具有严格的排序。这些文件用于添加额外的需求到发现的 python 包中。顺序由常量 REQUIREMENTS_FILE_TYPES 定义,其中包含以下条目:‘test-requirements.txt’、‘dev-requirements.txt’、‘requirements.txt’、‘global-requirements.txt’、‘global-requirement-pins.txt’。此列表中的项目按优先级从低到高排列。

  • os_horizon 角色现在支持配置自定义主题。部署者可以使用新的 horizon_custom_themeshorizon_default_theme 变量来使用自定义主题配置仪表板,并分别默认设置为特定主题。

  • 应用程序 logrotate 配置文件中的选项现在是可配置的。 rsyslog_client_log_rotate_options 可用于提供指令列表,rsyslog_client_log_rotate_scripts 可用于提供 postrotate、prerotate、firstaction 或 lastaction 脚本列表。

  • os_swift 角色有 3 个新变量,允许部署者更改硬限制、软限制和 fs.file-max 限制。硬限制和软限制正在添加到 swift 系统用户的 limits.conf 文件中。fs.file-max 设置通过内核调整添加到存储主机。新的选项是 swift_hard_open_file_limits,默认值为 10240 swift_soft_open_file_limits,默认值为 4096 swift_max_file_limits,默认值为 swift_hard_open_file_limits 值的 24 倍。

  • repo_build 角色现在提供覆盖应用的上层约束的能力,这些约束来自 OpenStack 和 global-requirements-pins.txt 文件。变量 repo_build_upper_constraints_overrides 可以填充一个上层约束列表。此列表将在约束过程中具有最高优先级,但 git 源代码 SHA 中设置的 pin 除外。

已知问题

  • 对于早于 13.3.1 的 OpenStack-Ansible Mitaka 版本,默认容器 apt 源是 http://mirror.rackspace.com/ubuntu。此镜像有时具有损坏的软件包索引或缺少软件包。默认软件包源已更改为使用 http://archive.ubuntu.com/ubuntu/ 用于软件包和 http://security.ubuntu.com/ubuntu 用于安全软件包。

升级说明

  • 默认容器 apt 源已从使用 http://mirror.rackspace.com/ubuntu 更改为使用 http://archive.ubuntu.com/ubuntu/ 用于软件包和 http://security.ubuntu.com/ubuntu 用于安全软件包。这是为了解决由于不完整的镜像更新导致安装过程中软件包不可用的问题。

关键问题

  • 由于将不正确的 hostname 设置放置在 apache ServerName 配置中,Horizon 部署已损坏。这导致在禁用调试时 Horizon 启动失败。

13.3.0

新特性

  • 已向 bootstrap-ansible.sh 添加了一个新选项,用于设置角色获取模式。环境变量 ANSIBLE_ROLE_FETCH_MODE 设置如何解析角色依赖项。

升级说明

  • 添加一个新的 nova.conf 条目,live_migration_uri。该条目将默认设置为 qemu-ssh:// uri,它使用已经分发到所有计算主机上的 ssh 密钥。

  • 添加了清理任务,以删除 nova 控制台 git 目录 /usr/share/novnc/usr/share/spice-html5,然后再将这些目录克隆到 nova vnc 和 spice 控制台 playbook 中。这对于保证本地修改不会破坏 git 克隆操作(尤其是在升级期间)是必要的。

错误修复

  • os_horizon role 中的标准 collectstatic 和压缩过程现在发生在 horizon 定制安装之后,以便收集和压缩所有静态资源。

  • 在升级时,旧的 “neutron-ns-metadata-proxy” 进程可能会残留在内存中。如果发生这种情况,该进程的旧版本可能会在生产环境中导致意外问题。为了解决这个问题,已在 os_neutron role 中添加了一个任务,该任务将执行进程查找并杀死任何未运行当前发布标签的 “neutron-ns-metadata-proxy” 进程。删除旧进程后,正在运行的元数据代理将在 60 秒内重新生成所有必需的内容。

其他说明

  • run-playbooks.sh 脚本已重构,使用我们的核心工具集和运行顺序来运行所有 playbook。重构工作将旧的特殊案例脚本更新为简单地运行集成的 playbook,就像它们被设计的那样。

13.2.0

新特性

  • 已向 os-keystone 角色添加了 Apache MPM 可调参数支持,以便允许 MPM 线程调优。默认值反映了当前的 Ubuntu 默认设置

    keystone_httpd_mpm_backend: event
    keystone_httpd_mpm_start_servers: 2
    keystone_httpd_mpm_min_spare_threads: 25
    keystone_httpd_mpm_max_spare_threads: 75
    keystone_httpd_mpm_thread_limit: 64
    keystone_httpd_mpm_thread_child: 25
    keystone_httpd_mpm_max_requests: 150
    keystone_httpd_mpm_max_conn_child: 0
    

13.1.4

新特性

  • 部署者现在可以通过在 horizon_nova_extensions_blacklist 变量中提供此类扩展的列表来阻止某些 Nova 扩展,例如

    horizon_nova_extensions_blacklist:
      - "SimpleTenantUsage"
    
  • 添加的安全角色添加的 audit 规则现在具有键字段,这使得将 audit 日志条目链接到导致其出现的 audit 规则更容易。

  • 已在 neutron_local_ip 中使用的 _local_ip 设置中添加了一个条件,该条件消除了部署中必须设置覆盖网络的要求。如果在部署中未设置覆盖网络,则 local_ip 将设置为 “ansible_ssh_host” 的值。

  • 已添加 horizon_apache_custom_log_format 可调参数到 os-horizon 角色,用于更改自定义日志格式。默认值为“combined”。

  • 已添加 keystone_apache_custom_log_format 可调参数,用于更改自定义日志格式。默认值为“combined”。

错误修复

  • 该角色先前没有在生成新规则文件后重启 audit 守护程序。已修复 bug,并且在任何 audit 规则更改后将重启 audit 守护程序。

  • 当安全角色在 Ansible 的检查模式下运行并且提供了标签时,check_mode 变量没有被设置。任何依赖于该变量的任务都会失败。已修复此 bug,并且 check_mode 变量现在在每次 playbook 运行时都正确设置。

  • 先前,ansible_managed 变量被用于在 swift.conf 中插入一个包含日期/时间信息的标头。这意味着 swift.conf 在不同的节点上没有相同的 MD5SUM,导致 swift-recon --md5 失败。我们现在插入一段静态文本来解决此问题。

13.1.3

升级说明

  • 已创建一个名为 openstack_domain 的新全局变量。该变量的默认值为 “openstack.local”。

错误修复

  • 安全角色先前将 /var/log/audit 中的所有 audit 日志文件的权限设置为 0400,但这会阻止 audit 守护程序写入活动日志文件。这将阻止 auditd 干净地启动或重启。

    该任务现在会删除任何不符合 STIG 要求的权限。任何满足或超过 STIG 要求的日志文件将不会被修改。

  • /var/lib/libvirt/qemu/save 目录现在是 {{ nova_system_home_folder }}/save 的符号链接,以解决默认位置由 libvirt 管理的保存命令使用,这可能导致在运行大型实例的 nova image-create 时,计算节点的根分区变得满的问题。

13.1.2

新特性

  • 新的 LBaaS v2 仪表板在 Horizon 中可用。部署者可以通过设置以下 Ansible 变量来启用该面板

    horizon_enable_neutron_lbaas: True
    

    os_horizon role 中的任务将确定正在使用哪个 LBaaS 版本(通过 neutron_plugin_base)并激活 LBaaS v1 或 v2 的正确面板。

  • Horizon 的 IPv6 支持现在可以通过 Ansible 变量进行配置。部署者可以通过设置以下变量来启用 Horizon 中的 IPv6 支持

    horizon_enable_ipv6: True
    

    请注意:即使禁用 IPv6 支持,Horizon 仍然会在各种面板中显示 IPv6 地址。但是,它不允许直接管理 IPv6 配置。

  • openstack-ansible-memcached_server role 包含一个新的覆盖,`memcached_connections`,它会根据 memcached 连接限制加上额外的 1k 来自动计算,以配置 OS nofile 限制。如果没有适当的 nofile 限制配置,memcached 将会崩溃,以支持更高的并行连接 TCP/Memcache 计数。

  • 允许设置 Swift 的 fallocate_reserve 选项(以字节为单位),以帮助防止磁盘被填满,并防止由于磁盘空间不足而 Swift 无法删除对象的情况。fallocate_reserve 值设置为默认值 10GB。

  • 通过将 swift_rsync_module_per_drive 设置为 True 来启用每个对象服务器驱动器的 rsync 模块。将其设置为配置 rsync 和 swift 以利用每个驱动器的单独配置。例如,在磁盘已满的情况下。

升级说明

  • Mitaka 发布说明 中所述,Neutron 现在可以正确计算并向实例通告 MTU。因此,从变量 neutron_dhcp_config 中删除用于通告实例 MTU 的默认 DHCP 配置。

  • Mitaka 发布说明 中所述,Neutron 现在可以正确计算并向实例通告 MTU。因此,已删除变量 neutron_network_device_mtu,并且模板中用于 advertise_mtupath_mtusegment_mtu 的硬编码值已被删除,以允许上游默认值按预期运行。

  • 一个新的 nova 管理端点将使用后缀 /v2.1/%(tenant_id)s 注册。可以使用后缀 /v2/%(tenant_id)s 的 nova 管理端点可以手动删除。

  • swift_max_rsync_connections 默认值已从 2 更改为 4,以匹配 OpenStack swift 记录的值。

错误修复

  • defaults/main.yml 中的基于字典的变量现在是单独的变量。无法按照文档说明更改字典型变量。而是需要覆盖整个字典。部署者必须使用新的变量名才能启用或禁用安全角色应用的安全性配置更改。有关更多信息,请参阅 Launchpad Bug 1577944

  • 默认情况下现在已禁用失败的访问日志记录,并且可以通过将 security_audit_failed_access 更改为 yes 来启用。rsyslog 守护程序定期检查日志文件的存在,此 audit 规则被触发的频率很高,这导致了非常大的 audit 日志。

  • 安全角色现在处理包含 Match 语句的 ssh_config 文件。会添加一个标记到配置文件中,任何新的配置项都将添加到该标记下方。此外,每次更改 ssh 配置文件时都会验证该文件。

  • nova 管理端点现在已正确注册为 /v2.1/%(tenant_id)s,而不是 /v2/%(tenant_id)s

  • 为了节省磁盘 IO 并减少由于 updatedb/mlocate 文件索引引起的 IOPS 突发,XFS 文件系统被排除在每日 mlocate crond 任务之外。

13.1.1

错误修复

  • 用于验证是否可以复制到容器缓存中的适当 ssh 公钥的检查已更正为检查部署主机,而不是 LXC 主机。

13.1.0

已知问题

  • Paramiko 2.0 Python 版本需要 Python cryptography 库。必须安装新的系统软件包才能使用此库。对于 OpenStack-Ansible 版本 <12.0.12、<11.2.15、<13.0.2,必须手动在 **部署主机** 上安装系统软件包,方法是执行 apt-get install -y build-essential libssl-dev libffi-dev

13.0.1

新特性

  • LXC 容器现在将在构建后任务期间设置适当的 RFC1034/5 主机名。通过将 inventory_hostname 中的所有 “_” 转换为 “-” 来创建 127.0.1.1 的 localhost 条目。容器将使用默认域名 openstack.local 创建。可以通过设置选项 lxc_container_domain 来自定义此域名以满足您的部署需求。

  • 已向 config_template action 插件添加了对 MultiStrOps 的支持。此更改更新了解析器以使用 set() 类型来确定给定键中的值是否应呈现为 MultiStrOps。如果使用覆盖在 INI 配置文件中,则使用标准的 yaml 构造“?”作为项目标记来定义 set 类型。

    # Example Override Entries
    Section:
      typical_list_things:
        - 1
        - 2
      multistrops_things:
        ? a
        ? b
    
    # Example Rendered Config:
    [Section]
    typical_list_things = 1,2
    multistrops_things = a
    multistrops_things = b
    
  • keepalived 有一个新的默认配置,支持超过 2 个节点。

  • 为了使用最新的稳定 keepalived 版本,必须将变量 keepalived_use_latest_stable 设置为 True

  • Neutron DHCP Agent、Metadata Agent 或 LinuxBridge Agent 是否应启用现在是根据设置的 neutron_plugin_typeneutron_ml2_mechanism_drivers 动态确定的。这旨在简化 Neutron 服务的配置,并消除部署者覆盖整个 neutron_services dict 变量以禁用这些服务的需要。

  • 现在可以可选地部署和配置 Neutron VPN as a Service (VPNaaS)。有关该服务是什么以及它提供的功能的详细信息,请参阅 OpenStack Networking Guide。有关实施细节,请参阅 VPNaaS 安装指南

已知问题

  • 在 keepalived 的最新稳定版本中,当部署者有超过五个 keepalived 节点时,优先级计算存在问题。该问题导致整个 keepalived 集群无法正常工作。为了解决此问题,建议部署者将 keepalived 节点的数量限制为不超过五个,或者将每个节点的优先级作为配置的一部分设置(例如 haproxy_keepalived_vars_file 变量)。

升级说明

  • LXC 容器现在将在构建后任务期间设置适当的 RFC1034/5 主机名。通过将 inventory_hostname 中的所有 “_” 转换为 “-” 来创建 127.0.1.1 的 localhost 条目。容器将使用默认域名 openstack.local 创建。可以通过设置选项 lxc_container_domain 来自定义此域名以满足您的部署需求。

  • MariaDB wait_timeout 设置已降低至 1 小时,以匹配 SQL Alchemy 池回收超时时间,从而防止不必要的数据库会话累积。

  • keepalived 有一个新的默认配置。运行 haproxy playbook 时,配置更改将导致 keepalived 重启,除非部署者使用了自定义配置文件。重启将导致 keepalived 管理的虚拟 IP 地址被短暂地取消配置,然后重新配置。

  • 如果将变量 keepalived_use_latest_stable 设置为 True 并且配置了多个 haproxy 节点,则将在 haproxy 节点上安装新版本的 keepalived。更新软件包将导致 keepalived 重启,因此 keepalived 管理的虚拟 IP 地址将被短暂地取消配置,然后重新配置。

  • Neutron DHCP Agent、Metadata Agent 或 LinuxBridge Agent 是否应启用现在是根据设置的 neutron_plugin_typeneutron_ml2_mechanism_drivers 动态确定的。这旨在简化 Neutron 服务的配置,并消除部署者覆盖整个 neutron_services dict 变量以禁用这些服务的需要。

  • Percona Xtrabackup 已从 Galera 客户端 role 中删除。

弃用说明

  • 变量 `galera_client_package_*``galera_client_apt_percona_xtrabackup_*` 已从 role 中删除,因为 Xtrabackup 不再部署。

安全问题

  • 已向 repo_servers 添加一个 sudoers 条目,以允许 nginx 用户通过 init 脚本停止和启动 nginx。这是为了确保 repo 同步过程可以在同步从主服务器到从服务器的数据时关闭 nginx。

  • Horizon 默认禁用浏览器中的密码自动完成功能,但部署者现在可以通过将 horizon_enable_password_autocomplete 设置为 True 来启用自动完成功能。

错误修复

  • 为了确保将适当的数据传递给 repo 服务器的请求者,在同步过程中将从服务器 repo_server Web 服务器置于离线状态。这可确保始终通过负载均衡器将正确的数据传递给请求者。

13.0.0

新特性

  • Ubuntu 有 4 种不同的“组件” - main、universe、multiverse 和 restricted

    • Main:官方支持的软件。

    • Restricted:支持的软件,但未完全免费许可。

    • Universe:社区维护的软件,即非官方支持的软件。

    • Multiverse:非自由软件。

    默认 apt 来源配置现在设置为仅包含 mainuniverse 组件,因为这些是功能部署所需的唯一组件。如果部署者希望包含其他组件,则可以在 /etc/openstack_deploy/user_variables.yml 中设置变量 lxc_container_template_apt_components,其中包含所需的完整组件列表。

  • Ceilometer 现在使用 Keystone v3 端点。“identity_uri”指令已被删除,因为它未被使用。“region_name”已添加。 “service_credentials”下的指令已更新以支持 keystoneauth 库

  • 在 dynamic_inventory.py 中添加了一个函数,以改进用户配置文件中不正确设置的识别。

  • 部署者可以选择性地为 nova 用户和组设置 UID 和/或 GID。这对于具有共享存储的环境很有帮助。

  • 已实现一个新的变量,称为 lxc_container_cache_files,它包含一个字典列表,用于指定部署主机上应复制到 LXC 容器缓存中的文件以及要分配给复制文件的属性。

  • haproxy-install.yml playbook 现在将作为 setup-infrastructure.yml 的一部分运行。

  • haproxy 日志现在可以在容器主机上的 /openstack/log/<haproxy 主机 名称>-haproxy/ 中找到(如果 haproxy 在容器中),或者如果 haproxy 直接安装在主机上,则在 /var/log/haproxy/ 中找到。

  • Horizon 部署现在支持由 horizon_customization_module 变量配置的提供商自定义模块。有关更多信息,请参阅 Horizon 文档

  • Keystone 的 v3 API 现在是所有服务的默认 API。

  • 在下载 LXC 缓存图像期间,TLS 证书链验证现在可以使用配置变量“lxc_cache_validate_certs”进行切换。默认行为是验证证书链。

  • 现在可以配置 Keystone 以使用多个 LDAP 或 Active Directory 身份后端。有关此功能的配置,请参阅 Keystone 配置 部分 安装指南

  • LBaaS v2 可用于部署,除了 LBaaS v1 之外。这两个版本是互斥的,不能同时运行。部署者需要在 LBaaS 版本之间切换时重新创建任何现有的负载均衡器。切换到 LBaaS v2 将停止任何现有的 LBaaS v1 负载均衡器。

  • 现在可以可选地部署和配置 Neutron Firewall as a Service (FWaaS)。有关该服务是什么以及它提供的功能的详细信息,请参阅 FWaaS 配置参考。有关实施细节,请参阅 FWaaS 安装指南

  • 部署者可以设置新的实例构建的默认可用区 (AZ),如果未提供 AZ。默认值为 None,但可以使用 Ansible 变量 nova_default_schedule_zone 进行更改。

  • 在 openstack-ansible-rabbitmq_server 角色中添加了两个新的变量(rabbitmq_async_threadsrabbitmq_process_limit)。rabbitmq_async_threads 变量限制文件和套接字 I/O 的异步线程数量。rabbitmq_process_limit 变量限制 erlang VM 内部支持的进程总数。

  • 默认情况下,OpenStack 服务现在使用 SSL 与 RabbitMQ 通信。可以通过在 /etc/openstack_deploy/user_variables.yml 中将 rabbit_use_ssl 设置为 false 来禁用此功能。默认行为是使用自签名证书进行通信。可以通过 SSL 文档中提到的过程进行更改。

  • 由于 OpenStack 软件的 manifest 文件使用上游仓库的精确内容,因此可重复部署现在更容易。可以在 manifest 中引用特定的提交或标签。yaprt 包不再用于构建仓库。

  • 开发人员可以通过在 /etc/openstack_deploy/ 中创建 YAML 文件来指定仓库构建过程中的其他 python 包。有关添加包的更多详细信息,请参阅 文档

升级说明

  • Ubuntu 有 4 种不同的“组件” - main、universe、multiverse 和 restricted

    • Main:官方支持的软件。

    • Restricted:支持的软件,但未完全免费许可。

    • Universe:社区维护的软件,即非官方支持的软件。

    • Multiverse:非自由软件。

    默认 apt 来源配置现在设置为仅包含 mainuniverse 组件,因为这些是功能部署所需的唯一组件。如果部署者希望包含其他组件,则可以在 /etc/openstack_deploy/user_variables.yml 中设置变量 lxc_container_template_apt_components,其中包含所需的完整组件列表。

  • pip_get_pip_options 覆盖已从 group_vars 中删除,导致使用空默认值。 以前,此方法用于适当地锁定 pip 安装源,但此功能已通过 pip_lock_down 角色处理了几个周期。如果部署者已基于以前的 group_vars 设置在 user_variables 中实施了覆盖,则应审查这些设置。现在可以使用此覆盖来满足 pip 安装需要额外选项以允许通过代理安装或禁用证书验证的情况。

  • dynamic_inventory.py 脚本现在接受 --config 参数,而不是 --file 参数。

  • 部署者可以选择从数据库中删除 Keystone v2 端点。这些端点将不会被升级过程删除。

  • 包含敏感 root 凭据的 .my.cnf 数据库访问配置文件现在仅分发给需要它进行故障排除的容器和主机。建议从所有主机和容器中删除此文件。只有 Utility 容器和 Galera 容器应该拥有此文件。可以通过从 /opt/openstack-ansible/ 目录执行 ansible 'all:!galera:!utility' -m shell -a 'rm -f /root/.my.cnf' 来完成此操作。

  • keystone_ldap 字典变量的第一层现在与 Keystone 域名相关。可以通过将 ldap 键重命名为域名“Default”来转换现有的 keystone_ldap 配置条目。 注意 域名条目区分大小写。

  • keystone_ldap_identity_driver 变量已被删除。Keystone 中 LDAP 后端的驱动程序现在仅使用值“ldap”。目前 Keystone 没有其他后端选项。

  • 现有的 LBaaS v1 负载均衡器和代理将不会被新的 OpenStack-Ansible 版本更改。

  • 已为 FWaaS neutron 插件添加数据库迁移任务。

  • Neutron 通知到 nova 现在将使用内部 API 端点,而不是公共端点。

  • repo-clone-mirror.yml playbook 已被删除,因为它不再被项目使用。

  • 已创建名为 nova_api 的新数据库。此数据库具有自己的用户凭据和 nova-manage db sync 过程。对于数据库密码,user_secrets.yml 中有一个新的变量条目,名为 nova_api_container_mysql_password

  • RabbitMQ 使用的 erlang 异步线程数已从默认的 32 增加到 128,以加快消息处理速度。

  • RabbitMQ 的最大 erlang 进程限制已设置为 1048576,以防止由于达到此限制而导致的虚拟机锁定。

  • 已删除部署配置文件 openstack_environment.yml,并且不再用于动态库存生成过程。此文件在 Liberty 版本中已在功能上与库存生成过程无关。

  • 插件文件夹已重命名为 Ansible 2.x 中使用的默认名称。这是为 Ansible 2.x 做好准备的一部分。具体重命名为 actions > actioncallbacks > callbackfilters > filterlookups > lookup

  • 过去,python2_lxc 的 git 源代码被用作包在 pypi 上不可用。现在该包 已发布,因此从 lxc_hosts playbook 中删除了 py_from_git 角色依赖项,该角色已从所需的角色列表中删除,并且仓库详细信息已从 repo_packages 文件中删除,因为不再需要这些详细信息。

  • 默认情况下,OpenStack 服务现在使用 SSL 与 RabbitMQ 通信。可以通过在 /etc/openstack_deploy/user_variables.yml 中将 rabbit_use_ssl 设置为 false 来禁用此功能。默认行为是使用自签名证书进行通信。可以通过 SSL 文档中提到的过程进行更改。

  • os_swift 和 os_swift_sync 角色已合并到单个 os_swift 角色中。已实现两个变量(swift_do_setupswift_do_sync)来执行安装和同步代码路径。已调整单独的 playbook 以使用这些变量,以确保行为与以前完全相同。

  • neutron_plugin_base 变量已修改为使用友好的名称。部署者应更改对此变量的任何自定义,以确保自定义使用短名称而不是完整的类路径。

  • 已为 LBaaS neutron 插件添加数据库迁移任务。

  • repo-store-source.yml playbook 已被删除,因为它不再需要。

  • 已删除变量 neutron_service_names。已实现一种更有效的方法来确定 Neutron 服务的重启列表。

弃用说明

  • dynamic_inventory.py 脚本现在接受 --config 参数,而不是 --file 参数。

  • neutron_plugin_base 中使用的旧类路径名称已被弃用,以支持友好的名称。对类路径插件的支持将在 OpenStack Newton 周期中删除。

安全问题

  • 已向 repo_servers 添加一个 sudoers 条目,允许 nginx 用户从 init 脚本停止和启动 NGINX。这确保了仓库同步过程可以在同步从 master 到 slaves 的数据时关闭 NGINX。

  • 包含敏感 root 凭据的 .my.cnf 数据库访问配置文件现在仅分发给需要它进行故障排除的容器和主机。

  • 启用后,Neutron 防火墙即服务 (FWaaS) 为项目提供实施边界安全(在路由器处进行过滤)的选项,这增加了实例接口处提供的“安全组”过滤。

  • 默认情况下,OpenStack 服务现在使用 SSL 与 RabbitMQ 通信。可以通过在 /etc/openstack_deploy/user_variables.yml 中将 rabbit_use_ssl 设置为 false 来禁用此功能。默认行为是使用自签名证书进行通信。可以通过 SSL 文档中提到的过程进行更改。

错误修复

  • 当容器尝试从尚未完成同步的 slave repo 服务器检索包时,容器可能会失败。有关更多信息,请参阅 https://bugs.launchpad.net/openstack-ansible/+bug/1543146。通过向 lsyncd 添加预和后挂钩来解决此问题,以连接到 slave repo 服务器并在同步期间禁用 NGINX。

  • 添加多域 LDAP 配置支持留下了一个默认域的配置文件,该配置文件会导致 Keystone 出现问题。如果部署者不使用带有 LDAP 后端的 Default 域,则会自动删除此文件。(Bug 1547542

  • python 包 pipsetuptoolswheel 现在都按标签固定。这些固定会随着每个 OpenStack 服务更新而更新。这是为了确保在发布标签时使用最新的可用包的一致构建体验。部署者可以通过在 user_variables.yml 中添加一个所需的固定列表来覆盖这些固定。

其他说明

  • Neutron 通知到 nova 现在将使用内部 API 端点,而不是公共端点。