我是开发者的新手,我一直在努力将一个Python应用程序打包成一个RPM(使用python setup.py bdist_rpm),通过Yum部署到一个centos VM上。 厨师是用来pipe理虚拟机。 Python应用程序将在virtualenv中运行,作为持续部署过程的一部分。
如果RPM是智能且独立的,那么执行诸如创build/启动virtualenv环境,pip-安装所需的依赖关系,然后最终configuration一个init进程(在这种情况下启动virtualenv的uwsgi REST服务器进程)?
或者,如果Chef食谱pipe理构buildvirtualenv和pip安装依赖项,RPM自己做一个简单的“python setup.py install”来将我的Python模块加载到virtualenv的pythonX.Y / site-packages文件夹中?
“yum install / reinstall”调用(通过自动化进程)的后续操作可以适用于这两种方法,但前者需要更复杂的RPM,这可能不是“最佳实践”,是正确的吗? 前者确实允许一个独立的安装,以后可以更干净地删除,并更好地分离开发人员(Python)和dev-ops(厨师)之间的关注。 请告知什么是“典型”完成。
这个厨师菜谱似乎很不错。 它为你正在做的事提供支持。 对于通常的做法,我只能从Puppet的angular度来看待这个问题,但是我不认为有一个理由可以在烹饪书很容易的支持下为RPM增加这种复杂性。 稍后当您需要进行更改时,您只需要为自己创build更多的工作,并使其他用户难以支持。