仅支持 venv 安装¶
- 日期:
2016-06-27 13:30
- 标签:
python, venv, 部署
本规范的目的是移除在 Python 虚拟环境之外安装 OpenStack 服务和依赖 pip 包的支持。
问题描述¶
系统软件包和全局安装的 Python pip 包之间的冲突可能导致服务中断和奇怪的行为。 自 Liberty 版本发布以来,OpenStack 服务默认的安装选项是使用虚拟环境来隔离每个单独的服务。 今后应该只支持此选项。
提议的变更¶
每个角色将被更新,以移除与允许在虚拟环境之外安装 pip 包的选项相关的任务和变量。 当前处理安装虚拟环境的任务也将被更新,以确保它们是幂等的,并且可以从同一角色的先前运行中断中正确恢复。
备选方案¶
保持角色不变。 OpenStack 服务的部署将继续通过虚拟环境或作为全局系统 Python 包安装来支持。
Playbook/Role 影响¶
参见 提议的变更。
升级影响¶
自 Liberty 版本发布以来,安装服务到虚拟环境一直是默认选项。 如果任何 Mitaka 部署仍然配置为不将服务安装到虚拟环境,它们将在 Newton 版本中被强制开始使用。
安全影响¶
不适用。
性能影响¶
当前正在跳过的任务将被移除,这可能会略微减少角色运行时间。
最终用户影响¶
不适用。
部署者影响¶
变量 *_venv_enabled 将不再存在,即使由部署者设置,也不会有任何效果。
开发人员影响¶
不适用。
依赖项¶
不适用。
实现¶
负责人¶
- 主要负责人
https://launchpad.net/~jimmy-mccrory (jmccrory)
工作项¶
移除每个角色中与在 venv 之外安装 pip 包相关的任务
移除每个角色中当前切换 pip 包安装到 venv 的变量
更新每个角色,使创建和安装包到 venv 的任务更具弹性和幂等性
测试¶
集成和独立角色门控测试都已经仅安装服务到虚拟环境。
文档影响¶
应该很小。
参考资料¶
不适用。