2012-06-30 157 views
0

因此,我的情況是,我有一臺計算機(比如M)使用PXE引導啓動並在該計算機中安裝操作系統(如CentOS)。 M不會有任何監視器或鍵盤連接到它。PXE引導安裝操作系統並使用程序獲得其成功的操作系統安裝狀態

PXE啓動服務器也從一個CentOS的機器上運行(說B)

我將如何編寫一個程序(bash腳本,Java程序),它位於機器B和獲取狀態/通知機M已成功完成安裝操作系統。

請注意,我無法手動檢查操作系統是否已完成安裝。我需要使這個過程自動化。

我會很高興,如果你們可以建議最好的和有效的方式做到這一點。

回答

0

安裝完成後(取決於安裝方法 - 對於kickstart,使用安裝後腳本),使用NFS從M上訪問B上的目錄是一種非常簡單的方法。在某個目錄中創建一個文件,作爲安裝完成的標誌。在機器'B'上,您可以使用inotify功能檢測完成情況(從外殼腳本中檢測到inotifywait,否則請使用libinotify)。

如果由於某種原因NFS被禁止,您應該可以相當容易地使用scpsshfs。最複雜的部分是複製生成的密鑰。

+0

太棒了!將嘗試。 :) –

+0

Brian:沒有NFS的其他方式?沒關係,如果它很難... –

2

我的建議是讓服務器與Web服務器/ Web服務通話,說安裝已完成,並傳遞值以標識它是哪臺機器。

0

我最近用debian PXE安裝程序遇到了這個問題。

我將我的主機設置爲從網絡啓動。我通過機器的system-uuid 發送POST請求來識別它並告訴它需要安裝的服務器。當服務器 收到此請求時,它會創建一個特定的pxelinux.cfg文件,然後以uuid作爲文件名,確保特定主機通過特殊參數獲取debian安裝。

我有一個預先定義好的文件,它是一個模板,它被呈現給每臺機器。在debian安裝期間,有機會運行延遲命令,我使用它從服務器下載腳本並在目標環境中執行腳本。該腳本發送另一個POST請求,通知服務器第一階段安裝已完成,並且還安裝第二階段安裝腳本。服務器然後刪除特定的pxeconfig文件。默認的pxeconfig文件將默認在10秒內從硬盤驅動器啓動,因此當主機再次從網絡啓動時,默認情況下會從硬盤驅動器啓動,並繼續安裝。

你可以看看這裏的代碼:https://github.com/umeboshi2/paella

相關問題