Python

使用 RPM 部署 Python 應用程序的首選方法是什麼?

  • March 16, 2013

我是 dev-ops 方面的新手,我一直在努力將 Python 應用程序打包到通過 Yum 部署到 centos VM 的 RPM 中(使用 python setup.py bdist_rpm)。Chef 用於管理 VM。作為持續部署過程的一部分,Python 應用程序將在 virtualenv 中執行。

RPM 是否應該是智能的和自包含的,執行諸如創建/啟動 virtualenv 環境、pip 安裝所需的依賴項然後最後配置一個 init 程序(在這種情況下為 virtualenv 啟動一個 uwsgi REST 伺服器程序)之類的操作?

或者,Chef 配方是否應該管理建構 virtualenv 和 pip 安裝依賴項,而 RPM 本身執行簡單的“python setup.py install”以將我的 Python 模組載入到 virtualenv 的 pythonX.Y/site-packages 文件夾中?

後續的“yum install/reinstall”呼叫(比如通過自動化過程)對這兩種方法都有效,但前者需要更複雜的 RPM,這可能不是“最佳實踐”,對嗎?前者確實允許獨立安裝,以後可以更乾淨地刪除,並且更好地將開發人員(Python)和開發人員(Chef)之間的關注點分開。請告知“通常”做什麼。

這本廚師食譜似乎很不錯。它為您想要做的事情提供支持。對於通常所做的事情,我只能從 Puppet 的角度來處理它,但是當 RPM 很容易得到食譜的支持時,我認為沒有理由將這種複雜性添加到 RPM 中。當您需要進行更改時,您只是在為自己創建更多的工作,並讓其他使用者更難以支持。

引用自:https://serverfault.com/questions/488290