2011-05-13 66 views
5

我正在尋找一種工具來跟蹤「哪裏運行的是什麼」。我們有一堆服務器,以及這些項目中的每一個。這些項目可能在特定版本(hg tag/commit nr)上運行,並且在特定版本中也有它們的要求。Python:跟蹤部署的工具

Fabric通過自動執行ssh部分看起來像是一個很好的開始。但是,一旦完成部署,就不會有什麼概述。

在重新發明輪子之前,我想在這裏檢查一下(我盡了最大的努力,但可能會尋找錯誤的關鍵字)。有沒有這樣的工具?

(在實踐中,我部署Django的項目,但我不知道這是有關的問題;任何保持PIP的跟蹤/ virtualenv中安裝或一般服務器狀態應該是罰款)

千恩萬謝,

克拉斯

==========

編輯TEMP。 SOLUTION

==========

現在,我們選擇簡單地存放在一個簡單的key-value存儲該信息(在我們的例子:文件系統),我們採取非常小心備份(在我們的情況下:使用DCVS)。我們使用與我們用於執行實際部署的相同部署工具(我們的案例:結構)跟蹤此商店

密碼存儲在存儲在我們的鍵值存儲區內的TrueCrypt卷內。

==========

我還是會欣然接受任何的答案時,某種開源解決這個問題的地方彈出。我可能會在不久的將來在某個地方分享(部分)我們的解決方案。

回答

1

pip freeze爲您提供了所有已安裝軟件包的列表。獎勵:如果將輸出重定向到文件,則可以將其用作部署過程的一部分來安裝所有這些軟件包(pip可以以編程方式安裝文件中的所有軟件包)。

我看到你已經在使用virtualenv了。好。您可以運行pip freeze -E myvirtualenv > myproject.reqs以生成一個兼容性文件,該文件兼作Python環境的狀態報告。

+0

感謝您的回答。我已經在使用pip freeze了,但我想知道這是否是一種綜合工具,可以在多臺服務器上跟蹤多個項目(可能有多個版本)的狀態。 – 2011-05-13 08:12:58

0

也許你想要的東西,像OpscodeChef.

在他們自己的話說:

廚師工作原理是讓你寫 食譜,描述你希望你的服務器的 部分(如Apache , MySQL或Hadoop)進行配置。 這些食譜描述了一系列的 資源,應該在一個 特定狀態 - 例如, 包應該安裝, 服務應該運行,或應寫入 文件。然後我們 確保每個資源都是正確配置的 ,只需要 糾正措施,當它是 需要。其結果是一個安全的, 靈活的機制,以確保您的服務器始終運行 確切地如何您希望他們成爲 。

編輯:注意廚師是不是Python的工具,它是一個通用的工具,用Ruby編寫的(似乎)。但它能夠支持各種「食譜」,其中包括安裝/維護Python apps.

+0

這還不夠:我更多地尋找一種更優雅的解決方案來跟蹤各種服務器上的一堆項目,而不是尋找在服務器上獲取代碼的實際方式。後一個問題似乎以各種方式解決,前者不是。 – 2011-05-13 17:00:36

+0

保持跟蹤什麼安裝在哪裏幾乎是「祕密醬油」。做得好的人/實體似乎並不直言不諱。可能因爲所說的「sause」是非常基礎設施特定的。 – 2011-05-13 19:33:57