Newton 系列发布说明

14.2.16-7

已知问题

  • 如果仍在使用的 newton 版本执行了新的构建,由于在 newton 声明生命周期结束 (EOL) 后发布了一个新的 PBR 库版本,repo-build 过程将会失败。如果环境中正在使用 gnocchi,此问题将会出现,也可能表现为其他服务的 venv 构建失败。可以通过将环境升级到最新的 OpenStack-Ansible Ocata 版本,或者执行以下操作来解决此问题。

    • Fork openstack/openstack-ansible-repo_build git 仓库。

    • 在 fork 中基于 newton-eol 标签创建一个 stable/newton 分支。

    • https://review.openstack.org/557757 cherry-pick 到该分支的 fork 中。

    • Fork openstack/openstack-ansible git 仓库。

    • 修改 ansible-role-requirements.yml 文件,以包含您修补后的 repo_build role 的 URL 和 git SHA。

    完成此操作后,repo 构建过程应该像以前一样完成,并且可以部署更新后的软件。

  • os_neutron role 使用与 etcd role 相同的 handler 名称来执行 systemcl daemon-reload。鉴于 newton 使用 Ansible 2.1.x,并且该版本的 Ansible 无法在一个 playbook 中处理多个具有相同名称的 handler,因此只有一个 handler 会被执行。被执行的 handler 是 etcd handler,除非部署正在使用 Calico,否则该 handler 会被跳过。

    这导致对 newton 软件的任何升级都不会运行预期的 neutron 软件版本。可以通过观察正在运行的进程仍然使用旧的软件 venv 来验证这一点。

    可以通过将环境升级到最新的 OpenStack-Ansible Ocata 版本,或者执行以下操作来解决此问题。

    • Fork openstack/openstack-ansible-os_neutron git 仓库。

    • 在 fork 中基于 newton-eol 标签创建一个 stable/newton 分支。

    • 修改名为 Reload systemd daemon 的 handler 及其在 role 中的所有引用,更改为其他名称(例如 os_neutron Reload systemd daemon)。

    • Fork openstack/openstack-ansible git 仓库。

    • 修改 ansible-role-requirements.yml 文件,以包含您修补后的 os_neutron role 的 URL 和 git SHA。

    完成此操作后,neutron 服务的升级过程将正常工作。

  • lxc_hosts role 执行中,我们使用 images.linuxcontainers.org 每天生成的镜像。这些镜像的生成方式的近期更改导致默认 /etc/resolve.conf 在该默认镜像中发生了更改。因此,在执行缓存准备时,它会失败。对于 newton queens 版本,解决此错误的解决方法是在 /etc/openstack_deploy/user_variables.yml 文件中添加以下内容。

    lxc_cache_prep_pre_commands: "rm -f /etc/resolv.conf || true"
    lxc_cache_prep_post_commands: "ln -s ../run/resolvconf/resolv.conf /etc/resolv.conf -f"
    

14.2.16

其他说明

  • Icehouse 发布以来,max_fail_percentage playbook 选项一直与默认 playbook 一起使用。虽然本意是在单个节点由于瞬态问题而失败的情况下,允许大规模部署成功,但此选项产生的问题比它解决的问题更多。如果发生瞬态但低于设置的失败百分比的故障,playbook 将报告成功,这可能导致根据故障发生的位置出现静默故障。如果部署者发现自己处于这种情况,问题会进一步加剧,因为工具将报告没有已知问题。为了确保部署者获得最佳的部署体验和最准确的信息,我们更改了默认 playbook 中删除 max_fail_percentage 选项。删除此选项的副作用是,如果需要从运行中省略某个主机,则需要跳过特定的主机,但好处是消除了静默的、难以追踪的故障。要跳过给定 playbook 运行中的故障主机,请使用特定运行的 –limit ‘!$HOSTNAME’ CLI 开关。在解决故障主机的问题后,重新运行特定的 playbook,而无需 –limit 选项,以确保一切同步。

14.2.15

新特性

  • galera 集群现在支持通过 HTTP 使用端口 9200 进行集群健康检查。新的集群检查通过使用监控用户对 wsrep sync 状态运行简单的查询来确保节点健康。此更改将提供更强大的集群检查,确保我们拥有尽可能容错的 galera 集群。

  • Galera 健康检查已得到改进,并且依赖于 xinetd 服务。默认情况下,该服务无法访问(使用 no_access 指令进行过滤)。可以通过将任何 xinetd 有效值设置为 galera_monitoring_allowed_source 来覆盖该指令。

  • 使用不在 Ansible 库存中的后端节点的 HAProxy 服务现在可以通过设置 haproxy_backend_nodesnameip_addr 设置列表来手动指定。

已知问题

  • 对于所有 newton 版本,直到 14.2.14,在执行 os-nova-install.yml playbook 时,nova-novncproxynova-spicehtml5proxy 服务将失败。解决此问题的解决方法是重新启动这些服务。

    cd /opt/rpc-openstack/openstack-ansible/playbooks
    # start the service again
    # replace nova-novncproxy with nova-spicehtml5proxy when appropriate
    ansible nova_console -m service -a 'name=nova-novncproxy state=restarted'
    # set the appropriate facts to prevent the playbook trying
    # to reload it again when the playbook is run again
    ansible nova_console -m ini_file -a 'dest=/etc/ansible/facts.d/openstack_ansible.fact section=nova option=need_service_restart value=False'
    

    此问题已在 14.2.15 版本中解决。

14.2.12

已知问题

  • 如果 keystone admin 或 internal 端点的协议为“https”,并且 SSL 在负载均衡器处终止,则验证服务响应并执行通过 keystone 主机 Web 服务器端口的初始服务设置的任务可能会失败。

    keystone_mod_wsgi_enabled 设置为 false 以使用 Uwsgi 部署 Keystone,并允许在这些任务期间绕过 Web 服务器。

    有关更多详细信息,请参阅 Launchpad Bug 1699191

14.2.11

错误修复

  • 在所有发行版上都安装了 sysstat 包,但它仅配置为在 Ubuntu 和 OpenSUSE 上运行。由于 /etc/cron.d/sysstat 上的 SELinux 上下文和文件权限不正确,它无法在 CentOS 上运行。此问题已得到修复,并且 sysstat 现在可以在 CentOS 上正常运行。

14.2.10

新功能

  • 已添加一个用于安装来自 ESL(erlang solutions)的现代 erlang 的新仓库,使我们能够安装和支持跨多个操作系统的现代稳定 erlang 版本。

  • 已添加设置 RabbitMQ 仓库 URL(包括 erlang 和 RabbitMQ 本身)的功能。这是为了允许部署者定义给定仓库的位置,而无需完全重新定义特定仓库的整个定义集。已创建默认变量 rabbitmq_gpg_keysrabbitmq_repo_urlrabbitmq_erlang_repo_url 以促进此功能。

  • RabbitMQ 的默认 ulimit 现在为 65536。部署者仍然可以使用 Ansible 变量 rabbitmq_ulimit 调整此限制。

升级说明

  • 切换到 ESL 仓库不会产生升级影响。ESL 提供的 erlang 版本比发行版仓库中的版本更新。此外,已添加一个引脚,以确保 APT 始终将 ESL 仓库用作首选源,这是为了确保 APT 始终指向 ESL。

安全问题

  • 在以前的版本中,net.bridge.bridge-nf-call-* 内核参数设置为 0 以提高性能,并将调整这些参数的任务留给 neutron 在应用安全组时执行。这可能导致桥接流量未通过 iptables,从而使安全组失效。这可能允许云中的意外入站和出站流量。

    现在,openstack_hosts role 在所有主机上将这些内核参数设置为 1,以确保桥接流量始终通过 iptables。

  • PermitRootLogin 在 ssh 配置中已从 yes 更改为 without-password。这将仅允许使用密钥通过 ssh 身份验证 root。

Bug 修复

14.2.9

新功能

  • 已将前缀“common-”添加到所有常见标签中。这是为了允许部署者根据需要快速运行任何常见标签,而无需重新运行整个 playbook。

  • 可以通过将项目添加到 keystone_extra_headers 来向 Keystone 响应添加额外的标头。示例

    keystone_extra_headers:
      - parameter: "Access-Control-Expose-Headers"
        value: "X-Subject-Token"
      - parameter: "Access-Control-Allow-Headers"
        value: "Content-Type, X-Auth-Token"
      - parameter: "Access-Control-Allow-Origin"
        value: "*"
    

升级说明

  • openstack-ansible-security role 已退役,ansible-hardening role 取代了它。ansible-hardening role 提供相同的功能,并将成为维护的强化 role。

Bug 修复

  • 在 Ubuntu 中,dnsmasq 包实际上包含 init 脚本和与 LXC 冲突的最佳不包含的服务配置。实际的依赖包是 dnsmasq-base。已调整软件包列表,并添加了一个任务以删除 dnsmasq 包并从所有 LXC 主机中清除相关的配置文件。

14.2.8

新功能

  • os_nova role 现在提供在完成数据库同步后执行在线数据迁移的功能。数据迁移将不会执行,直到布尔变量 nova_all_software_updated 为 true。此变量需要由使用该 role 的 playbook 设置。

升级说明

  • LXC 容器将与其物理主机机器同步 TZ 数据。这是因为容器一直被假定为使用 UTC,而主机可以使用其他设置。这会在某些服务(如 celiometer)中导致问题,并可能导致日志中出现一般的时间差异。

Bug 修复

  • MariaDB 10.0.32 于 8 月 17 日发布,当配置为使用 xtrabackup 作为 SST 时,需要 percona xtrabackup 版本 2.3.5 或更高版本。由于 xtrabackup 是 galera_server role 中的默认 SST 机制,因此用于 x86_64 硬件体系结构的版本已从 2.2.13 更新到 2.3.5。有关更多详细信息,请参阅 percona 2.3.2 版本的发布说明

14.2.7

新功能

  • os_cinder role 现在提供在完成数据库同步后执行在线数据迁移的功能。数据迁移将不会执行,直到布尔变量 cinder_all_software_updated 为 true。此变量需要由使用该 role 的 playbook 设置。

  • os-cinder-install.yml playbook 现在将执行 cinder 的滚动升级,包括数据库迁移(模式和在线迁移),具体过程如 cinder 文档 中所述。当使用 haproxy 作为负载均衡器时,将被更改的后端将在进行更改之前被清空,并在更改完成后重新添加到池中。

  • 现在可以禁用 horizon 中的 heat stack 密码字段。已添加变量 horizon_enable_heatstack_user_pass,默认值为 True。

  • os-neutron-install.yml playbook 现在将执行 neutron 的滚动升级,包括数据库迁移(扩展和收缩),具体过程如 neutron 文档 中所述。

  • os-nova-install.yml playbook 现在将执行 nova 的滚动升级,包括数据库迁移,具体过程如 nova 文档 中所述。

升级说明

  • 整个 repo 构建过程现在是幂等的。从现在开始,当重新运行 repo 构建时,它只会获取更新的 git 仓库,并在需求发生变化或正在部署新版本时重建 wheels/venvs。

  • repo 构建过程中的 git 克隆部分现在仅在需求发生变化时发生。可以使用布尔变量 repo_build_git_reclone 强制执行 git 重克隆。

  • python wheel 构建过程现在仅在需求发生变化时发生。可以使用布尔变量 repo_build_wheel_rebuild 强制执行 wheel 重建。

  • python venv 构建过程现在仅在需求发生变化时发生。可以使用布尔变量 repo_build_venv_rebuild 强制执行 venv 重建。

  • repo 构建过程现在只有以下标签,为每个交付物提供清晰的路径。标签 repo-build-install 完成所需软件包的安装。标签 repo-build-wheels 完成 wheel 构建过程。标签 repo-build-venvs 完成 venv 构建过程。最后,标签 repo-build-index 完成 os-releases 和 links 文件夹的清单准备和索引。

14.2.6

新功能

  • 已添加变量 horizon_images_allow_location 以支持 horizon_local_settings.py 文件中的 IMAGES_ALLOW_LOCATION 设置,以便在创建镜像时指定外部位置。

14.2.5

新功能

  • 可以使用新的选项 haproxy_backend_arguments 向 HAProxy 后端添加任意选项,例如 tcp-check 或 http-check。

14.2.4

已知问题

  • 在执行包含遥测系统(ceilometer、gnocchi、aodh)的部署时,由于 pip 无法正确从 ceilometer 的 setup.cfg 的 extras 部分读取约束,repo 构建将失败。当前的解决方法是在 /etc/openstack_deploy/user_variables.yml 中添加以下内容。

    repo_build_upper_constraints_overrides:
      - gnocchiclient<3.0.0
    

错误修复

  • 不再需要将 gnocchiclient 添加到 repo_build_upper_constraints_overrides 变量的解决方法。适当的约束已实现为全局固定。

  • 上游现在依赖于 ldappool 的 2.1.0 版本。

14.2.3

新功能

  • 已添加新变量,允许部署者根据自己的喜好自定义 aodh systemd 单元文件。

  • 删除 aodh systemd 单元文件的任务现在使用 config_template 操作插件,允许部署者访问自定义单元文件,而无需将额外的选项加载到默认值中,并用 jinja2 变量和条件污染通用的 systemd 单元文件。

  • 对于 os_aodh 角色,systemd 单元 TimeoutSec 值,它控制在停止或重新启动服务时发送 SIGTERM 信号和 SIGKILL 信号之间的时间,已从 300 秒减少到 120 秒。这为长寿命会话提供了 2 分钟的排空时间,同时防止在重新启动或停止之前启动新的会话。控制服务停止和重新启动之间的时间的 RestartSec 值已从 150 秒减少到 2 秒,以加快重新启动速度。可以使用 aodh_*_init_config_overrides 变量调整这些值,这些变量使用 config_template 任务来更改模板默认值。

  • 已添加新变量,允许部署者根据自己的喜好自定义 ceilometer systemd 单元文件。

  • 删除 ceilometer systemd 单元文件的任务现在使用 config_template 操作插件,允许部署者访问自定义单元文件,而无需将额外的选项加载到默认值中,并用 jinja2 变量和条件污染通用的 systemd 单元文件。

  • 对于 os_ceilometer 角色,systemd 单元 TimeoutSec 值,它控制在停止或重新启动服务时发送 SIGTERM 信号和 SIGKILL 信号之间的时间,已从 300 秒减少到 120 秒。这为长寿命会话提供了 2 分钟的排空时间,同时防止在重新启动或停止之前启动新的会话。控制服务停止和重新启动之间的时间的 RestartSec 值已从 150 秒减少到 2 秒,以加快重新启动速度。可以使用 ceilometer_*_init_config_overrides 变量调整这些值,这些变量使用 config_template 任务来更改模板默认值。

  • 已添加新变量,允许部署者根据自己的喜好自定义 cinder systemd 单元文件。

  • 删除 cinder systemd 单元文件的任务现在使用 config_template 操作插件,允许部署者访问自定义单元文件,而无需将额外的选项加载到默认值中,并用 jinja2 变量和条件污染通用的 systemd 单元文件。

  • 已添加新变量,允许部署者根据自己的喜好自定义 glance systemd 单元文件。

  • 删除 glance systemd 单元文件的任务现在使用 config_template 操作插件,允许部署者访问自定义单元文件,而无需将额外的选项加载到默认值中,并用 jinja2 变量和条件污染通用的 systemd 单元文件。

  • 对于 os_glance 角色,systemd 单元 RestartSec 值,它控制服务停止和重新启动之间的时间,已从 150 秒减少到 2 秒,以加快重新启动速度。可以使用 glance_*_init_config_overrides 变量调整此值,这些变量使用 config_template 任务来更改模板默认值。

  • 已添加新变量,允许部署者根据自己的喜好自定义 gnocchi systemd 单元文件。

  • 删除 gnocchi systemd 单元文件的任务现在使用 config_template 操作插件,允许部署者访问自定义单元文件,而无需将额外的选项加载到默认值中,并用 jinja2 变量和条件污染通用的 systemd 单元文件。

  • 对于 os_gnocchi 角色,systemd 单元 TimeoutSec 值,它控制在停止或重新启动服务时发送 SIGTERM 信号和 SIGKILL 信号之间的时间,已从 300 秒减少到 120 秒。这为长寿命会话提供了 2 分钟的排空时间,同时防止在重新启动或停止之前启动新的会话。控制服务停止和重新启动之间的时间的 RestartSec 值已从 150 秒减少到 2 秒,以加快重新启动速度。可以使用 gnocchi_*_init_config_overrides 变量调整这些值,这些变量使用 config_template 任务来更改模板默认值。

  • 已添加新变量,允许部署者根据自己的喜好自定义 heat systemd 单元文件。

  • 删除 heat systemd 单元文件的任务现在使用 config_template 操作插件,允许部署者访问自定义单元文件,而无需将额外的选项加载到默认值中,并用 jinja2 变量和条件污染通用的 systemd 单元文件。

  • 对于 os_heat 角色,systemd 单元 TimeoutSec 值,它控制在停止或重新启动服务时发送 SIGTERM 信号和 SIGKILL 信号之间的时间,已从 300 秒减少到 120 秒。这为长寿命会话提供了 2 分钟的排空时间,同时防止在重新启动或停止之前启动新的会话。控制服务停止和重新启动之间的时间的 RestartSec 值已从 150 秒减少到 2 秒,以加快重新启动速度。可以使用 heat_*_init_config_overrides 变量调整这些值,这些变量使用 config_template 任务来更改模板默认值。

  • 已添加新变量,允许部署者根据自己的喜好自定义 ironic systemd 单元文件。

  • 删除 ironic systemd 单元文件的任务现在使用 config_template 操作插件,允许部署者访问自定义单元文件,而无需将额外的选项加载到默认值中,并用 jinja2 变量和条件污染通用的 systemd 单元文件。

  • 对于 os_ironic 角色,systemd 单元 TimeoutSec 值,它控制在停止或重新启动服务时发送 SIGTERM 信号和 SIGKILL 信号之间的时间,已从 300 秒减少到 120 秒。这为长寿命会话提供了 2 分钟的排空时间,同时防止在重新启动或停止之前启动新的会话。控制服务停止和重新启动之间的时间的 RestartSec 值已从 150 秒减少到 2 秒,以加快重新启动速度。可以使用 ironic_*_init_config_overrides 变量调整这些值,这些变量使用 config_template 任务来更改模板默认值。

  • 已添加新变量,允许部署者根据自己的喜好自定义 keystone systemd 单元文件。

  • 删除 keystone systemd 单元文件的任务现在使用 config_template 操作插件,允许部署者访问自定义单元文件,而无需将额外的选项加载到默认值中,并用 jinja2 变量和条件污染通用的 systemd 单元文件。

  • 对于 os_keystone 角色,控制在停止或重启服务时发送 SIGTERM 信号和 SIGKILL 信号之间的时间的 systemd unit TimeoutSec 值已从 300 秒减少到 120 秒。这为长寿命会话提供了 2 分钟的排空时间,同时防止在重启或停止之前启动新的会话。控制重启时服务停止和启动之间的时间的 RestartSec 值已从 150 秒减少到 2 秒,以加快重启速度。这些值可以通过使用 keystone_*_init_config_overrides 变量进行调整,这些变量使用 config_template 任务来更改模板默认值。

  • 移除了 nova.conf 中设置 rbd_userrbd_secret_uuid 变量时对 cinder_backends_rbd_inuse 的依赖。Cinder 通过 RPC 在附加卷时传递所有必要的值,因此这些变量仅对存储在 Ceph 中的临时磁盘是必需的。这些变量需要在 cinder-volume 侧的后端部分中进行设置。

  • 已添加新变量,允许部署者根据自己的喜好自定义 magnum systemd unit 文件。

  • 现在,删除 magnum systemd unit 文件的任务使用 config_template 操作插件,允许部署者根据自己的需要自定义 unit 文件,而无需将额外的选项加载到默认值中,并用 jinja2 变量和条件语句污染通用的 systemd unit 文件。

  • 对于 os_magnum 角色,控制在停止或重启服务时发送 SIGTERM 信号和 SIGKILL 信号之间的时间的 systemd unit TimeoutSec 值已从 300 秒减少到 120 秒。这为长寿命会话提供了 2 分钟的排空时间,同时防止在重启或停止之前启动新的会话。控制重启时服务停止和启动之间的时间的 RestartSec 值已从 150 秒减少到 2 秒,以加快重启速度。这些值可以通过使用 magnum_*_init_config_overrides 变量进行调整,这些变量使用 config_template 任务来更改模板默认值。

  • 已添加新变量,允许部署者根据自己的喜好自定义 neutron systemd unit 文件。

  • 现在,删除 neutron systemd unit 文件的任务使用 config_template 操作插件,允许部署者根据自己的需要自定义 unit 文件,而无需将额外的选项加载到默认值中,并用 jinja2 变量和条件语句污染通用的 systemd unit 文件。

  • 对于 os_neutron 角色,控制在停止或重启服务时发送 SIGTERM 信号和 SIGKILL 信号之间的时间的 systemd unit TimeoutSec 值已从 300 秒减少到 120 秒。这为长寿命会话提供了 2 分钟的排空时间,同时防止在重启或停止之前启动新的会话。控制重启时服务停止和启动之间的时间的 RestartSec 值已从 150 秒减少到 2 秒,以加快重启速度。这些值可以通过使用 neutron_*_init_config_overrides 变量进行调整,这些变量使用 config_template 任务来更改模板默认值。

  • 已添加新变量,允许部署者根据自己的喜好自定义 nova systemd unit 文件。

  • 现在,删除 nova systemd unit 文件的任务使用 config_template 操作插件,允许部署者根据自己的需要自定义 unit 文件,而无需将额外的选项加载到默认值中,并用 jinja2 变量和条件语句污染通用的 systemd unit 文件。

  • 对于 os_nova 角色,控制在停止或重启服务时发送 SIGTERM 信号和 SIGKILL 信号之间的时间的 systemd unit TimeoutSec 值已从 300 秒减少到 120 秒。这为长寿命会话提供了 2 分钟的排空时间,同时防止在重启或停止之前启动新的会话。控制重启时服务停止和启动之间的时间的 RestartSec 值已从 150 秒减少到 2 秒,以加快重启速度。这些值可以通过使用 nova_*_init_config_overrides 变量进行调整,这些变量使用 config_template 任务来更改模板默认值。

  • 已添加新变量,允许部署者根据自己的喜好自定义 swift systemd unit 文件。

  • 现在,删除 swift systemd unit 文件的任务使用 config_template 操作插件,允许部署者根据自己的需要自定义 unit 文件,而无需将额外的选项加载到默认值中,并用 jinja2 变量和条件语句污染通用的 systemd unit 文件。

  • 对于 os_swift 角色,控制在停止或重启服务时发送 SIGTERM 信号和 SIGKILL 信号之间的时间的 systemd unit TimeoutSec 值已从 300 秒减少到 120 秒。这为长寿命会话提供了 2 分钟的排空时间,同时防止在重启或停止之前启动新的会话。控制重启时服务停止和启动之间的时间的 RestartSec 值已从 150 秒减少到 2 秒,以加快重启速度。这些值可以通过使用 swift_*_init_config_overrides 变量进行调整,这些变量使用 config_template 任务来更改模板默认值。

升级说明

  • 对于 os_aodh 角色,systemd 单元 TimeoutSec 值,它控制在停止或重新启动服务时发送 SIGTERM 信号和 SIGKILL 信号之间的时间,已从 300 秒减少到 120 秒。这为长寿命会话提供了 2 分钟的排空时间,同时防止在重新启动或停止之前启动新的会话。控制服务停止和重新启动之间的时间的 RestartSec 值已从 150 秒减少到 2 秒,以加快重新启动速度。可以使用 aodh_*_init_config_overrides 变量调整这些值,这些变量使用 config_template 任务来更改模板默认值。

  • 对于 os_ceilometer 角色,systemd 单元 TimeoutSec 值,它控制在停止或重新启动服务时发送 SIGTERM 信号和 SIGKILL 信号之间的时间,已从 300 秒减少到 120 秒。这为长寿命会话提供了 2 分钟的排空时间,同时防止在重新启动或停止之前启动新的会话。控制服务停止和重新启动之间的时间的 RestartSec 值已从 150 秒减少到 2 秒,以加快重新启动速度。可以使用 ceilometer_*_init_config_overrides 变量调整这些值,这些变量使用 config_template 任务来更改模板默认值。

  • 对于 os_glance 角色,systemd 单元 RestartSec 值,它控制服务停止和重新启动之间的时间,已从 150 秒减少到 2 秒,以加快重新启动速度。可以使用 glance_*_init_config_overrides 变量调整此值,这些变量使用 config_template 任务来更改模板默认值。

  • 对于 os_gnocchi 角色,systemd 单元 TimeoutSec 值,它控制在停止或重新启动服务时发送 SIGTERM 信号和 SIGKILL 信号之间的时间,已从 300 秒减少到 120 秒。这为长寿命会话提供了 2 分钟的排空时间,同时防止在重新启动或停止之前启动新的会话。控制服务停止和重新启动之间的时间的 RestartSec 值已从 150 秒减少到 2 秒,以加快重新启动速度。可以使用 gnocchi_*_init_config_overrides 变量调整这些值,这些变量使用 config_template 任务来更改模板默认值。

  • 对于 os_heat 角色,systemd 单元 TimeoutSec 值,它控制在停止或重新启动服务时发送 SIGTERM 信号和 SIGKILL 信号之间的时间,已从 300 秒减少到 120 秒。这为长寿命会话提供了 2 分钟的排空时间,同时防止在重新启动或停止之前启动新的会话。控制服务停止和重新启动之间的时间的 RestartSec 值已从 150 秒减少到 2 秒,以加快重新启动速度。可以使用 heat_*_init_config_overrides 变量调整这些值,这些变量使用 config_template 任务来更改模板默认值。

  • 对于 os_ironic 角色,systemd 单元 TimeoutSec 值,它控制在停止或重新启动服务时发送 SIGTERM 信号和 SIGKILL 信号之间的时间,已从 300 秒减少到 120 秒。这为长寿命会话提供了 2 分钟的排空时间,同时防止在重新启动或停止之前启动新的会话。控制服务停止和重新启动之间的时间的 RestartSec 值已从 150 秒减少到 2 秒,以加快重新启动速度。可以使用 ironic_*_init_config_overrides 变量调整这些值,这些变量使用 config_template 任务来更改模板默认值。

  • 对于 os_keystone 角色,控制在停止或重启服务时发送 SIGTERM 信号和 SIGKILL 信号之间的时间的 systemd unit TimeoutSec 值已从 300 秒减少到 120 秒。这为长寿命会话提供了 2 分钟的排空时间,同时防止在重启或停止之前启动新的会话。控制重启时服务停止和启动之间的时间的 RestartSec 值已从 150 秒减少到 2 秒,以加快重启速度。这些值可以通过使用 keystone_*_init_config_overrides 变量进行调整,这些变量使用 config_template 任务来更改模板默认值。

  • 对于 os_magnum 角色,控制在停止或重启服务时发送 SIGTERM 信号和 SIGKILL 信号之间的时间的 systemd unit TimeoutSec 值已从 300 秒减少到 120 秒。这为长寿命会话提供了 2 分钟的排空时间,同时防止在重启或停止之前启动新的会话。控制重启时服务停止和启动之间的时间的 RestartSec 值已从 150 秒减少到 2 秒,以加快重启速度。这些值可以通过使用 magnum_*_init_config_overrides 变量进行调整,这些变量使用 config_template 任务来更改模板默认值。

  • 对于 os_neutron 角色,控制在停止或重启服务时发送 SIGTERM 信号和 SIGKILL 信号之间的时间的 systemd unit TimeoutSec 值已从 300 秒减少到 120 秒。这为长寿命会话提供了 2 分钟的排空时间,同时防止在重启或停止之前启动新的会话。控制重启时服务停止和启动之间的时间的 RestartSec 值已从 150 秒减少到 2 秒,以加快重启速度。这些值可以通过使用 neutron_*_init_config_overrides 变量进行调整,这些变量使用 config_template 任务来更改模板默认值。

  • 对于 os_nova 角色,控制在停止或重启服务时发送 SIGTERM 信号和 SIGKILL 信号之间的时间的 systemd unit TimeoutSec 值已从 300 秒减少到 120 秒。这为长寿命会话提供了 2 分钟的排空时间,同时防止在重启或停止之前启动新的会话。控制重启时服务停止和启动之间的时间的 RestartSec 值已从 150 秒减少到 2 秒,以加快重启速度。这些值可以通过使用 nova_*_init_config_overrides 变量进行调整,这些变量使用 config_template 任务来更改模板默认值。

  • 对于 os_swift 角色,控制在停止或重启服务时发送 SIGTERM 信号和 SIGKILL 信号之间的时间的 systemd unit TimeoutSec 值已从 300 秒减少到 120 秒。这为长寿命会话提供了 2 分钟的排空时间,同时防止在重启或停止之前启动新的会话。控制重启时服务停止和启动之间的时间的 RestartSec 值已从 150 秒减少到 2 秒,以加快重启速度。这些值可以通过使用 swift_*_init_config_overrides 变量进行调整,这些变量使用 config_template 任务来更改模板默认值。

14.2.2

新特性

  • 允许使用 SSL 支持通过 SSL 连接到 Galera。必须将 galera_use_ssl 选项设置为 true,在这种情况下,自签名 CA 证书或用户提供的 CA 证书将传递到容器/主机。

  • 实现了与 MySQL 的 SSL 连接能力。必须将 galera_use_ssl 选项设置为 true(默认),在这种情况下,playbooks 会创建自签名 SSL 捆绑包并设置 MySQL 配置以使用它,或在 Galera 节点之间分发用户提供的捆绑包。

错误修复

  • 使用 libguestfs(libvirt 密码/密钥注入)的 Nova 特性现在可以在运行 Ubuntu 的计算主机上工作。当 Nova 部署到 Ubuntu 计算主机,并且 nova_libvirt_inject_keynova_libvirt_inject_password 设置为 True 时,/boot/vmlinuz-* 中存储的内核将对 nova 用户可读。请参阅 launchpad bug 1507915。

14.2.1

新特性

  • 添加了对 cinder v3 api 的支持。默认情况下启用此功能,但可以通过将 cinder_enable_v3_api 变量设置为 false 来禁用它。

  • 对于 os_cinder 角色,控制在停止或重启服务时发送 SIGTERM 信号和 SIGKILL 信号之间的时间的 systemd unit TimeoutSec 值已从 300 秒减少到 120 秒。这为长寿命会话提供了 2 分钟的排空时间,同时防止在重启或停止之前启动新的会话。控制重启时服务停止和启动之间的时间的 RestartSec 值已从 150 秒减少到 2 秒,以加快重启速度。这些值可以通过使用 cinder_*_init_config_overrides 变量进行调整,这些变量使用 config_template 任务来更改模板默认值。

  • Haproxy-server 角色允许设置可调参数。为此,有必要在配置文件中设置一个选项字典,提及需要更改的选项(其余选项的默认值在模板中编程)。此外,“maxconn”全局选项也设置为可调参数。

  • 添加了对 neutron 作为 enabled_network_interface 的支持。

  • 变量 ironic_neutron_provisioning_network_nameironic_neutron_cleaning_network_name 可以设置为用于配置和清理的 neutron 网络的名称。ansible 任务将确定该网络的适当 UUID。或者,可以使用 ironic_neutron_provisioning_network_uuidironic_neutron_cleaning_network 直接指定网络的 UUID。如果同时指定 ironic_neutron_provisioning_network_nameironic_neutron_provisioning_network_uuid,则将使用指定的 UUID。如果仅指定配置网络,则清理网络将默认为相同的网络。

升级说明

  • 在升级 keepalived 角色期间,keepalived 进程将重启并引入简短的服务中断。

弃用说明

  • 变量 cinder_sigkill_timeoutcinder_restart_wait 已被弃用,将在 Pike 中删除。

关键问题

  • 已修复一个错误,该错误导致在重建第一个 Keystone 容器期间运行 playbook 时 Keystone 凭证密钥丢失。有关更多详细信息,请参阅 launchpad bug 1667960。

其他说明

14.2.0

新特性

  • 如果设置了 galera_repo_url 的值,galera_client 角色将默认使用 galera_repo_url URL。这简化了使用 MariaDB 服务器和客户端的替代镜像,因为只需要设置一个变量即可覆盖它们。

  • 为 neutron 库添加了 get_networks 命令。这将返回所有网络的网络信息,如果指定的 net_name 网络不存在,则会失败。如果未指定 net_name,将返回所有网络的网络信息,而不会检查现有 net_name 网络。

  • 如果存在匹配的服务名称、类型、区域和接口,keystone 模块的 ensure_endpoint 方法的默认行为已更改为更新现有的端点。这确保了每个区域不存在重复的服务条目。

  • 已更新 repo 服务器文件系统结构,以允许同时运行多个操作系统和多个体系结构,并从单个服务器提供服务,而不会影响池、venv、wheel 存档和清单。新的结构遵循以下模式 $RELEASE/$OS_TYPE-$ARCH,并已应用于 os-releasesvenvspools

  • 部署者现在可以定义一个环境变量 GROUP_VARS_PATH,其中包含他们选择的文件夹(用冒号分隔),以定义用户空间 group_vars 文件夹。这些变量将应用,但当前会被 OpenStack-Ansible 默认 group_vars、设置的事实以及 user_* 变量覆盖。如果部署者定义了多个路径,则找到的变量将被合并,并且优先级从左到右增加(在 GROUP_VARS_PATH 中最后定义的变量获胜)。

  • 部署者现在可以定义一个环境变量 HOST_VARS_PATH,其中包含他们选择的文件夹(用冒号分隔),以定义用户空间 host_vars 文件夹。这些变量将应用,但当前会被 OpenStack-Ansible 默认 host_vars、设置的事实以及 user_* 变量覆盖。如果部署者定义了多个路径,则找到的变量将被合并,并且优先级从左到右增加(在 HOST_VARS_PATH 中最后定义的变量获胜)。

升级说明

  • 已更新 repo 服务器文件系统结构,以允许同时运行多个操作系统和多个体系结构,并从单个服务器提供服务,而不会影响池、venv、wheel 存档和清单。新的结构遵循以下模式 $RELEASE/$OS_TYPE-$ARCH,并已应用于 os-releasesvenvspools

弃用说明

  • 变量 galera_client_apt_repo_urlgalera_client_yum_repo_url 已被弃用,以支持通用的变量 galera_client_repo_url

  • 在 Queens 周期中,keystone 模块的 ensure_endpoint 方法的 update 状态现在已被弃用,并将被删除。将状态设置为 present 将达到相同的效果。

14.1.1

新特性

  • 添加了新的提供商网络属性 sriov_host_interfaces 以支持 Neutron 内部的 SR-IOV 网络映射。provider_network 在 provider_networks 字典中添加了新的项目 network_sriov_mappings 和 network_sriov_mappings_list。可以通过逗号分隔定义多个接口。

  • 现在可以可选地部署和配置 Neutron SR-IOV。有关该服务是什么以及它提供的功能,请参阅 SR-IOV 安装指南 以获取更多信息。

  • 添加了新的变量 tempest_volume_backend_names 并更新了 templates/tempest.conf.j2,以将 backend_names 指向此变量

已知问题

  • 目前 Ansible 存在一个关于 HOSTNAME 的 bug。如果宿主机的 .bashrc 文件包含名为 HOSTNAME 的变量,那么 lxc_container 模块附加的容器将会继承这个变量,并可能设置错误的 $HOSTNAME。请参阅 Ansible 的修复,该修复将在 Ansible 2.3 版本中发布。

升级说明

  • Gnocchi 服务端点变量的命名不正确。已重命名变量,使其与其他角色保持一致。

弃用说明

  • 由于 backend1_namebackend2_name 已从 tempest 的提交 27905cc (合并于 2016/04/26) 中移除,因此移除了 tempest_volume_backend1_nametempest_volume_backend1_name

14.1.0

新特性

  • 现在可以通过在用户变量中定义变量 horizon_disallow_iframe_embed 来更改 DISALLOW_IFRAME_EMBED 的行为。

Bug 修复

  • 即使它们没有容器,Metal 宿主机也被插入到 lxc_hosts 组中 (Bug 1660996)。现在已为新配置的宿主机纠正了此问题。此外,在下一次 inventory 运行或 playbook 调用时,任何不属于 lxc_hosts 的宿主机都将被移除。

其他说明

  • 从现在开始,外部仓库管理(例如在 RDO/UCA 中使用)将在 pip-install 角色中完成,而不是在 repo_build 角色中。

  • Ubuntu Cloud Archive (UCA) 默认安装在 repo、nova 和 neutron 节点上,但未安装在其他节点上。从现在开始,我们将使用 UCA 在所有地方,以避免依赖问题(例如使用不兼容版本的 python-cryptography 构建 virtualenv)。相同的推理适用于 CentOS 和 RDO 包。

14.0.8

新特性

  • 现在可以使用变量 security_host_group 过滤 security-hardening playbook 的宿主机目标。

升级说明

  • 全局覆盖 cinder_nfs_client 已被移除,转而完全支持通过 cinder_backends 节配置多后端。

弃用说明

  • 全局覆盖 cinder_nfs_client 已被移除,转而完全支持通过 cinder_backends 节配置多后端。

Bug 修复

  • 使用 systemd 的系统(例如 Ubuntu Xenial)被错误地限制为少量打开的文件。这在重新启动 galera 时会导致问题。部署者仍然可以使用变量 galera_file_limits 定义最大打开文件数 (默认值为 65536)。

其他说明

  • galera 服务器的 limits.conf 文件现在将部署在 /etc/security/limits.d/99-limits.conf 下。这样做是为了确保我们的更改不会覆盖系统默认 /etc/security/limits.conf 文件中的现有设置,当文件被模板化时。

14.0.7

新特性

  • 现在可以使用变量 bootstrap_host_aio_config_path 自定义 All-In-One (AIO) 引导过程的配置文件源位置。

  • 现在可以使用变量 bootstrap_host_aio_script_path 自定义 All-In-One (AIO) 引导过程使用的脚本位置。

  • 现在可以使用变量 bootstrap_host_user_variables_filename 自定义 All-In-One (AIO) 引导过程创建的 user_variables.yml 文件的名称。

  • 现在可以使用变量 bootstrap_host_user_secrets_filename 自定义 All-In-One (AIO) 引导过程创建的 user_secrets.yml 文件的名称。

  • 现在可以使用变量 uca_apt_source_list_filename 定义 ubuntu cloud archive 的 apt 源文件名。

  • 现在可以通过在 dict 的 uca 部分中提供文件名来定义用于 ceph 客户端的 ubuntu cloud archive 的 apt 源文件名 ceph_apt_repos

  • 现在可以使用变量 uca_apt_source_list_filename 定义 ubuntu cloud archive 的 apt 源文件名。

  • 现在可以使用变量 mariadb_repo_filename 定义 apt/yum 源文件名。

  • 现在可以使用变量 filename 在 dicts galera_repogalera_percona_xtrabackup_repo 中定义 apt 源文件名。

  • 现在可以使用 dict haproxy_repofilename 部分定义 haproxy ppa 的 apt 源文件名。

  • 现在可以使用变量 uca_apt_source_list_filename 定义 ubuntu cloud archive 的 apt 源文件名。

  • rabbitmq_server 角色现在支持禁用不使用 TLS 的监听器。部署者可以覆盖变量 rabbitmq_disable_non_tls_listeners,如果他们希望启用此功能,则将其值设置为 True

  • 可以通过在所需后端的变量 cinder_backends 中定义名为 extra_volume_types 的列表来创建其他卷类型。

  • 您可以指定变量 galera_package_arch 以强制安装 percona 和 qpress 包时使用特定的架构。这将根据 galera_server 主机的架构自动计算。可接受的值为 x86_64 用于 Ubuntu-14.04`, ``Ubuntu-16.04RHEL 7,以及 ppc64le 用于 Ubuntu-16.04

  • 部署者现在可以定义变量 cinder_qos_specs 以创建 qos 规范并将这些规范分配给所需的 cinder 卷类型。

  • RabbitMQ Server 现在可以从不同的方法安装:一个 deb 文件(默认),来自标准仓库包和来自外部仓库。当前行为未更改。请定义 rabbitmq_install_method: distro 以使用您的发行版提供的包,或 rabbitmq_install_method: external_repo 以使用存储在外部仓库中的包。在 external_repo 被使用的情况下,该过程将从 packagecloud.io 托管的包安装 RabbitMQ,正如 RabbitMQ 推荐的那样。

已知问题

Bug 修复

  • 即使更改了变量 use_percona_upstream,percona 仓库仍然存在。从现在开始,除非部署者决定 use_percona_upstream,否则 percona 仓库将不存在。这也修复了从 Mitaka 升级后此 apt 仓库存在的 bug。

14.0.6

新特性

  • 部署者可以设置 heat_cinder_backups_enabled 以启用或禁用 heat 中的 cinder 备份功能。如果 heat 启用了 cinder 备份,但 cinder 的备份服务已禁用,则新构建的堆栈将无法删除。

    默认情况下,变量 heat_cinder_backups_enabled 设置为 false

Bug 修复

  • 正确地将客户端密钥分发到 nova hypervisors,当正在部署额外的 ceph 集群时。

  • 正确地移除用于从部署主机和 hypervisors 传输 ceph 客户端密钥的临时文件。

14.0.5

新特性

  • chrony 的安装默认情况下仍然启用,但现在由变量 security_enable_chrony 控制。

  • 如果 cinder 备份服务使用 cinder_service_backup_program_enabled: True 启用,则 heat 将配置为使用 cinder 备份服务。变量 heat_cinder_backups_enabled 将自动设置为 True

  • 复制 /etc/openstack-release 文件的副本现在是可选的。要禁用文件的复制,请将 openstack_distrib_file 设置为 no

  • 现在可以更改 /etc/openstack-release 文件的放置位置。将变量 openstack_distrib_file_path 设置为将其放置在不同的路径中。

  • Swift versioned_writes 中间件默认添加到管道中。此外,中间件配置中的 allow_versioned_writes 设置设置为 True。这遵循 Swift 默认设置,并启用使用 X-History-Location 元数据 Header。

升级说明

  • 用于生成 /etc/openstack-release 文件的变量已更改,以便根据其目的提高命名空间的一致性。

    openstack_code_name –> openstack_distrib_code_name openstack_release –> openstack_distrib_release

    请注意,如果设置了变量 openstack_release,则 openstack_distrib_release 的值将从该变量获取。

  • 变量 proxy_env_url 现在由 apt-cacher-ng jinja2 模板用于设置 HTTP/HTTPS 代理(如果需要)。

  • 变量 gnocchi_required_pip_packages 命名不正确,已重命名为 gnocchi_requires_pip_packages,以匹配所有角色的标准。

Bug 修复

  • container_cidr 密钥已恢复到 openstack_inventory.json

    删除已删除的全局覆盖密钥时,错误地删除了 container_cidr 密钥。下游使用者使用它,并且无法使用 inventory 文件中的其他信息重建它。还添加了回归测试。

  • apt-cacher-ng 守护程序不使用环境变量中指定的代理服务器。现在,在 apt-cacher-ng 配置文件中设置了变量 proxy_env_url 中指定的代理服务器。

  • PowerVM 驱动程序的设置没有正确配置系统以支持客户端实例的 RMC 配置。此修复程序引入了一个用于 PowerVM 的接口模板,该模板正确支持混合 IPV4/IPV6 部署,并添加了有关 PowerVM RMC 的文档。有关更多信息,请参阅 bug 1643988。

14.0.3

升级说明

  • 变量 tempest_requirements_git_repotempest_requirements_git_install_branch 已被移除,转而使用变量 pip_install_upper_constraints 使用上约束文件的 URL/路径。

  • 变量 swift_requirements_git_reposwift_requirements_git_install_branch 已被移除,转而使用变量 pip_install_upper_constraints 使用上约束文件的 URL/路径。

  • 变量 neutron_requirements_git_reponeutron_requirements_git_install_branch 已被移除,转而使用变量 pip_install_upper_constraints 使用上约束文件的 URL/路径。

  • 变量 sahara_requirements_git_reposahara_requirements_git_install_branch 已被移除,转而使用变量 pip_install_upper_constraints 使用上约束文件的 URL/路径。

  • 变量 nova_requirements_git_reponova_requirements_git_install_branch 已被移除,转而使用变量 pip_install_upper_constraints 使用上约束文件的 URL/路径。

  • 变量 nova_lxd_requirements_git_reponova_lxd_requirements_git_install_branch 已被移除,转而使用变量 pip_install_upper_constraints 使用上约束文件的 URL/路径。

Bug 修复

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

  • 将 `haproxy_bind` 列表设置为服务现在用作对环境中定义的其他 VIP 的覆盖。 之前它被视为附加到其他 VIP,因此没有覆盖服务 VIP 绑定的方法。 例如,`haproxy_bind` 可用于将服务绑定到仅内部 VIP。

14.0.2

新特性

  • 部署者现在可以定义覆盖 cinder_rpc_executor_thread_pool_size,默认值为 64

  • 部署者现在可以定义覆盖 cinder_rpc_response_timeout,默认值为 60

  • 已在受益的容器类型上实现了容器启动顺序。 此更改可确保在容器内运行的有状态系统在无状态系统之前启动。 虽然此更改对正在运行的部署没有影响,但如果托管容器的任何节点发生故障或需要重新启动,它将有助于更快地恢复。

  • 已在“os-lxc-container-setup.yml”通用任务文件中添加了一个新任务。 此新任务将允许添加其他配置,而无需重新启动容器。 在需要添加或更新运行容器的非影响性配置时,此更改很有帮助。

  • 已为 LXC 网桥网络添加 IPv6 支持。 可以使用 lxc_net6_addresslxc_net6_netmasklxc_net6_nat 进行配置。

升级说明

  • 变量 horizon_requirements_git_repohorizon_requirements_git_install_branch 已被删除,转而使用变量 pip_install_upper_constraints 指定 upper-constraints 文件的 URL/路径。

  • 变量 ironic_requirements_git_repoironic_requirements_git_install_branch 已被删除,转而使用变量 pip_install_upper_constraints 指定 upper-constraints 文件的 URL/路径。

  • 变量 heat_requirements_git_repoheat_requirements_git_install_branch 已被删除,转而使用变量 pip_install_upper_constraints 指定 upper-constraints 文件的 URL/路径。

  • 变量 magnum_requirements_git_repomagnum_requirements_git_install_branch 已被删除,转而使用变量 pip_install_upper_constraints 指定 upper-constraints 文件的 URL/路径。

  • 变量 cinder_requirements_git_repocinder_requirements_git_install_branch 已被删除,转而使用变量 pip_install_upper_constraints 指定 upper-constraints 文件的 URL/路径。

  • 变量 gnocchi_requirements_git_repognocchi_requirements_git_install_branch 已被删除,转而使用变量 pip_install_upper_constraints 指定 upper-constraints 文件的 URL/路径。

  • 变量 glance_requirements_git_repoglance_requirements_git_install_branch 已被删除,转而使用变量 pip_install_upper_constraints 指定 upper-constraints 文件的 URL/路径。

  • 变量 keystone_requirements_git_repokeystone_requirements_git_install_branch 已被删除,转而使用变量 pip_install_upper_constraints 指定 upper-constraints 文件的 URL/路径。

  • 变量 aodh_requirements_git_repoaodh_requirements_git_install_branch 已被删除,转而使用变量 pip_install_upper_constraints 指定 upper-constraints 文件的 URL/路径。

  • 变量 rally_requirements_git_reporally_requirements_git_install_branch 已被删除,转而使用变量 pip_install_upper_constraints 指定 upper-constraints 文件的 URL/路径。

  • 变量 ceilometer_requirements_git_repoceilometer_requirements_git_install_branch 已被删除,转而使用变量 pip_install_upper_constraints 指定 upper-constraints 文件的 URL/路径。

错误修复

  • 当任务在执行 playbook 时失败时,Ansible 的默认行为是针对该主机失败,而不执行任何通知器。 这可能导致配置更改被执行,但服务未被重新启动。 OpenStack-Ansible 现在默认将 ANSIBLE_FORCE_HANDLERS 设置为 True,以确保在停止 playbook 执行之前尝试执行所有已通知的处理器。

  • NovaLink 使用“ftp”协议来配置 apt 密钥。 这导致 apt_key 模块无法检索 NovaLink gpg 公钥文件。 因此,将 URL 的协议更改为“http”。 有关更多信息,请参阅 bug 1637348。

14.0.0

新特性

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

  • 已将选项 openstack_domain 添加到 **openstack_hosts** 角色。 此选项用于为给定 OpenStack 部署中的所有主机设置正确的主机名条目。

  • **openstack_hosts** 角色将设置 RFC1034/5 主机名,并为库存中的所有主机创建别名。

  • 已添加新参数 `cirros_img_disk_format 以支持其他磁盘格式,而不仅仅是 qcow2。

  • Ceilometer 现在可以使用 Gnocchi 进行存储。 默认情况下,此功能已禁用。 要启用该服务,请设置 ceilometer_gnocchi_enabled: yes。 有关更多详细信息,请参阅 Gnocchi 角色文档。

  • os_horizon 角色现在支持 horizon ironic-ui 仪表板。 可以通过在 /etc/openstack_deploy/user_variables.yml 中将 horizon_enable_ironic_ui 设置为 True 来启用仪表板。

  • 添加了对 horizon ironic-ui 仪表板的支持。 如果定义了任何 ironic 主机,则将自动启用仪表板。

  • os_horizon 角色现在支持 horizon magnum-ui 仪表板。 可以通过在 /etc/openstack_deploy/user_variables.yml 中将 horizon_enable_magnum_ui 设置为 True 来启用仪表板。

  • 添加了对 horizon magnum-ui 仪表板的支持。 如果定义了任何 magnum 主机,则将自动启用仪表板。

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

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

  • 已添加实验性支持,以允许在主机存在于主机组 magnum-infra_hosts 中的情况下部署 OpenStack Magnum 服务。

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

    horizon_nova_extensions_blacklist:
      - "SimpleTenantUsage"
    
  • os_nova 角色现在可以部署 nova-lxd hypervisor。 这可以通过在 openstack_user_config.ymluser_variables.yml 中以每主机为基础将 nova_virt_type 设置为 lxd 来实现。

  • os_nova 角色现在可以部署自定义 /etc/libvirt/qemu.conf 文件,方法是定义 qemu_conf_dict

  • 该角色现在在早期启动期间启用审计,以符合 V-38438 的要求。 默认情况下,/etc/default/grub.d/ 中的 GRUB 配置变量将被更新,并且活动的 grub.cfg 将被更新。

    部署者可以完全选择退出此更改,方法是设置一个变量

    security_enable_audit_during_boot: no
    

    部署者可以选择加入此更改,而无需自动更新活动 grub.cfg 文件,方法是设置以下 Ansible 变量

    security_enable_audit_during_boot: yes
    security_enable_grub_update: no
    
  • 已添加一个任务以禁用安全 ICMP 重定向,以满足 V-38526 的要求。 此更改可能会在某些环境中引起问题,因此默认情况下已禁用它。 部署者可以通过将 security_disable_icmpv4_redirects_secure 设置为 yes 来启用该任务(禁用安全 ICMP 重定向)。

  • 已添加一个新任务以禁用 ICMPv6 重定向,以满足 V-38548 的要求。 但是,由于此更改可能会导致正在运行的 OpenStack 环境出现问题,因此默认情况下已禁用它。 希望启用此任务(并禁用 ICMPv6 重定向)的部署者应将 security_disable_icmpv6_redirects 设置为 yes

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

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

  • 为了减少事实收集所花费的时间,默认收集的子集已减少到小于 Ansible 默认值。 部署者可以通过在执行任何 ansible 命令之前在 bash 环境中设置 ANSIBLE_GATHER_SUBSET 变量来更改此设置。

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

  • 包含在 auditd 规则模板中的规则审计了 AppArmor 策略的更改,但未审计 SELinux 策略的更改。 现在,/etc/selinux 中的任何 SELinux 策略更改都将由 auditd 记录。

  • 容器缓存准备过程现在允许将 copy-on-write 设置为 lxc_container_backing_method,当 lxc_container_backing_store 设置为 lvm 时。 当设置此选项时,将创建一个名为 <linux-distribution>-distribution-release>-<host-cpu-architecture> 的基本容器。 该容器将被停止,因为它不用于任何除了作为所有其他容器的备份存储之外的用途,这些容器将基于基本容器的快照。

  • 在使用 copy-on-write 备份存储进行容器时,可以使用变量 lxc_container_base_name 设置基本容器名称,默认值为 <linux-distribution>-distribution-release>-<host-cpu-architecture>

  • 容器缓存准备过程现在允许将 overlayfs 设置为 lxc_container_backing_store。 当设置此选项时,将创建一个名为 <linux-distribution>-distribution-release>-<host-cpu-architecture> 的基本容器。 该容器将被停止,因为它不用于任何除了作为所有其他容器的备份存储之外的用途,这些容器将基于基本容器的快照。 除非主机内核版本为 3.18 或更高版本,否则不建议将 overlayfs 备份存储用于生产环境。

  • 容器现在会将所有日志绑定挂载到物理主机上的“/openstack/log/{{ inventory_hostname }}”位置。此更改将确保使用块备份文件系统(lvm、zfs、bfrfs)的容器不会因日志记录而遇到文件系统已满的问题。

  • 添加了新的变量 tempest_img_name

  • 添加了新的变量 tempest_img_url。此变量取代了 cirros_tgz_urlcirros_img_url

  • 添加了新的变量 tempest_image_file。此变量取代了 tempest.conf.j2 中 img_file 设置的硬编码值。这将允许用户指定 cirros 以外的镜像。

  • 添加了新的变量 tempest_img_disk_format。此变量取代了 cirros_img_disk_format

  • rsyslog_server 角色现在支持 CentOS 7。

  • 已添加支持,可以从 Ceph.com、Ubuntu Cloud Archive (UCA) 或操作系统的默认仓库安装 ceph_client 包及其依赖项。

    ceph_pkg_source 变量控制 Ceph 包的安装源。有效值包括

    • ceph:此选项从 ceph.com 仓库安装 Ceph。可以找到用于调整 Ceph 版本和区域下载镜像等项目的其他变量在变量文件中。

    • uca:此选项从 Ubuntu Cloud Archive 安装 Ceph。可以找到用于调整 OpenStack/Ceph 版本等项目的其他变量在变量文件中。

    • distro:此选项从操作系统的默认仓库安装 Ceph,并且与其它选项不同,不会尝试管理软件包密钥或添加额外的软件包仓库。

  • pip_install 角色现在可以配置 pip 以锁定到 OpenStack-Ansible 构建的仓库。要启用锁定配置,部署者可以将 pip_lock_to_internal_repo 设置为 true/etc/openstack_deploy/user_variables.yml 中。

  • dynamic_inventory.py 文件现在接受一个新的参数,--check,它将在不将任何文件写入文件系统的情况下运行库存构建。这对于检查您的配置是否在运行 Ansible 命令之前不包含已知错误非常有用。

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

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

    security_sysctl_enable_martian_logging: yes
    
  • rabbitmq_server 现在支持可配置的库存主机组。如果部署者希望在自定义主机组上创建额外的 RabbitMQ 集群,可以覆盖 rabbitmq_host_group 变量。

  • lxc-container-create 角色现在使用变量 lxc_container_bind_mounts,该变量应包含应用于新创建容器的绑定挂载列表。将创建适当的主机和容器目录,并将配置应用于容器配置文件。此功能旨在在 group_vars 中使用,以确保容器在创建时已完全准备好,从而减少在部署和升级期间重启容器的次数。

  • lxc-container-create 角色现在使用变量 lxc_container_config_list,该变量应包含在创建容器时应添加到 LXC 容器配置文件中的条目列表。此功能旨在在 group_vars 中使用,以确保容器在创建时已完全准备好,从而减少在部署和升级期间重启容器的次数。

  • lxc-container-create 角色现在使用变量 lxc_container_commands,该变量应包含应在新创建的容器中执行的任何 shell 命令。此功能旨在在 group_vars 中使用,以确保容器在创建时已完全准备好,从而减少在部署和升级期间重启容器的次数。

  • 容器创建过程现在允许将 copy-on-write 设置为 lxc_container_backing_method,当 lxc_container_backing_store 设置为 lvm 时。当设置此选项时,它将使用基本容器的快照来构建容器。

  • 容器创建过程现在允许将 overlayfs 设置为 lxc_container_backing_store。当设置此选项时,它将使用基本容器的快照来构建容器。除非主机内核版本为 3.18 或更高版本,否则不建议将 overlayfs 后端用于生产环境。

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

  • 所有数据库和数据库用户创建都已从角色移至 playbook。这允许角色独立于已部署的数据库进行测试,并允许角色独立于集成 OSA 项目所做的基础设施选择进行使用。

  • 默认情况下,现在使用 openstack-ansible-security 角色应用主机安全加固。开发人员可以通过将 Ansible 变量 apply_security_hardening 设置为 false 来选择退出。有关该角色和所做更改的更多信息,请参阅 openstack-ansible-security 文档

  • 如果环境中存在 swift 主机,则 cinder_service_backup_program_enabled 的值将自动设置为 True。这消除了在 user_variables.yml 中设置此变量的需要,但该值仍可由部署者酌情覆盖。

  • 如果环境中存在 swift 主机,则 glance_default_store 的值将自动设置为 swift。这消除了在 user_variables.yml 中设置此变量的需要,但该值仍可由部署者酌情覆盖。

  • os_nova 角色现在可以检测 PowerNV 环境并将虚拟化类型设置为“kvm”。

  • 安全角色现在具有任务,这些任务将在使用 upstart(Ubuntu 14.04)或 systemd(Ubuntu 16.04 和 CentOS 7)的服务器上禁用图形界面。这些更改在重新启动后生效。

    需要图形界面的部署者需要设置以下 Ansible 变量

    security_disable_x_windows: no
    
  • 用于 ceilometer 配置的 YAML 文件现在允许部署者覆盖给定的列表。如果提供了与 ceilometer 默认 YAML 文件中已定义的列表匹配的覆盖,则整个列表将被提供的覆盖替换。以前,ceilometer 默认配置文件中的嵌套列表列表将在部署者提供与现有管道匹配的覆盖时进行扩展。默认值的扩展很可能导致不良结果并且非常不可预测。

  • 已添加一个 Ansible 以禁用 CentOS 系统上的 rdisc 服务(如果该服务已安装在系统上)。

    部署者可以通过将 security_disable_rdisc 设置为 no 来选择退出此更改。

  • ceilometer 是否应默认针对每个服务启用,现在是根据部署的 ceilometer 主机/容器的数量动态确定的。可以通过在 /etc/openstack_deploy/user_variables.yml 中切换 <service>_ceilometer_enabled 来仍然可以覆盖此行为。

  • os_neutron 角色现在根据 neutron_ml2_drivers_type 的值确定 openvswitch-agent tunnel_types 的默认配置以及 local_ip 配置的存在与否。部署者可以通过覆盖 neutron_tunnel_types 变量直接控制此配置。

  • os_neutron 角色现在配置 neutron ml2 以根据 neutron_l2_population 的值加载 l2_population 机制驱动程序。部署者可以通过覆盖 neutron_plugins 字典中的 mechanisms 变量直接控制 neutron ml2 机制驱动程序列表。

  • LBaaSv2 现在在所有一体化 (AIO) 部署中默认启用。

  • 安全角色现在默认情况下将启用适用于使用的 Linux 发行版的 Linux 安全模块 (LSM)。部署者可以通过设置以下 Ansible 变量来选择退出此更改

    security_enable_linux_security_module: False
    

    STIG V-51337 的文档提供了有关如何启用每个 LSM 以及 SELinux 的特殊说明的更多信息。

  • 已向 inventory-manage.py 脚本添加了一个导出标志。此标志允许将来自 OpenStack-Ansible 库存的主机和网络信息导出到另一个系统或现有数据的替代视图中。有关更多详细信息,请参阅开发人员文档。

  • 变量 ceph_extra_confs 已扩展,以支持自动从多个 Ceph 集群检索其他 ceph.conf 和密钥环。

  • 可以定义额外的 libvirt ceph 客户端密钥,以支持从不同的 Ceph 集群附加卷。

  • 可以定义新的变量 ceph_extra_confs 以支持部署额外的 Ceph 配置文件。这对于使用多个 Ceph 集群作为 cinder 后端的 cinder 部署非常有用。

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

  • 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 值可能会导致集群失败,因为如果按顺序重新启动节点,则节点将无法加入。

  • repo 构建过程现在可以使用预先暂存的 git 缓存。如果在 repo 服务器上的 /var/www/repo/openstackgit 文件夹中找到现有的 git 克隆,则如果它们不包含构建所需的 SHA,则将更新它们。

  • repo 构建过程现在可以从部署节点同步 git 缓存到 repo 服务器。部署节点上的 git 缓存路径使用变量 repo_build_git_cache 设置。如果部署节点托管 repo 容器,则该文件夹将绑定挂载到 repo 容器中。如果部署节点不托管 repo 容器,则该文件夹的内容将同步到 repo 容器中。

  • os_glance 角色现在支持 Ubuntu 16.04 和 SystemD。

  • Gnocchi 可用作指标存储服务进行部署。目前它不与 Aodh 或 Ceilometer 集成。要部署 Aodh 或 Ceilometer 以使用 Gnocchi 作为存储/查询 API,必须根据每个服务的配置指南中描述的覆盖进行适当配置。

  • CentOS 7 和 Ubuntu 16.04 支持已添加到 haproxy 角色。

  • haproxy 角色从源代码安装 hatop,以确保在所有受支持的发行版上都提供相同的操作工具。可以使用变量 haproxy_hatop_download_url 设置源的下载 URL。

  • 已添加一个布尔变量 haproxy_service_enabledhaproxy_service_configs 字典,以支持切换 haproxy 端点。

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

  • repo 服务器现在将用作软件包管理器缓存。

  • OpenStack-Ansible 提供的 HAProxy 角色现在默认使用自签名证书终止 SSL。虽然可以禁用此功能,但默认情况下在所有公共端点上包含 SSL 服务将有助于使部署更安全,而无需额外的用户交互。有关 SSL 和证书生成的更多信息,可以在 此处 找到。

  • rabbitmq_server 角色现在支持配置 RabbitMQ 服务器 Erlang 代码的 HiPE 编译。此配置选项可以提高某些工作负载和硬件的服务器性能。部署者可以覆盖 rabbitmq_hipe_compile 变量,如果他们希望启用此功能,则将其值设置为 True

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

  • CentOS 7 支持已添加到 galera_server 角色中。

  • 已实现对 Ubuntu 16.04 Xenial 的支持。由于实施此功能时上游 Percona 仓库中没有可用的软件包,因此 percona-xtrabackup 包将从发行版仓库安装,而不是从上游 Percona 仓库安装。

  • 添加了一个任务,用于限制 ICMPv4 重定向,以满足 STIG 中 V-38524 的要求。此配置默认禁用,因为它在某些环境中可能导致 LXC 出现问题。

    部署者可以通过设置 Ansible 变量来启用此配置

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

  • 可以使用新变量 pip_offline_install 通过部署主机安装 pip。这在容器缺乏互联网连接的环境中很有用。请参阅 有限连接安装指南 以获取更多信息。

  • OpenStack-Ansible 附带的 env.d 目录现在用作环境骨架的第一个来源,并且仅将 /etc/openstack_deploy/env.d 用于覆盖值。没有自定义的部署者不再需要将 env.d 目录复制到 /etc/openstack_deploy。因此,env.d 复制操作已从节点引导角色中删除。

  • 已向 dynamic_inventory.py 添加了一个新的调试标志。这应该可以更轻松地了解库存脚本的运行情况,并提供一种收集输出以进行更详细的错误报告的方式。有关更多详细信息,请参阅开发人员文档。

  • ironic 角色现在支持 Ubuntu 16.04 和 SystemD。

  • 为了确保部署系统保持清洁,Ansible 执行环境包含在虚拟环境中。虚拟环境在“/opt/ansible-runtime”中创建,并且“ansible.*”CLI 命令链接到 /usr/local/bin 中,以确保部署者工作流程不中断。

  • keepalived 现在有一个新的默认配置,支持超过 2 个节点。

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

  • 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
    
  • Horizon 中提供了新的 LBaaS v2 仪表板。部署者可以通过设置以下 Ansible 变量来启用该面板

    horizon_enable_neutron_lbaas: True
    
  • 现在可以使用 neutron_lbaasv2_service_provider 变量调整 LBaaSv2 服务提供商配置。这允许部署者在未来的版本中选择使用 Octavia 部署 LBaaSv2。

  • config_template 操作插件现在有一个新的选项,用于切换 JSON 或 YAML 格式的列表扩展。新的选项是 list_extend 并且是一个布尔值。默认值为 True,这保持了现有的 API。

  • lxc_hosts 角色现在可以使用主密钥和辅助密钥服务器来验证下载缓存的 gpg。可以使用 lxc_image_cache_primary_keyserverlxc_image_cache_secondary_keyserver 变量设置要使用的服务器。

  • lxc_container_create 角色现在将基于主机操作系统的发行版构建容器。

  • lxc_container_create 角色现在支持 Ubuntu 14.04、16.04 和 RHEL/CentOS 7

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

  • lxc_host 角色将使用从 此处找到的镜像 构建的下载模板构建 lxc 缓存。这些镜像是由更大的 LXC/D 社区提供的上游构建。

  • lxc_host 角色引入了对 CentOS 7 和 Ubuntu 16.04 容器类型的支持。

  • 库存脚本现在将根据哪些机器定义了容器关联动态地填充 lxc_hosts 组。不允许在用户定义的配置中使用此组。

  • 如果 neutron 插件类型为 ML2 并且环境具有 >=2 个 L3 代理节点,则 Horizon 中的 Neutron HA 路由器功能将自动启用。

  • Horizon 现在有一个名为 horizon_enable_ha_router 的布尔变量,用于启用 Neutron HA 路由器管理。

  • Horizon 的 IPv6 支持现在默认启用。这允许用户在 Horizon 界面中管理具有 IPv6 地址的子网。部署者可以通过设置以下变量来禁用 Horizon 中的 IPv6 支持

    horizon_enable_ipv6: False
    

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

  • memcached 现在根据用户变量以不同级别的详细程度记录。设置 debug: True 启用最大详细程度,而设置 verbose: True 以中等详细程度记录。

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

  • repo 构建过程现在能够支持为多个 CPU 架构构建和同步工件。构建工件默认情况下会标记为适当的 CPU 架构,并且支持将构建工件从辅助的、特定于架构的 repo 服务器同步回主 repo 服务器。

  • repo 安装过程现在能够支持为多个 CPU 架构构建和同步工件。为了支持多个架构,必须为部署中的每个 CPU 架构创建一个或多个 repo 服务器。当 repo 服务器中检测到多个 CPU 架构时,repo 发现过程将自动分配一个 repo 主机来为每个架构执行构建过程。

  • CentOS 7 支持已添加到 galera_client 角色中。

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

  • Project Calico Neutron 网络插件现在已集成到部署中。有关设置说明,请参阅 os_neutron 角色文档。

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

  • 部署者现在可以通过设置以下变量来配置 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 网络信息。

  • Project Calico Neutron 网络插件现在已集成到 os_neutron 角色中。可以使用角色文档中说明的说明激活它。

  • neutron_plugin_typeml2.ovs 并且主机在 PowerVM 上运行 Ubuntu 16.04 时,os_neutron 角色现在将默认设置为 OVS 防火墙驱动程序。要覆盖此默认行为,部署者应在 ‘user_variables.yml’ 中定义 neutron_ml2_conf_ini_overrides 和 ‘neutron_openvswitch_agent_ini_overrides’。示例如下

    neutron_ml2_conf_ini_overrides:
      securitygroup:
        firewall_driver: neutron.agent.linux.iptables_firewall.OVSHybridIptablesFirewallDriver
    neutron_openvswitch_agent_ini_overrides:
      securitygroup:
        firewall_driver: iptables_hybrid
    
  • Neutron VPN as a Service (VPNaaS) 现在可以可选地部署和配置。请参阅 OpenStack Networking Guide 以获取有关该服务及其提供的功能的详细信息。请参阅 VPNaaS 安装指南 以获取实施详细信息。

  • 已添加对 Neutron 分布式虚拟路由的支持到 os_neutron 角色。这包括实施 Networking Guide 建议的代理配置。可以通过在 /etc/openstack_deploy/user_variables.yml 中设置 neutron_plugin_type: ml2.ovs.dvr 来激活此功能。

  • Horizon 下一代实例管理面板默认已启用。这将使 Horizon 使用上游默认值而不是旧面板。

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

  • os_nova 角色现在可以检测并支持 PowerVM 环境的基本部署。这将虚拟化类型设置为“powervm”,并安装/更新 PowerVM NovaLink 包和 nova-powervm 驱动程序。

  • Nova UCA 仓库支持默认实现。这将允许用户受益于 KVM 的更新包。变量 nova_uca_enable 控制 KVM 包的安装源。默认情况下,此值设置为 True 以使用 UCA 仓库。用户可以设置为 False 以禁用。

  • 已添加一个新的配置参数 security_ntp_bind_local_interfaces 到 security 角色,以限制 chronyd 将侦听 NTP 请求的网络接口。

  • LXC 容器创建和修改过程现在支持在线网络添加。这确保了在将其他网络添加到系统时容器保持在线状态。

  • 已实现 Open vSwitch 驱动程序支持。这包括适当的 Neutron 配置和软件包安装的实施。可以通过在 /etc/openstack_deploy/user_variables.yml 中设置 neutron_plugin_type: ml2.ovs 来激活此功能。

  • 已实现一种机会主义的 Ansible 执行策略。这允许 Ansible 线性策略通过从未排队条件评估为 false 的任务来更快地跳过具有条件的任务。

  • Ansible SSH 插件已修改,以支持在容器内运行命令,而无需直接 ssh 进入容器。该更改将检测容器的存在。如果找到容器,将使用物理主机作为 SSH 目标,并直接运行命令。这将提高系统可靠性和速度,同时也有可能从容器内部禁用 SSH。

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

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

  • 已向 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
    
  • 引入了在 Uwsgi 下部署 Keystone 的选项。引入了一个新的变量 keystone_mod_wsgi_enabled 来切换此行为。默认值为 true,这将继续使用 Apache 的 mod_wsgi 进行部署。Uwsgi 用于 socket 和 http 连接的端口(对于 Keystone 的公共和管理服务)是可配置的(请参阅 keystone_uwsgi_ports 字典变量)。可以使用 keystone_uwsgi_ini_overrides 变量覆盖其他 Uwsgi 配置,如 OpenStack-Ansible 安装指南中的“覆盖 OpenStack 配置默认值”中所述。在这种配置下,联合身份验证功能应被视为 _实验性的_。

  • 引入了在 Nginx 后面部署 Keystone 的选项。引入了一个新的变量 keystone_apache_enabled 来切换此行为。默认值为 true,这将继续使用 Apache 进行部署。可以通过使用 keystone_nginx_extra_conf 列表变量向 Nginx 传递额外的配置。在这种配置下,联合身份验证功能不受支持。使用此选项需要将 keystone_mod_wsgi_enabled 设置为 false,这将使用 Uwsgi 部署 Keystone。

  • os_cinder 角色现在支持 Ubuntu 16.04。

  • CentOS7/RHEL 支持已添加到 os_cinder 角色。

  • CentOS7/RHEL 支持已添加到 os_glance 角色。

  • CentOS7/RHEL 支持已添加到 os_keystone 角色。

  • os_magnum 角色现在支持使用 systemd 在 Ubuntu 16.04 上进行部署。

  • galera_client 角色现在支持配置 apt/yum 任务是安装最新的可用软件包,还是仅确保软件包存在。默认操作是确保安装最新的软件包。可以通过将 galera_client_package_state 设置为 present 来更改执行的操作,以仅确保软件包存在。

  • ceph_client 角色现在支持配置 apt/yum 任务是安装最新的可用软件包,还是仅确保软件包存在。默认操作是确保安装最新的软件包。可以通过将 ceph_client_package_state 设置为 present 来更改执行的操作,以仅确保软件包存在。

  • os_ironic 角色现在支持配置 apt/yum 任务是安装最新的可用软件包,还是仅确保软件包存在。默认操作是确保安装最新的软件包。可以通过将 ironic_package_state 设置为 present 来更改执行的操作,以仅确保软件包存在。

  • os_nova 角色现在支持配置 apt/yum 任务是安装最新的可用软件包,还是仅确保软件包存在。默认操作是确保安装最新的软件包。可以通过将 nova_package_state 设置为 present 来更改执行的操作,以仅确保软件包存在。

  • memcached_server 角色现在支持配置 apt/yum 任务是安装最新的可用软件包,还是仅确保软件包存在。默认操作是确保安装最新的软件包。可以通过将 memcached_package_state 设置为 present 来更改执行的操作,以仅确保软件包存在。

  • os_heat 角色现在支持配置 apt/yum 任务是安装最新的可用软件包,还是仅确保软件包存在。默认操作是确保安装最新的软件包。可以通过将 heat_package_state 设置为 present 来更改执行的操作,以仅确保软件包存在。

  • rsyslog_server 角色现在支持配置 apt/yum 任务是安装最新的可用软件包,还是仅确保软件包存在。默认操作是确保安装最新的软件包。可以通过将 rsyslog_server_package_state 设置为 present 来更改执行的操作,以仅确保软件包存在。

  • pip_install 角色现在支持配置 apt/yum 任务是安装最新的可用软件包,还是仅确保软件包存在。默认操作是确保安装最新的软件包。可以通过将 pip_install_package_state 设置为 present 来更改执行的操作,以仅确保软件包存在。

  • repo_build 角色现在支持配置 apt/yum 任务是安装最新的可用软件包,还是仅确保软件包存在。默认操作是确保安装最新的软件包。可以通过将 repo_build_package_state 设置为 present 来更改执行的操作,以仅确保软件包存在。

  • os_rally 角色现在支持配置 apt/yum 任务是安装最新的可用软件包,还是仅确保软件包存在。默认操作是确保安装最新的软件包。可以通过将 rally_package_state 设置为 present 来更改执行的操作,以仅确保软件包存在。

  • os_glance 角色现在支持配置 apt/yum 任务是安装最新的可用软件包,还是仅确保软件包存在。默认操作是确保安装最新的软件包。可以通过将 glance_package_state 设置为 present 来更改执行的操作,以仅确保软件包存在。

  • security 角色现在支持配置 apt/yum 任务是安装最新的可用软件包,还是仅确保软件包存在。默认操作是确保安装最新的软件包。可以通过将 security_package_state 设置为 present 来更改执行的操作,以仅确保软件包存在。

  • 已实现一个新的全局选项来控制所有软件包安装状态。所有分发包安装的默认操作是确保安装最新的软件包。可以通过将 package_state 设置为 present 来更改此操作,以仅验证软件包是否存在。

  • os_keystone 角色现在支持配置 apt/yum 任务是安装最新的可用软件包,还是仅确保软件包存在。默认操作是确保安装最新的软件包。可以通过将 keystone_package_state 设置为 present 来更改执行的操作,以仅确保软件包存在。

  • os_cinder 角色现在支持配置 apt/yum 任务是安装最新的可用软件包,还是仅确保软件包存在。默认操作是确保安装最新的软件包。可以通过将 cinder_package_state 设置为 present 来更改执行的操作,以仅确保软件包存在。

  • os_gnocchi 角色现在支持配置 apt/yum 任务是安装最新的可用软件包,还是仅确保软件包存在。默认操作是确保安装最新的软件包。可以通过将 gnocchi_package_state 设置为 present 来更改执行的操作,以仅确保软件包存在。

  • os_magnum 角色现在支持配置 apt/yum 任务是安装最新的可用软件包,还是仅确保软件包存在。默认操作是确保安装最新的软件包。可以通过将 magnum_package_state 设置为 present 来更改执行的操作,以仅确保软件包存在。

  • rsyslog_client 角色现在支持配置 apt/yum 任务是安装最新的可用软件包,还是仅确保软件包存在。默认操作是确保安装最新的软件包。可以通过将 rsyslog_client_package_state 设置为 present 来更改执行的操作,以仅确保软件包存在。

  • os_sahara 角色现在支持配置 apt/yum 任务是安装最新的可用软件包,还是仅确保软件包存在。默认操作是确保安装最新的软件包。可以通过将 sahara_package_state 设置为 present 来更改执行的操作,以仅确保软件包存在。

  • repo_server 角色现在支持配置 apt/yum 任务是安装最新的可用软件包,还是仅确保软件包存在。默认操作是确保安装最新的软件包。可以通过将 repo_server_package_state 设置为 present 来更改执行的操作,以仅确保软件包存在。

  • haproxy_server 角色现在支持配置 apt/yum 任务是安装最新的可用软件包,还是仅确保软件包存在。默认操作是确保安装最新的软件包。可以通过将 haproxy_package_state 设置为 present 来更改执行的操作,以仅确保软件包存在。

  • os_aodh 角色现在支持配置 apt/yum 任务是安装最新的可用软件包,还是仅确保软件包存在。默认操作是确保安装最新的软件包。可以通过将 aodh_package_state 设置为 present 来更改执行的操作,以仅确保软件包存在。

  • openstack_hosts 角色现在支持配置 apt/yum 任务是安装最新的可用软件包,还是仅确保软件包存在。默认操作是确保安装最新的软件包。可以通过将 openstack_hosts_package_state 设置为 present 来更改执行的操作,以仅确保软件包存在。

  • galera_server 角色现在支持配置 apt/yum 任务是安装最新的可用软件包,还是仅确保软件包存在。默认操作是确保安装最新的软件包。可以通过将 galera_server_package_state 设置为 present 来更改执行的操作,以仅确保软件包存在。

  • rabbitmq_server 角色现在支持配置 apt/yum 任务是安装最新的可用软件包,还是仅确保软件包存在。默认操作是确保安装最新的软件包。可以通过将 rabbitmq_package_state 设置为 present 来更改执行的操作,以仅确保软件包存在。

  • lxc_hosts 角色现在支持配置 apt/yum 任务是安装最新的可用软件包,还是仅确保软件包存在。默认操作是确保安装最新的软件包。可以通过将 lxc_hosts_package_state 设置为 present 来更改执行的操作,以仅确保软件包存在。

  • os_ceilometer 角色现在支持配置 apt/yum 任务是安装最新的可用软件包,还是仅确保软件包存在。默认操作是确保安装最新的软件包。可以通过将 ceilometer_package_state 设置为 present 来更改执行的操作,以仅确保软件包存在。

  • os_swift 角色现在支持配置 apt/yum 任务是安装最新的可用软件包,还是仅确保软件包存在。默认操作是确保安装最新的软件包。可以通过将 swift_package_state 设置为 present 来更改执行的操作,以仅确保软件包存在。

  • os_neutron 角色现在支持配置 apt/yum 任务是安装最新的可用软件包,还是仅确保软件包存在。默认操作是确保安装最新的软件包。可以通过将 neutron_package_state 设置为 present 来更改执行的操作,以仅确保软件包存在。

  • os_horizon 角色现在支持配置 apt/yum 任务是安装最新的可用软件包,还是仅确保软件包存在。默认操作是确保存在最新的软件包。可以通过将 horizon_package_state 设置为 present 来更改执行的操作,以仅确保软件包存在。

  • 现在可以使用 openstack_host_environment_path 列表变量来设置远程系统上配置的 PATH 环境变量。

  • repo 构建过程现在能够将 pip 源存储在构建存档中。当部署“多架构”、“多发行版”或“多解释器”环境时,此功能很有用,因为特定的预构建 wheel 可能不足以支持所有部署。要启用在给定发布版中存储 python 源代码的功能,请将新的选项 repo_build_store_pip_sources 设置为 true

  • repo 服务器现在为分发包提供了一个软件包缓存服务。为了利用缓存,部署者需要在所有主机上配置软件包管理器以将缓存用作代理。如果部署者希望禁用此服务,则应将变量 repo_pkg_cache_enabled 设置为 false

  • rabbitmq_server 角色现在支持部署者覆盖应用于集群的 RabbitMQ 策略。部署者可以覆盖 rabbitmq_policies 变量,提供所需的策略列表。

  • RabbitMQ 管理 UI 现在可以通过 HAProxy 在 15672 端口访问。默认用户 ID 是 monitoring。可以通过更改文件 user_variables.yml 中的参数 rabbitmq_monitoring_userid 来修改此用户。请注意,默认情况下已为此 HAProxy 服务添加了 ACL,因此只有常见的内部客户端才能访问它。参考 playbooks/vars/configs/haproxy_config.yml

  • 添加了用于在实用容器中部署 Rally 的 playbook

  • 我们的常规配置选项现在存储在“/usr/local/bin/openstack-ansible.rc”文件中,并在调用“openstack-ansible”wrapper 时会被读取。RC 文件会读取 BASH 环境变量,如果设置的任何 Ansible 选项与我们的默认值重叠,则将使用提供的该值。

  • LBaaSv2 设备驱动程序现在由 Ansible 变量 neutron_lbaasv2_device_driver 设置。默认设置为使用 HaproxyNSDriver,它允许基于 agent 的负载均衡器。

  • V-38476 中软件包验证的 GPG 密钥检查现在也适用于 CentOS 7,除了 Red Hat Enterprise Linux 7 之外。检查仅查找来自 Red Hat 的 GPG 密钥,并跳过任何其他 GPG 密钥,例如从 EPEL 存储库导入的密钥。

  • CentOS7 支持已添加到 rsyslog_client 角色。

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

  • 已添加实验性支持,以允许部署 Sahara 数据处理服务。要部署 sahara,主机必须存在于 sahara-infra_hosts 主机组中。

  • Sahara dashboard 在 Horizon 中可用。部署者可以通过设置以下 Ansible 变量来启用该面板

    horizon_enable_sahara_ui: True
    
  • 添加了任务来搜索在 CentOS 系统上没有正确 SELinux 标签的任何设备文件。如果找到任何这些设备标签,playbook 执行将停止并显示错误消息。

  • repo 构建过程现在会根据每个 OpenStack 服务组是否包含任何主机,有选择地克隆 git 存储库。如果组中没有主机,则不会克隆该服务的 git 存储库。可以通过将 repo_build_git_selective 设置为 no 来选择性地更改此行为,以强制克隆所有 git 存储库。

  • repo 构建过程现在会根据每个 OpenStack 服务组是否包含任何主机,有选择地构建 venvs。如果组中没有主机,则不会构建 venv。可以通过将 repo_build_venv_selective 设置为 yes 来选择性地更改此行为,以强制构建所有 venvs。

  • repo 构建过程现在会根据每个 OpenStack 服务组是否包含任何主机,有选择地构建 python 包。如果组中没有主机,则不会构建该服务的 python 包列表。可以通过将 repo_build_wheel_selective 设置为 no 来选择性地更改此行为,以强制构建所有 python 包。

  • neutron_services 字典中支持一个新的变量,名为 service_conf_path。此变量允许服务通过使用新变量指定目录,将配置模板部署到 /etc/neutron 之外的路径。

  • ansible-hardening 角色支持将 Red Hat Enterprise Linux 6 STIG 配置应用于运行 CentOS 7 和 Ubuntu 16.04 LTS 的系统。

  • 现在可以通过使用 swift_fallocate_reserve 变量在 /etc/openstack_deploy/user_variables.yml 中设置 swift 的 fallocate_reserve` 选项 (以字节或百分比表示)。此值是磁盘上要预留的空间量,以防止由于缺乏可用的磁盘空间而无法删除对象的情况。默认值为总磁盘大小的 1%。

  • openstack-ansible-os_swift 角色现在会阻止部署者更改在 /etc/swift/swift.conf 中已经设置了值的 swift_hash_path_prefixswift_hash_path_suffix 变量。您可以设置新的 swift_force_change_hashes 变量为 True 以强制更改 swift_hash_path_ 变量。我们建议通过使用 -e swift_force_change_hashes=True 运行 os-swift.yml playbook 来设置此变量,以避免意外更改 swift_hash_path_ 变量。谨慎使用,更改 swift_hash_path_ 值会导致最终用户影响。

  • 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 倍。

  • pretend_min_part_hours_passed 选项现在可以在执行重新平衡之前传递给 swift-ring-builder。这由 swift_pretend_min_part_hours_passed 布尔变量设置。此变量的默认值为 False。我们建议通过使用 -e swift_pretend_min_part_hours_passed=True 运行 os-swift.yml playbook 来设置此变量,以避免在每次运行时重置 min_part_hours 检查。将 swift_pretend_min_part_hours_passed 设置为 True 会重置上次发生重新平衡的时间,从而绕过 min_part_hours 检查。这只能谨慎使用。如果您运行此命令并部署重新平衡的环,然后再完成复制通过,则可能会在集群中引入不可用性。这会对最终用户产生影响。

  • 虽然 swift 的默认 python 解释器是 cpython,但 pypy 现在是一个选项。此更改增加了在不进行核心代码修改的情况下大大提高 swift 性能的能力。这些更改是使用 Intel 和 Swiftstack 提供的文档实现的。有关性能提升的说明可以在 此处 看到。

  • 通过调整服务的端口值,来更改环中设备的端口,这不会涉及环的重新平衡。

  • 更改设备或设备组的端口会给 swift 存储服务带来短暂的停机时间。在存储服务在端口更新后重新启动,并且环更新以匹配新端口之间,设备将不可用。

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

  • os_swift 角色现在默认包含 swift “staticweb” 中间件。

  • os_swift 角色现在允许设置 swift 帐户、容器和对象服务器创建的日志文件的权限。该变量是 swift_syslog_log_perms,默认设置为 0644

  • 添加了对使用 Ubuntu 发行版在 ppc64le 架构上部署的支持。

  • 已添加支持,以允许在 ppc64le 架构上使用 Ubuntu 发行版部署时通过功能测试。

  • 已添加对部署 Unbound 缓存 DNS 解析器的支持,作为所有主机上 /etc/hosts 管理的可选替代方案。要启用 Unbound DNS 容器,请将 unbound_hosts 条目添加到环境中。

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

已知问题

  • 在 Newton 版本 OpenStack-Ansible 中,ppc64le 上的部署仅限于 Ubuntu 16.04。

  • 变量 haproxy_keepalived_(internal|external)_cidr 现在设置为默认值 169.254.(2|1).1/24。这是为了防止 Ansible 未定义变量警告。当使用多个 haproxy 节点时,部署者必须为这些变量设置值。

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

  • 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

升级说明

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

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

  • ca-certificates 包已包含在 LXC 容器构建过程中,以防止与尝试连接使用更新证书的公共网站相关的问题,这些证书不存在于基本的 CA 证书存储中。

  • 为了减少事实收集所花费的时间,默认收集的子集已减少到小于 Ansible 默认值。 部署者可以通过在执行任何 ansible 命令之前在 bash 环境中设置 ANSIBLE_GATHER_SUBSET 变量来更改此设置。

  • 环境变量 FORKS 不再使用。应使用标准的 Ansible 环境变量 ANSIBLE_FORKS 代替。

  • Galera 客户端角色现在依赖于 apt 包 pinning 角色。

  • 变量 security_audit_apparmor_changes 现在已重命名为 security_audit_mac_changes,并且默认已启用。将 security_audit_mac_changes 设置为 no 将禁用对 AppArmor 策略(在 Ubuntu 中)或 SELinux 策略(在 CentOS 中)任何更改的系统调用审计。

  • 升级时,部署者需要确保在运行 playbook 之前备份容器内的所有日志。如果日志节点存在于部署中,所有日志应已与日志服务器同步,无需采取任何操作。作为预步骤,建议部署者在运行 playbook 之前清理容器内的日志目录。Playbook 运行后,绑定挂载将在“/var/log”处生效,这将覆盖所有以前的日志文件和目录。

  • 由于在“/var/log”处的新绑定挂载,所有容器都将被重启。这是一个必需的重启。建议部署者串行重启容器,以免影响生产工作负载。

  • ceilometer 配置文件中 service_credentials/os_endpoint_type 的默认值已更改为 internalURL。可以通过使用 ceilometer_ceilometer_conf_overrides 变量来覆盖此值。

  • 默认数据库排序规则已从 utf8_unicode_ci 更改为 utf8_general_ci。现有的数据库和表需要进行转换。

  • LXC 容器缓存准备过程现在从主机复制软件包仓库配置,而不是实现自己的配置。因此,以下变量是不必要的,并且已被删除

    • lxc_container_template_main_apt_repo

    • lxc_container_template_security_apt_repo

    • lxc_container_template_apt_components

  • LXC 容器缓存准备过程现在从主机复制 DNS 解析配置,而不是实现自己的配置。因此,lxc_cache_resolvers 变量是不必要的,并且已被删除。

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

  • 定义安装 repo 服务器所需的软件包列表的变量 repo_server_packages 已被 repo_server_distro_packages 替换。

  • 如果环境中存在 swift 主机,则 cinder_service_backup_program_enabled 的值将自动设置为 True。这消除了在 user_variables.yml 中设置此变量的需要,但该值仍可由部署者酌情覆盖。

  • 如果环境中存在 swift 主机,则 glance_default_store 的值将自动设置为 swift。这消除了在 user_variables.yml 中设置此变量的需要,但该值仍可由部署者酌情覆盖。

  • 变量 security_sysctl_enable_tcp_syncookies 替换了 security_sysctl_tcp_syncookies,现在是一个布尔值而不是整数。它仍然默认启用,但部署者可以通过设置以下 Ansible 变量来禁用 TCP syncookies

    security_sysctl_enable_tcp_syncookies: no
    
  • 变量 glance_apt_packages 已重命名为 glance_distro_packages,以便它适用于多个操作系统。

  • haproxy 角色中,hatop 已从软件包安装更改为基于源代码的安装。这样做是为了确保在所有受支持的发行版上都提供相同的操作工具。可以使用变量 haproxy_hatop_download_url 设置源代码的下载 URL。

  • Haproxy 有一个新的后端来支持将 repo 服务器节点用作 git 服务器。新的后端名为“repo_git”,并使用端口“9418”。已创建默认 ACL 以锁定端口的可用性,仅允许来自 RFC1918 地址的内部网络访问。

  • Haproxy 有一个新的后端来支持将 repo 服务器节点用作软件包管理器缓存。新的后端名为“repo_cache”,并使用端口“3142”和一个活动节点。池中的所有其他节点都是备份节点,如果活动节点发生故障,将被提升。已创建默认 ACL 以锁定端口的可用性,仅允许来自 RFC1918 地址的内部网络访问。

  • 默认情况下,假定所有公共端点都启用了 SSL 终止。如果不需要,可以通过将 openstack_external_ssl 选项设置为 false,并将 openstack_service_publicuri_proto 设置为 http 来禁用它。

  • 如果 HAProxy 用作部署的负载均衡器,它将默认生成自签名证书。如果未使用 HAProxy,则应在外部负载均衡器上安装 SSL 证书。在外部负载均衡器上安装 SSL 证书不在部署工具的覆盖范围内。

  • 在以前的版本中,与 Horizon 的连接最初在 Horizon 容器处终止 SSL。虽然这仍然是一个选项,但现在假定 SSL 在负载均衡器处终止。如果您希望在 horizon 节点处终止 SSL,请将 horizon_external_ssl 选项更改为 false

  • 升级不会替换 /etc/openstack_deploy/env.d 目录中的条目,尽管 OpenStack-Ansible 的新版本现在会将发货的 env.d 作为基础,这可能会改变现有的部署。

  • 用于存储 ironic 服务帐户使用的 mysql 密码的变量已更改。以下变量

    ironic_galera_password: secrete
    

    已更改为

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

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

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

  • lxc_container_create 角色不再使用特定于发行版的 lxc 容器创建模板。

  • lxc_host 角色中进行了以下变量更改

    • lxc_container_template:已删除,因为模板选项现在包含在运行时加载的特定于操作系统的变量文件中。

    • lxc_container_template_options:此选项已重命名为 lxc_container_download_template_options。未使用弃用过滤器,因为从该选项提供的值已从根本上改变,旧的覆盖将导致问题。

    • lxc_container_release:已删除,因为镜像现在与主机操作系统绑定。

    • lxc_container_user_name:已删除,因为默认用户不再在创建缓存镜像时创建。

    • lxc_container_user_password:已删除,因为默认用户不再在创建缓存镜像时创建。

    • lxc_container_template_main_apt_repo:已删除,因为此选项现在在缓存创建过程中设置,不再需要在此处设置。

    • lxc_container_template_security_apt_repo:已删除,因为此选项现在在缓存创建过程中设置,不再需要在此处设置。

  • lxc_host 角色不再使用特定于发行版的 lxc 容器创建模板。

  • lxc_host 角色中进行了以下变量更改

    • lxc_container_user_password:已删除,因为默认 lxc 容器用户不再由 lxc 容器模板创建。

    • lxc_container_template_options:此选项已重命名为 lxc_cache_download_template_options。未使用弃用过滤器,因为从该选项提供的值已从根本上改变,并且潜在的旧覆盖将导致问题。

    • lxc_container_base_delete:已删除,因为在角色执行时将刷新缓存。

    • lxc_cache_validate_certs:已删除,因为 Ansible get_url 模块不再使用。

    • lxc_container_caches:已删除,因为容器创建过程将基于主机操作系统构建缓存镜像。

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

  • 以前,动态 inventory 脚本将提供程序网络属性 is_container_addressis_ssh_address 设置为管理网络的 True,无论部署者是否以这种方式配置它们。现在,这些属性必须由部署者配置,并且如果缺少或不为 True,动态 inventory 脚本将失败。

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

  • memcached 日志已从 /var/log/memcached.log 中删除,现在存储在 /var/log/memcached 文件夹中。

  • 变量 galera_client_apt_packages 已被 galera_client_distro_packages 替换。

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

  • 已为动态路由 neutron 插件添加了数据库迁移任务。

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

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

  • 已在 env.d/neutron.ymlenv.d/nova.yml 环境配置文件中添加了新的主机组 neutron_openvswitch_agent,以支持 Open vSwitch 的实现。部署者必须确保他们的环境配置文件已更新,以包含上述组名。请参阅 env.d/neutron.ymlenv.d/nova.yml 中的示例实现。

  • 变量 neutron_agent_mode 已从 os_neutron 角色中删除。 l3_agent.ini 的适当值现在基于 neutron_plugin_type 和主机组 membership 确定。

  • 默认 horizon 实例启动面板已更改为下一代面板。要启用旧版功能,请相应地设置以下选项

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

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

  • 变量 neutron_linuxbridge 已删除,因为它不再使用。

  • 变量 neutron_driver_interface 已删除。 neutron.conf 的适当值现在基于 neutron_plugin_type 确定。

  • 变量 neutron_driver_firewall 已删除。 neutron.conf 的适当值现在基于 neutron_plugin_type 确定。

  • 变量 neutron_ml2_mechanism_drivers 已删除。 ml2_conf.ini 的适当值现在基于 neutron_plugin_type 确定。

  • glance 及其依赖的 pip 包的安装现在将仅在 Python 虚拟环境中发生。已删除变量 glance_venv_binglance_venv_enabledglance_venv_etc_dirglance_non_venv_etc_dir

  • gnocchi 及其依赖的 pip 包的安装现在将仅在 Python 虚拟环境中发生。已删除变量 gnocchi_venv_bingnocchi_venv_enabledgnocchi_venv_etc_dirgnocchi_non_venv_etc_dir

  • heat 及其依赖的 pip 包的安装现在将仅在 Python 虚拟环境中发生。已删除变量 heat_venv_binheat_venv_enabled

  • horizon 及其依赖的 pip 包的安装现在将仅在 Python 虚拟环境中发生。已删除变量 horizon_venv_binhorizon_venv_enabledhorizon_venv_lib_dirhorizon_non_venv_lib_dir

  • ironic 及其依赖的 pip 包的安装现在将仅在 Python 虚拟环境中发生。已删除变量 ironic_venv_binironic_venv_enabled

  • keystone 及其依赖的 pip 包的安装现在将仅在 Python 虚拟环境中发生。已删除变量 keystone_venv_enabled

  • 为了使用 Neutron 上游默认设置,删除了 Neutron L3 Agent 配置中 handle_internal_only_routers 变量。当前 handle_internal_only_routers 的默认值为 True,这允许 Neutron L3 路由器没有附加外部网络(如 https://bugs.launchpad.net/neutron/+bug/1572390 中讨论的那样)。

  • aodh 及其依赖的 pip 包的安装现在将仅在 Python 虚拟环境中发生。已删除变量 aodh_venv_enabledaodh_venv_bin

  • ceilometer 及其依赖的 pip 包的安装现在将仅在 Python 虚拟环境中进行。变量 ceilometer_venv_enabledceilometer_venv_bin 已被移除。

  • cinder 及其依赖的 pip 包的安装现在将仅在 Python 虚拟环境中进行。变量 cinder_venv_enabledcinder_venv_bin 已被移除。

  • magnum 及其依赖的 pip 包的安装现在将仅在 Python 虚拟环境中进行。变量 magnum_venv_binmagnum_venv_enabled 已被移除。

  • neutron 及其依赖的 pip 包的安装现在将仅在 Python 虚拟环境中进行。变量 neutron_venv_enabledneutron_venv_binneutron_non_venv_lib_dirneutron_venv_lib_dir 已被移除。

  • nova 及其依赖的 pip 包的安装现在将仅在 Python 虚拟环境中进行。变量 nova_venv_enablednova_venv_bin 已被移除。

  • rally 及其依赖的 pip 包的安装现在将仅在 Python 虚拟环境中进行。变量 rally_venv_binrally_venv_enabled 已被移除。

  • sahara 及其依赖的 pip 包的安装现在将仅在 Python 虚拟环境中进行。变量 sahara_venv_binsahara_venv_enabledsahara_venv_etc_dirsahara_non_venv_etc_dir 已被移除。

  • swift 及其依赖的 pip 包的安装现在将仅在 Python 虚拟环境中进行。变量 swift_venv_enabledswift_venv_bin 已被移除。

  • 变量 keystone_apt_packages 已重命名为 keystone_distro_packages

  • 变量 keystone_idp_apt_packages 已重命名为 keystone_idp_distro_packages

  • 变量 keystone_sp_apt_packages 已重命名为 keystone_sp_distro_packages

  • 变量 keystone_developer_apt_packages 已重命名为 keystone_developer_mode_distro_packages

  • 变量 glance_apt_packages 已重命名为 glance_distro_packages

  • 变量 horizon_apt_packages 已重命名为 horizon_distro_packages

  • 变量 aodh_apt_packages 已重命名为 aodh_distro_packages

  • 变量 cinder_apt_packages 已重命名为 cinder_distro_packages

  • 变量 cinder_volume_apt_packages 已重命名为 cinder_volume_distro_packages

  • 变量 cinder_lvm_volume_apt_packages 已重命名为 cinder_lvm_volume_distro_packages

  • 变量 ironic_api_apt_packages 已重命名为 ironic_api_distro_packages

  • 变量 ironic_conductor_apt_packages 已重命名为 ironic_conductor_distro_packages

  • 变量 ironic_conductor_standalone_apt_packages 已重命名为 ironic_conductor_standalone_distro_packages

  • 变量 galera_pre_packages 已重命名为 galera_server_required_distro_packages

  • 变量 galera_packages 已重命名为 galera_server_mariadb_distro_packages

  • 变量 haproxy_pre_packages 已重命名为 haproxy_required_distro_packages

  • 变量 haproxy_packages 已重命名为 haproxy_distro_packages

  • 变量 memcached_apt_packages 已重命名为 memcached_distro_packages

  • 变量 neutron_apt_packages 已重命名为 neutron_distro_packages

  • 变量 neutron_lbaas_apt_packages 已重命名为 neutron_lbaas_distro_packages

  • 变量 neutron_vpnaas_apt_packages 已重命名为 neutron_vpnaas_distro_packages

  • 变量 neutron_apt_remove_packages 已重命名为 neutron_remove_distro_packages

  • 变量 heat_apt_packages 已重命名为 heat_distro_packages

  • 变量 ceilometer_apt_packages 已重命名为 ceilometer_distro_packages

  • 变量 ceilometer_developer_mode_apt_packages 已重命名为 ceilometer_developer_mode_distro_packages

  • 变量 swift_apt_packages 已重命名为 swift_distro_packages

  • 变量 lxc_apt_packages 已重命名为 lxc_hosts_distro_packages

  • 变量 openstack_host_apt_packages 已重命名为 openstack_host_distro_packages

  • galera_client 角色在执行时始终检查是否安装了最新软件包。如果部署者希望更改检查以仅验证软件包是否存在,则应将选项 galera_client_package_state 设置为 present

  • ceph_client 角色在执行时始终检查是否安装了最新软件包。如果部署者希望更改检查以仅验证软件包是否存在,则应将选项 ceph_client_package_state 设置为 present

  • os_ironic 角色在执行时始终检查是否安装了最新软件包。如果部署者希望更改检查以仅验证软件包是否存在,则应将选项 ironic_package_state 设置为 present

  • os_nova 角色在执行时始终检查是否安装了最新软件包。如果部署者希望更改检查以仅验证软件包是否存在,则应将选项 nova_package_state 设置为 present

  • memcached_server 角色在执行时始终检查是否安装了最新软件包。如果部署者希望更改检查以仅验证软件包是否存在,则应将选项 memcached_package_state 设置为 present

  • os_heat 角色在执行时始终检查是否安装了最新软件包。如果部署者希望更改检查以仅验证软件包是否存在,则应将选项 heat_package_state 设置为 present

  • rsyslog_server 角色在执行时始终检查是否安装了最新软件包。如果部署者希望更改检查以仅验证软件包是否存在,则应将选项 rsyslog_server_package_state 设置为 present

  • pip_install 角色在执行时始终检查是否安装了最新软件包。如果部署者希望更改检查以仅验证软件包是否存在,则应将选项 pip_install_package_state 设置为 present

  • repo_build 角色在执行时始终检查是否安装了最新软件包。如果部署者希望更改检查以仅验证软件包是否存在,则应将选项 repo_build_package_state 设置为 present

  • os_rally 角色在执行时始终检查是否安装了最新软件包。如果部署者希望更改检查以仅验证软件包是否存在,则应将选项 rally_package_state 设置为 present

  • os_glance 角色在执行时始终检查是否安装了最新软件包。如果部署者希望更改检查以仅验证软件包是否存在,则应将选项 glance_package_state 设置为 present

  • security 角色在执行时始终检查是否安装了最新软件包。如果部署者希望更改检查以仅验证软件包是否存在,则应将选项 security_package_state 设置为 present

  • 所有角色在执行时始终检查是否安装了最新软件包。如果部署者希望更改检查以仅验证软件包是否存在,则应将选项 package_state 设置为 present

  • os_keystone 角色在执行时始终检查是否安装了最新软件包。如果部署者希望更改检查以仅验证软件包是否存在,则应将选项 keystone_package_state 设置为 present

  • os_cinder 角色在执行时始终检查是否安装了最新软件包。如果部署者希望更改检查以仅验证软件包是否存在,则应将选项 cinder_package_state 设置为 present

  • os_gnocchi 角色在执行时始终检查是否安装了最新软件包。如果部署者希望更改检查以仅验证软件包是否存在,则应将选项 gnocchi_package_state 设置为 present

  • os_magnum 角色在执行时始终检查是否安装了最新软件包。如果部署者希望更改检查以仅验证软件包是否存在,则应将选项 magnum_package_state 设置为 present

  • rsyslog_client 角色在执行时始终检查是否安装了最新软件包。如果部署者希望更改检查以仅验证软件包是否存在,则应将选项 rsyslog_client_package_state 设置为 present

  • os_sahara 角色在执行时始终检查是否安装了最新软件包。如果部署者希望更改检查以仅验证软件包是否存在,则应将选项 sahara_package_state 设置为 present

  • repo_server 角色在执行时始终检查是否安装了最新软件包。如果部署者希望更改检查以仅验证软件包是否存在,则应将选项 repo_server_package_state 设置为 present

  • haproxy_server 角色在执行时始终检查是否安装了最新软件包。如果部署者希望更改检查以仅验证软件包是否存在,则应将选项 haproxy_package_state 设置为 present

  • os_aodh 角色在执行时始终检查是否安装了最新软件包。如果部署者希望更改检查以仅验证软件包是否存在,则应将选项 aodh_package_state 设置为 present

  • openstack_hosts 角色在执行时始终检查是否安装了最新软件包。如果部署者希望更改检查以仅验证软件包是否存在,则应将选项 openstack_hosts_package_state 设置为 present

  • galera_server 角色在执行时始终检查是否安装了最新软件包。如果部署者希望更改检查以仅验证软件包是否存在,则应将选项 galera_server_package_state 设置为 present

  • rabbitmq_server 角色在执行时始终检查是否安装了最新软件包。如果部署者希望更改检查以仅验证软件包是否存在,则应将选项 rabbitmq_package_state 设置为 present

  • lxc_hosts 角色在每次执行时都会检查是否安装了最新软件包。如果部署者希望更改检查方式,仅验证软件包是否存在,则应将选项 lxc_hosts_package_state 设置为 present

  • os_ceilometer 角色在每次执行时都会检查是否安装了最新软件包。如果部署者希望更改检查方式,仅验证软件包是否存在,则应将选项 ceilometer_package_state 设置为 present

  • os_swift 角色在每次执行时都会检查是否安装了最新软件包。如果部署者希望更改检查方式,仅验证软件包是否存在,则应将选项 swift_package_state 设置为 present

  • os_neutron 角色在每次执行时都会检查是否安装了最新软件包。如果部署者希望更改检查方式,仅验证软件包是否存在,则应将选项 neutron_package_state 设置为 present

  • os_horizon 角色在每次执行时都会检查是否安装了最新软件包。如果部署者希望更改检查方式,仅验证软件包是否存在,则应将选项 horizon_package_state 设置为 present

  • 变量 rsyslog_client_packages 已被 rsyslog_client_distro_packages 替换。

  • 变量 rsyslog_server_packages 已被 rsyslog_server_distro_packages 替换。

  • 变量 rabbitmq_monitoring_password 已添加到 user_secrets.yml。如果此变量不存在,RabbitMQ 监控用户将不会被创建。

  • 所有自主访问控制 (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
    
  • 容器属性 container_release 已被移除,因为该属性在容器创建过程中会自动设置为与主机相同版本。

  • 变量 lxc_container_release 已从 lxc-container-create.yml playbook 中移除,因为它不再被容器创建过程使用。

  • LBaaSv1 已从 Newton 版本的 neutron-lbaas 项目中移除,并且也已从 OpenStack-Ansible 中移除。

  • LVM 配置任务和 lvm.conf 模板已从 openstack_hosts 角色中移除,因为它们不再需要。所有 LVM 配置都由 os_cinder 角色正确处理。

  • rsyslog_client 角色中,变量 rsyslog_client_repos 已被移除,因为它不再被使用。

  • Percona Xtrabackup 已从 Galera 客户端角色中移除。

  • 已移除 infra_hostsinfra_containers 编目组。没有容器或服务专门分配给这些组,并且这些组的使用已被 shared-infra_*os-infra_* 组取代一段时间。正在使用这些组的部署者应调整 env.d 目录中的任何自定义配置,以将容器和/或服务分配给其他组。

  • 变量 verbose 已被移除。部署者应依赖 debug 变量来启用更高级别的 memcached 日志记录。

  • 变量 verbose 已被移除。部署者应依赖 debug 变量来启用更高级别的日志记录。

  • aodh-api 初始化服务已移除,因为 aodh-api 作为 apache mod_wsgi 服务部署。

  • 由于 ceilometer-api 作为 apache mod_wsgi 服务部署,因此 ceilometer-api 初始化服务已移除。

  • 数据库创建和用户创建任务已从 os_heat 角色中移除。这些任务已迁移到 playbook 中。

  • 数据库创建和用户创建任务已从 os_nova 角色中移除。这些任务已迁移到 playbook 中。

  • 数据库创建和用户创建任务已从 os_glance 角色中移除。这些任务已迁移到 playbook 中。

  • 数据库和用户创建任务已从 os_horizon 角色中移除。这些任务已迁移到 playbook 中。

  • 数据库创建和用户创建任务已从 os_cinder 角色中移除。这些任务已迁移到 playbook 中。

  • 数据库创建和用户创建任务已从 os_neutron 角色中移除。这些任务已迁移到 playbook 中。

  • 由 AT&T 编写的 Neutron HA 工具不再默认启用。该工具为未使用原生 Neutron L3HA 的网络和路由器提供 HA 功能。由于原生 Neutron L3HA 稳定且与 Linux Bridge Agent 兼容,并且是启用部署中 HA 的更好方法,因此该工具不再默认设置。如果需要遗留 L3HA,部署者可以将 neutron_legacy_ha_tool_enabled 设置为 true 以启用遗留工具。

  • 变量 repo_build_apt_packages 已重命名。应使用 repo_build_distro_packages 来覆盖构建 Python wheel 和 venv 所需的软件包。

  • 现在 repo_build 角色默认使用 Ubuntu Cloud Archive。可以通过将 repo_build_uca_enable 设置为 False 来禁用此功能。

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

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

  • 为了与 OpenStack swift 默认设置匹配,swift_fallocate_reserve 的默认值已从 10737418240 (10GB) 更改为 1%。

  • 已添加一个新选项 swift_pypy_enabled 以启用或禁用 swift 的 pypy 解释器。默认值为“false”。

  • 已添加一个新选项 swift_pypy_archive 以允许下载预构建的 pypy 存档并将其移动到位,以支持 swift 在 pypy 下运行。此选项是一个字典,包含 URL 和 SHA256 作为键。

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

  • 在从 Mitaka 升级到 Newton 的 Swift 部署时,应注意已更改启用的中间件列表。在 Newton 中,“staticweb”中间件默认加载。虽然此更改添加了一个功能,但它在升级过程中不会中断。

  • 安全角色中的所有变量现在都以 security_ 为前缀,以避免与其他角色中的变量冲突。之前在以前版本中使用过安全角色的所有部署者都需要在所有安全角色变量前加上 security_

    例如,部署者可以使用以下变量禁用直接 root ssh 登录

    ssh_permit_root_login: yes
    

    该变量将变为

    security_ssh_permit_root_login: yes
    
  • 当启用 Aodh 时,Ceilometer 不再管理警报存储。它现在将警报相关请求重定向到 Aodh API。这现在在部署 Aodh 时自动启用。

  • 对 ceilometer aodh_connection_string 的覆盖将不再起作用。在 Ceilometer 的先前版本中,指定 Aodh 连接字符串已被弃用,因此此选项已被移除。

  • 在 Ubuntu 14.04 上运行 LXC 的主机现在需要启用“trusty-backports”存储库。Ubuntu 14.04 上的 backports 存储库现在是必需的,以确保 LXC 更新到最新稳定版本。

  • 应运行 Aodh 数据迁移脚本,将警报数据从 MongoDB 存储迁移到 Galera,因为即将移除 MongoDB 支持。

  • Neutron 现在默认使用 Ubuntu Cloud Archive。可以通过将 neutron_uca_enable 设置为 False 来禁用此功能。

  • utility-all.yml playbook 不再将部署主机根用户的私有 ssh 密钥分发到所有实用程序容器。如果部署者希望获得此行为,应设置 utility_ssh_private_key 变量。

  • 以下变量已重命名,以使变量名称对多个操作系统中性。

    • nova_apt_packages -> nova_distro_packages

    • nova_spice_apt_packages -> nova_spice_distro_packages

    • nova_novnc_apt_packages -> nova_novnc_distro_packages

    • nova_compute_kvm_apt_packages -> nova_compute_kvm_distro_packages

弃用说明

  • 移除了 cirros_tgz_url,并在大多数地方用 tempest_img_url 替换。

  • 移除了 cirros_img_url,并在大多数地方用 tempest_img_url 替换。

  • 移除了已弃用的变量 tempest_compute_image_alt_ssh_user

  • 移除了已弃用的变量 tempest_compute_image_ssh_password

  • 移除了已弃用的变量 tempest_compute_image_alt_ssh_password

  • cirros_img_disk_format 重命名为 tempest_img_disk_format

  • 移除了下载和解压缩 .tar.gz 的功能。相关的 tempest 选项 ami_img_fileaki_img_fileari_img_file 已从 tempest.conf.j2 中移除。

  • tempest.conf.j2 的 [boto] 部分已移除。这些测试已从 tempest 中移除很长时间。

  • 变量 openstack_host_apt_packages 已被弃用。应使用 openstack_host_packages 来覆盖安装在所有 OpenStack 主机上的软件包。

  • 变量 rabbitmq_apt_packages 已被弃用。应使用 rabbitmq_dependencies 来覆盖与 rabbitmq-server 一起安装的其他软件包。

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

  • galera_package_url 更改为 percona_package_url 以提高清晰度

  • galera_package_sha256 更改为 percona_package_sha256 以提高清晰度

  • galera_package_path 更改为 percona_package_path 以提高清晰度

  • galera_package_download_validate_certs 更改为 percona_package_download_validate_certs 以提高清晰度

  • dynamic_inventory.py 中的 main 函数现在接受命名参数而不是字典。这是为了支持未来的代码更改,这些更改会将构造逻辑移动到单独的文件中。

  • 在根系统外部的虚拟环境中安装 Ansible 将不再受支持。

  • 角色中的变量 `galera_client_package_*``galera_client_apt_percona_xtrabackup_*` 已被移除,因为 Xtrabackup 已被移除。

  • 由 AT&T 编写的 Neutron HA 工具已被弃用,将在 Ocata 版本中移除。

安全问题

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

  • 当使用 HAproxy 作为负载均衡器时,默认情况下会生成一个自签名证书。此证书用于终止 Horizon 和所有 OpenStack API 服务的公共端点。

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

  • admin_token_auth 中间件存在潜在的安全风险,将在 keystone 的未来版本中移除。可以通过设置 keystone_keystone_paste_ini_overrides 变量来移除其使用。

    keystone_keystone_paste_ini_overrides:
      pipeline:public_api:
        pipeline: cors sizelimit osprofiler url_normalize request_id build_auth_context token_auth json_body ec2_extension public_service
      pipeline:admin_api:
        pipeline: cors sizelimit osprofiler url_normalize request_id build_auth_context token_auth json_body ec2_extension s3_extension admin_service
      pipeline:api_v3:
        pipeline: cors sizelimit osprofiler url_normalize request_id build_auth_context token_auth json_body ec2_extension_v3 s3_extension service_v3
    

错误修复

  • 此角色假定存在名为“public|private”的网络和名为“public|private-subnet”的子网。通过添加两组变量使这些名称可配置;tempest_public_net_nametempest_public_subnet_name 用于公共网络,以及 tempest_private_net_nametempest_private_subnet_name 用于私有网络。这解决了 bug 1588818

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

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

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

  • 添加了特定于体系结构的 percona-xtrabackup 和 qpress 位置,并为 ppc64el 提供了替代位置,因为当前提供商无法提供软件包。

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

  • 容器内的日志记录已绑定到主机,这解决了问题 1588051 <https://bugs.launchpad.net/openstack-ansible/+bug/1588051>_

  • 已从 tempest.conf.j2 中移除各种已弃用/不再支持的功能。一些变量已移动到配置中的新部分。

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

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

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

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

  • 已添加一个 Ansible 任务,用于在 CentOS 系统上禁用 netconsole 服务(如果系统上已安装该服务)。

    部署者可以通过将 security_disable_netconsole 设置为 no 来选择退出此更改。

  • 为了确保将适当的数据传递给来自 repo 服务器的请求者,在同步过程中 slave repo_server Web 服务器将被离线。这确保了通过负载均衡器始终向请求者传递正确的数据。

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

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

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

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

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

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

  • 已添加对 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
    
  • LXC 软件包安装和缓存准备现在默认仅在实际实现容器的主机上发生。

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

  • 将多个 IP 地址分配给相同的 hostname 现在将在运行任何 playbook 之前导致 inventory 错误。

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

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

  • openstack_user_config.yml 中的 global_overrides 字典中删除变量条目,现在可以正确地从 openstack_inventory.json 文件中删除这些变量。请参阅 Bug

  • 变量 pip_packages_tmp 已重命名为 pip_tmp_packages,以避免 py_pkgs lookup 插件的意外处理。

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

  • 提供程序网络的静态路由信息现在必须包含 cidrgateway 信息。如果缺少任何一个键,将引发错误,并且 dynamic_inventory.py 脚本将在采取任何 Ansible 操作之前停止。 以前,如果缺少任何一个键,inventory 脚本将继续静默运行,而不会将静态路由信息添加到网络中。请注意,此检查不会验证 CIDR 或 gateway 值,只是验证这些值是否存在。

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

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

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

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

  • Aodh 在 Mitaka 中已弃用对 NoSQL 存储(MongoDB 和 Cassandra)的支持,并计划在 O* 版本中删除。这会导致日志中出现警告。默认使用 MongoDB 存储的 Aodh 已替换为使用 Galera。继续使用 MongoDB 需要使用 vars 指定正确的 aodh_connection_string,并将 pymongo 添加到 aodh_pip_packages 列表中。

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

其他说明

  • nova_libvirt_live_migration_flag 现在已逐步淘汰。如果您想强制 libvirt 使用 VIR_MIGRATE_TUNNELLED 标志,请创建 nova 配置覆盖,并使用 live_migration_tunnelled: True。否则,Nova 将“选择一个合理的默认值”。

  • nova_compute_manager 现在已逐步淘汰。

  • playbooks 目录中的 in tree “ansible.cfg” 文件已被删除。该文件使得对于需要更改这些值的部署者来说难以兼容。此外,该文件的存在强制 Ansible 忽略用户主目录或默认“/etc/ansible”目录中的任何其他配置文件。

  • Mariadb 版本升级门控检查已删除。

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