我有很多用於管理多服務器基礎結構的腳本。其中一些腳本需要root訪問權限,一些腳本需要訪問數據庫,其中大多數都是基於perl的。我想將所有這些腳本轉換爲可以從不同應用程序執行的非常簡單的Web服務。這些Web服務會接受常規請求輸入,並會因執行而輸出json。我在想,我應該設置一個簡單的perl調度程序,將其稱爲action
,它將執行日誌記錄,檢查憑據並執行這些簡單腳本。喜歡的東西:如何構建一個perl Web服務基礎結構
http://host/action/update-dns?server=www.google.com&ip=192.168.1.1
這將調用action
Perl驅動程序這反過來會調用update-dns
腳本使用適當的參數(可能以某種方式清洗),並返回相應的JSON響應。我希望此基礎架構具有以下屬性:
- 所有腳本都駐留在一個位置。如果新的腳本被丟棄,那麼它會自動變爲可調用的。
- 所有的腳本需要有某種形式的清單,描述誰可以調用它(屬於某個ldap組),清單需要什麼參數,響應是什麼等等,以便自我解釋。
- 所有腳本都記錄了誰做了什麼以及響應是什麼。
- 這將是巨大的,如果有一個命令行的方式做類似
# action update-dns --server=www.google.com --up=192.168.1.1
我一定要得到從頭這是怎麼回事,還是有一些已經在其之上的,我可以捎帶上?
怎麼樣使用http://java.net/projects/hudson/和HTTP的組合:// WWW .nagios.org /完美匹配或完全關閉;-) – 2011-06-13 21:04:24
@Fredrik將在第是。我正在尋找簡單和輕量級的東西,最好基於perl。按Fredrik的建議, – rmarimon 2011-06-13 21:20:27
,nagios值得一看。由於[nagios plug.ins](http://exchange.nagios.org/directory/Plugins)是單獨的可執行文件,其中許多是用C和Perl編寫的,即使沒有nagios,也可以使用它們。如果您重新創建/修改車輪,您可以在自己的應用程序(wrt license)中使用它們。 – mbx 2011-06-13 21:59:03