使用 RPM 部署 Python 应用程序的首选方法是什么?

woo*_*bon 5 deployment python rpm chef

我是 dev-ops 方面的新手,我一直在努力将 Python 应用程序打包到 RPM(使用 python setup.py bdist_rpm)通过 Yum 部署到 centos VM。Chef 用于管理虚拟机。作为持续部署过程的一部分,Python 应用程序将在 virtualenv 中运行。

RPM 是否应该是智能的和自包含的,执行诸如创建/启动 virtualenv 环境、pip 安装所需的依赖项,然后最终配置一个 init 进程(在这种情况下为 virtualenv 启动 uwsgi REST 服务器进程)等操作?

或者,Chef recipe 是否应该管理构建 virtualenv 和 pip 安装依赖项,而 RPM 本身做一个简单的“python setup.py install”来将我的 Python 模块加载到 virtualenv 的 pythonX.Y/site-packages 文件夹中?

对“yum install/reinstall”调用(比如通过自动化过程)的后续操作适用于任何一种方法,但前者需要更复杂的 RPM,这可能不是“最佳实践”,对吗?前者确实允许独立安装,以后可以更干净地删除,并且更好地分离开发人员(Python)和开发操作员(厨师)之间的问题。请就“通常”所做的事情提出建议。

小智 0

这本厨师食谱似乎相当不错。它为您想做的事情提供支持。对于通常所做的事情,我只能从 Puppet 的角度来处理它,但当食谱很容易支持它时,我认为没有理由向 RPM 添加这种复杂性。当您以后需要进行更改时,您只是为自己创造了更多工作,并且使其他用户更难以支持。