Newton 系列发布说明¶
14.2.16-7¶
已知问题¶
如果仍在使用的 newton 版本执行了新的构建,由于在 newton 声明生命周期结束 (EOL) 后发布了一个新的 PBR 库版本,repo-build 过程将会失败。如果环境中正在使用 gnocchi,此问题将会出现,也可能表现为其他服务的 venv 构建失败。可以通过将环境升级到最新的 OpenStack-Ansible Ocata 版本,或者执行以下操作来解决此问题。
Fork
openstack/openstack-ansible-repo_buildgit 仓库。在 fork 中基于
newton-eol标签创建一个stable/newton分支。将 https://review.openstack.org/557757 cherry-pick 到该分支的 fork 中。
Fork
openstack/openstack-ansiblegit 仓库。修改
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_neutrongit 仓库。在 fork 中基于
newton-eol标签创建一个stable/newton分支。修改名为
Reload systemd daemon的 handler 及其在 role 中的所有引用,更改为其他名称(例如os_neutron Reload systemd daemon)。Fork
openstack/openstack-ansiblegit 仓库。修改
ansible-role-requirements.yml文件,以包含您修补后的 os_neutron role 的 URL 和 git SHA。
完成此操作后,neutron 服务的升级过程将正常工作。
在
lxc_hostsrole 执行中,我们使用 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_nodes为name和ip_addr设置列表来手动指定。
已知问题¶
LXD 2.0.11 增加了一个新功能(容器的“description”标签),并且已添加到稳定的 Ubuntu Xenial 16.04 版本中。不幸的是,pylxd 2.0.5 无法处理此额外属性并崩溃。
对于 newton 14.2.14 及更早版本,我们建议将所有 newton 部署中的 LXD 版本固定到 2.0.11 以下的版本。对于 newton 14.2.15 及更高版本,新的 LXD 版本应该可以再次使用。
相关 Bug
对于所有 newton 版本,直到 14.2.14,在执行 os-nova-install.yml playbook 时,
nova-novncproxy和nova-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_keys、rabbitmq_repo_url 和 rabbitmq_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_hostsrole 在所有主机上将这些内核参数设置为1,以确保桥接流量始终通过 iptables。
PermitRootLogin在 ssh 配置中已从yes更改为without-password。这将仅允许使用密钥通过 ssh 身份验证 root。
Bug 修复¶
基于 RabbitMQ 的文档 [ https://rabbitmq.cn/which-erlang.html ],此更改可确保我们跨发行版使用的 erlang 版本一致且受 RabbitMQ 支持。
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_novarole 现在提供在完成数据库同步后执行在线数据迁移的功能。数据迁移将不会执行,直到布尔变量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_serverrole 中的默认 SST 机制,因此用于 x86_64 硬件体系结构的版本已从 2.2.13 更新到 2.3.5。有关更多详细信息,请参阅 percona 2.3.2 版本的发布说明。
14.2.7¶
新功能¶
os_cinderrole 现在提供在完成数据库同步后执行在线数据迁移的功能。数据迁移将不会执行,直到布尔变量cinder_all_software_updated为 true。此变量需要由使用该 role 的 playbook 设置。
os-cinder-install.ymlplaybook 现在将执行 cinder 的滚动升级,包括数据库迁移(模式和在线迁移),具体过程如 cinder 文档 中所述。当使用 haproxy 作为负载均衡器时,将被更改的后端将在进行更改之前被清空,并在更改完成后重新添加到池中。
现在可以禁用 horizon 中的 heat stack 密码字段。已添加变量
horizon_enable_heatstack_user_pass,默认值为 True。
os-neutron-install.ymlplaybook 现在将执行 neutron 的滚动升级,包括数据库迁移(扩展和收缩),具体过程如 neutron 文档 中所述。
os-nova-install.ymlplaybook 现在将执行 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 unitTimeoutSec值已从 300 秒减少到 120 秒。这为长寿命会话提供了 2 分钟的排空时间,同时防止在重启或停止之前启动新的会话。控制重启时服务停止和启动之间的时间的RestartSec值已从 150 秒减少到 2 秒,以加快重启速度。这些值可以通过使用keystone_*_init_config_overrides变量进行调整,这些变量使用config_template任务来更改模板默认值。
移除了 nova.conf 中设置
rbd_user和rbd_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 unitTimeoutSec值已从 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 unitTimeoutSec值已从 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 unitTimeoutSec值已从 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 unitTimeoutSec值已从 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 unitTimeoutSec值已从 300 秒减少到 120 秒。这为长寿命会话提供了 2 分钟的排空时间,同时防止在重启或停止之前启动新的会话。控制重启时服务停止和启动之间的时间的RestartSec值已从 150 秒减少到 2 秒,以加快重启速度。这些值可以通过使用keystone_*_init_config_overrides变量进行调整,这些变量使用config_template任务来更改模板默认值。
对于
os_magnum角色,控制在停止或重启服务时发送 SIGTERM 信号和 SIGKILL 信号之间的时间的 systemd unitTimeoutSec值已从 300 秒减少到 120 秒。这为长寿命会话提供了 2 分钟的排空时间,同时防止在重启或停止之前启动新的会话。控制重启时服务停止和启动之间的时间的RestartSec值已从 150 秒减少到 2 秒,以加快重启速度。这些值可以通过使用magnum_*_init_config_overrides变量进行调整,这些变量使用config_template任务来更改模板默认值。
对于
os_neutron角色,控制在停止或重启服务时发送 SIGTERM 信号和 SIGKILL 信号之间的时间的 systemd unitTimeoutSec值已从 300 秒减少到 120 秒。这为长寿命会话提供了 2 分钟的排空时间,同时防止在重启或停止之前启动新的会话。控制重启时服务停止和启动之间的时间的RestartSec值已从 150 秒减少到 2 秒,以加快重启速度。这些值可以通过使用neutron_*_init_config_overrides变量进行调整,这些变量使用config_template任务来更改模板默认值。
对于
os_nova角色,控制在停止或重启服务时发送 SIGTERM 信号和 SIGKILL 信号之间的时间的 systemd unitTimeoutSec值已从 300 秒减少到 120 秒。这为长寿命会话提供了 2 分钟的排空时间,同时防止在重启或停止之前启动新的会话。控制重启时服务停止和启动之间的时间的RestartSec值已从 150 秒减少到 2 秒,以加快重启速度。这些值可以通过使用nova_*_init_config_overrides变量进行调整,这些变量使用config_template任务来更改模板默认值。
对于
os_swift角色,控制在停止或重启服务时发送 SIGTERM 信号和 SIGKILL 信号之间的时间的 systemd unitTimeoutSec值已从 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_key或nova_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 unitTimeoutSec值已从 300 秒减少到 120 秒。这为长寿命会话提供了 2 分钟的排空时间,同时防止在重启或停止之前启动新的会话。控制重启时服务停止和启动之间的时间的RestartSec值已从 150 秒减少到 2 秒,以加快重启速度。这些值可以通过使用cinder_*_init_config_overrides变量进行调整,这些变量使用config_template任务来更改模板默认值。
Haproxy-server 角色允许设置可调参数。为此,有必要在配置文件中设置一个选项字典,提及需要更改的选项(其余选项的默认值在模板中编程)。此外,“maxconn”全局选项也设置为可调参数。
添加了对
neutron作为enabled_network_interface的支持。
变量
ironic_neutron_provisioning_network_name和ironic_neutron_cleaning_network_name可以设置为用于配置和清理的 neutron 网络的名称。ansible 任务将确定该网络的适当 UUID。或者,可以使用ironic_neutron_provisioning_network_uuid或ironic_neutron_cleaning_network直接指定网络的 UUID。如果同时指定ironic_neutron_provisioning_network_name和ironic_neutron_provisioning_network_uuid,则将使用指定的 UUID。如果仅指定配置网络,则清理网络将默认为相同的网络。
升级说明¶
在升级 keepalived 角色期间,keepalived 进程将重启并引入简短的服务中断。
弃用说明¶
变量
cinder_sigkill_timeout和cinder_restart_wait已被弃用,将在 Pike 中删除。
关键问题¶
已修复一个错误,该错误导致在重建第一个 Keystone 容器期间运行 playbook 时 Keystone 凭证密钥丢失。有关更多详细信息,请参阅 launchpad bug 1667960。
其他说明¶
keepalived 角色已更新,现在包含了一种可选的方式来配置 vrrp 脚本超时。另请参见:keepalived 角色上的 VRRP 超时 PR。
14.2.0¶
新特性¶
如果设置了
galera_repo_url的值,galera_client角色将默认使用galera_repo_urlURL。这简化了使用 MariaDB 服务器和客户端的替代镜像,因为只需要设置一个变量即可覆盖它们。
为 neutron 库添加了
get_networks命令。这将返回所有网络的网络信息,如果指定的net_name网络不存在,则会失败。如果未指定net_name,将返回所有网络的网络信息,而不会检查现有net_name网络。
如果存在匹配的服务名称、类型、区域和接口,
keystone模块的ensure_endpoint方法的默认行为已更改为更新现有的端点。这确保了每个区域不存在重复的服务条目。
已更新 repo 服务器文件系统结构,以允许同时运行多个操作系统和多个体系结构,并从单个服务器提供服务,而不会影响池、venv、wheel 存档和清单。新的结构遵循以下模式 $RELEASE/$OS_TYPE-$ARCH,并已应用于 os-releases、venvs 和 pools。
部署者现在可以定义一个环境变量
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-releases、venvs 和 pools。
弃用说明¶
变量
galera_client_apt_repo_url和galera_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_name和backend2_name已从 tempest 的提交 27905cc (合并于 2016/04/26) 中移除,因此移除了tempest_volume_backend1_name和tempest_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在 dictsgalera_repo和galera_percona_xtrabackup_repo中定义 apt 源文件名。
现在可以使用 dict
haproxy_repo的filename部分定义 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.04和RHEL 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 推荐的那样。
已知问题¶
bootstrap-ansible 脚本在安装 OpenStack-Ansible 14.0.6 及更早版本时,可能会因不兼容的要求而失败。有关更多详细信息,请参阅 https://bugs.launchpad.net/openstack-ansible/+bug/1658948。
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_nameopenstack_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_repo和tempest_requirements_git_install_branch已被移除,转而使用变量pip_install_upper_constraints使用上约束文件的 URL/路径。
变量
swift_requirements_git_repo和swift_requirements_git_install_branch已被移除,转而使用变量pip_install_upper_constraints使用上约束文件的 URL/路径。
变量
neutron_requirements_git_repo和neutron_requirements_git_install_branch已被移除,转而使用变量pip_install_upper_constraints使用上约束文件的 URL/路径。
变量
sahara_requirements_git_repo和sahara_requirements_git_install_branch已被移除,转而使用变量pip_install_upper_constraints使用上约束文件的 URL/路径。
变量
nova_requirements_git_repo和nova_requirements_git_install_branch已被移除,转而使用变量pip_install_upper_constraints使用上约束文件的 URL/路径。
变量
nova_lxd_requirements_git_repo和nova_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_address、lxc_net6_netmask和lxc_net6_nat进行配置。
升级说明¶
变量
horizon_requirements_git_repo和horizon_requirements_git_install_branch已被删除,转而使用变量pip_install_upper_constraints指定 upper-constraints 文件的 URL/路径。
变量
ironic_requirements_git_repo和ironic_requirements_git_install_branch已被删除,转而使用变量pip_install_upper_constraints指定 upper-constraints 文件的 URL/路径。
变量
heat_requirements_git_repo和heat_requirements_git_install_branch已被删除,转而使用变量pip_install_upper_constraints指定 upper-constraints 文件的 URL/路径。
变量
magnum_requirements_git_repo和magnum_requirements_git_install_branch已被删除,转而使用变量pip_install_upper_constraints指定 upper-constraints 文件的 URL/路径。
变量
cinder_requirements_git_repo和cinder_requirements_git_install_branch已被删除,转而使用变量pip_install_upper_constraints指定 upper-constraints 文件的 URL/路径。
变量
gnocchi_requirements_git_repo和gnocchi_requirements_git_install_branch已被删除,转而使用变量pip_install_upper_constraints指定 upper-constraints 文件的 URL/路径。
变量
glance_requirements_git_repo和glance_requirements_git_install_branch已被删除,转而使用变量pip_install_upper_constraints指定 upper-constraints 文件的 URL/路径。
变量
keystone_requirements_git_repo和keystone_requirements_git_install_branch已被删除,转而使用变量pip_install_upper_constraints指定 upper-constraints 文件的 URL/路径。
变量
aodh_requirements_git_repo和aodh_requirements_git_install_branch已被删除,转而使用变量pip_install_upper_constraints指定 upper-constraints 文件的 URL/路径。
变量
rally_requirements_git_repo和rally_requirements_git_install_branch已被删除,转而使用变量pip_install_upper_constraints指定 upper-constraints 文件的 URL/路径。
变量
ceilometer_requirements_git_repo和ceilometer_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.yml或user_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_url和cirros_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-agenttunnel_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_pkgslookup 插件现在对需求文件发现具有严格的排序。这些文件用于添加额外的需求到发现的 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_enabled 到 haproxy_service_configs 字典,以支持切换 haproxy 端点。
添加了一个新的
haproxy_extra_services变量,它将允许添加额外的 haproxy 端点。
repo 服务器现在将用作软件包管理器缓存。
OpenStack-Ansible 提供的 HAProxy 角色现在默认使用自签名证书终止 SSL。虽然可以禁用此功能,但默认情况下在所有公共端点上包含 SSL 服务将有助于使部署更安全,而无需额外的用户交互。有关 SSL 和证书生成的更多信息,可以在 此处 找到。
rabbitmq_server角色现在支持配置 RabbitMQ 服务器 Erlang 代码的 HiPE 编译。此配置选项可以提高某些工作负载和硬件的服务器性能。部署者可以覆盖rabbitmq_hipe_compile变量,如果他们希望启用此功能,则将其值设置为True。
Horizon 现在具有使用 YAML 格式的全局选项
horizon_config_overrides设置任意配置选项的能力。覆盖遵循其他 OpenStack 服务覆盖中找到的相同模式。 有关覆盖的常规文档可以在此处找到。
os_horizon角色现在支持自定义主题的配置。部署者可以使用新的horizon_custom_themes和horizon_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。
已添加实验性支持,以允许部署 OpenStack Bare Metal 服务 (Ironic)。有关如何设置它的详细信息,请参阅 OpenStack-Ansible Ironic 安装指南。
为了确保部署系统保持清洁,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_keyserver和lxc_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 下载模板。这消除了项目对 rpc-trusty-container.tgz 镜像 的最后一个剩余依赖项。
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_servicesdict 变量以禁用这些服务的需要。
Neutron BGP 动态路由插件现在可以可选地部署和配置。请参阅 OpenStack Networking Guide: BGP dynamic routing 以获取有关该服务及其提供的功能的详细信息。
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_type为ml2.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_prefix和swift_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,默认值为 10240swift_soft_open_file_limits,默认值为 4096swift_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_repolxc_container_template_security_apt_repolxc_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 syncookiessecurity_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。
需要使用 Keystone admin API 更新公共端点以支持安全端点。Keystone ansible 模块不会自动重新创建端点。有关 Keystone 服务目录的信息可以在这里找到。
升级不会替换 /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_address和is_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_servicesdict 变量以禁用这些服务的需要。
已为动态路由 neutron 插件添加了数据库迁移任务。
如 Mitaka 发布说明 中所述,Neutron 现在可以正确计算并向实例通告 MTU。因此,已从变量
neutron_dhcp_config中删除默认 DHCP 配置以通告 MTU。
如 Mitaka 发布说明 中所述,Neutron 现在可以正确计算并向实例通告 MTU。因此,变量
neutron_network_device_mtu已被删除,并且模板中advertise_mtu、path_mtu和segment_mtu的硬编码值已被删除,以允许上游默认值按预期运行。
已在
env.d/neutron.yml和env.d/nova.yml环境配置文件中添加了新的主机组neutron_openvswitch_agent,以支持 Open vSwitch 的实现。部署者必须确保他们的环境配置文件已更新,以包含上述组名。请参阅 env.d/neutron.yml 和 env.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_bin、glance_venv_enabled、glance_venv_etc_dir和glance_non_venv_etc_dir。
gnocchi 及其依赖的 pip 包的安装现在将仅在 Python 虚拟环境中发生。已删除变量
gnocchi_venv_bin、gnocchi_venv_enabled、gnocchi_venv_etc_dir和gnocchi_non_venv_etc_dir。
heat 及其依赖的 pip 包的安装现在将仅在 Python 虚拟环境中发生。已删除变量
heat_venv_bin和heat_venv_enabled。
horizon 及其依赖的 pip 包的安装现在将仅在 Python 虚拟环境中发生。已删除变量
horizon_venv_bin、horizon_venv_enabled、horizon_venv_lib_dir和horizon_non_venv_lib_dir。
ironic 及其依赖的 pip 包的安装现在将仅在 Python 虚拟环境中发生。已删除变量
ironic_venv_bin和ironic_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_enabled和aodh_venv_bin。
ceilometer 及其依赖的 pip 包的安装现在将仅在 Python 虚拟环境中进行。变量
ceilometer_venv_enabled和ceilometer_venv_bin已被移除。
cinder 及其依赖的 pip 包的安装现在将仅在 Python 虚拟环境中进行。变量
cinder_venv_enabled和cinder_venv_bin已被移除。
magnum 及其依赖的 pip 包的安装现在将仅在 Python 虚拟环境中进行。变量
magnum_venv_bin、magnum_venv_enabled已被移除。
neutron 及其依赖的 pip 包的安装现在将仅在 Python 虚拟环境中进行。变量
neutron_venv_enabled、neutron_venv_bin、neutron_non_venv_lib_dir和neutron_venv_lib_dir已被移除。
nova 及其依赖的 pip 包的安装现在将仅在 Python 虚拟环境中进行。变量
nova_venv_enabled、nova_venv_bin已被移除。
rally 及其依赖的 pip 包的安装现在将仅在 Python 虚拟环境中进行。变量
rally_venv_bin、rally_venv_enabled已被移除。
sahara 及其依赖的 pip 包的安装现在将仅在 Python 虚拟环境中进行。变量
sahara_venv_bin、sahara_venv_enabled、sahara_venv_etc_dir和sahara_non_venv_etc_dir已被移除。
swift 及其依赖的 pip 包的安装现在将仅在 Python 虚拟环境中进行。变量
swift_venv_enabled、swift_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) 审计默认情况下均已禁用。这减少了部署和次要升级期间生成的日志量。以下变量现在设置为
nosecurity_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.ymlplaybook 中移除,因为它不再被容器创建过程使用。
LBaaSv1 已从 Newton 版本的
neutron-lbaas项目中移除,并且也已从 OpenStack-Ansible 中移除。
LVM 配置任务和
lvm.conf模板已从openstack_hosts角色中移除,因为它们不再需要。所有 LVM 配置都由os_cinder角色正确处理。
在
rsyslog_client角色中,变量rsyslog_client_repos已被移除,因为它不再被使用。
Percona Xtrabackup 已从 Galera 客户端角色中移除。
已移除
infra_hosts和infra_containers编目组。没有容器或服务专门分配给这些组,并且这些组的使用已被shared-infra_*和os-infra_*组取代一段时间。正在使用这些组的部署者应调整env.d目录中的任何自定义配置,以将容器和/或服务分配给其他组。
变量
verbose已被移除。部署者应依赖debug变量来启用更高级别的 memcached 日志记录。
变量
verbose已被移除。部署者应依赖debug变量来启用更高级别的日志记录。
aodh-api 初始化服务已移除,因为 aodh-api 作为 apache mod_wsgi 服务部署。
由于
ceilometer-api作为 apachemod_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.ymlplaybook 不再将部署主机根用户的私有 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_file、aki_img_file和ari_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_name和tempest_public_subnet_name用于公共网络,以及tempest_private_net_name和tempest_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 启动失败。
更改了在 dynamic_inventory.py 中命名主机容器组的方式,将 hostname_containers 更改为 hostname-host_containers,以防止在容器组与主机容器具有相同名称时选择受容器组名称启发的 hostname 时出现故障。此更改修复了以下错误 https://bugs.launchpad.net/openstack-ansible/+bug/1512883 和 https://bugs.launchpad.net/openstack-ansible/+bug/1528953。
已添加对 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 插件的意外处理。
repo_build角色现在在构建 Python wheel 时正确应用 OpenStack 需求上层约束。这解决了 https://bugs.launchpad.net/openstack-ansible/+bug/1605846
用于验证是否可以复制到容器缓存的适当 ssh 公钥的检查已更正为检查部署主机,而不是 LXC 主机。
提供程序网络的静态路由信息现在必须包含 cidr 和 gateway 信息。如果缺少任何一个键,将引发错误,并且 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,就像它们被设计的那样。