使用ooRexx開發隨需應變的軟件構建服務,ooRexx使用Linux內核虛擬機(KVM)提升性能。KVM 充當客戶操作系統的主機,為用戶構建目標軟件。Apache Web 服務器控制構建並存儲結果,供用戶在以後檢索結果。通過本文了解如何設置構建服務器和創建客戶機,定制構建請求,以及組織和訪問構建結果。
最近,Open Object Rexx 項目將其舊的隨需應變軟件構建系統從由 VMware 托管的客戶操作系統轉移到由 Linux Kernel Virtual Machine (KVM) 托管的客戶機上。這一改變提供了一個更加高效的構建環境,並且為用戶減少了構建時間。
ooRexx 軟件構建系統允許開發人員針對多個基於 x86 的平台和操作系統構建 ooRexx 軟件包。目前,受支持的客戶操作系統包括 Windows? XP (i386)、Fedora 10(i386 和 x86_64)和 Ubuntu 8.04(i386)。這些客戶操作系統為 Windows (EXE)、Fedora 和 openSUSE (RPM) 以及 Ubuntu (DEB) 生成 ooRexx 安裝和文檔包。其他基於 x86 的操作系統也將根據 ooRexx 開發人員和用戶的需求得到支持。
本文將展示如何創建自己的軟件構建系統,使用 ooRexx 開發團隊的設置作為例子,並為 ooRexx、Apache 和 Linux 開發人員提供了技巧和指導。您可以在本文結束部分 下載服務器和客戶機腳本。該系統專門用於構建 ooRexx 軟件,但是其中的概念可以應用於通用的軟件構建系統。
本系統包括以下需求:
?需要一個 Web 接口來生成構建請求。
?需要一個 Web 接口來檢索構建結果。
?需要支持多客戶操作系統。
?客戶操作系統必須執行完全自動化的構建。
?在構建結束時,應當生成電子郵件並發送給請求用戶。
要滿足這些需求,開發團隊和我使用了一個四核的基於 Xeon 的服務器。該服務器包含 4GB 內存和 250GB 磁盤。我們選擇 Fedora 10 x86_64 發行版作為主操作系統,主要是考慮到該發行版使用的 KVM 具有良好的穩定性,並且是最新版本。選擇的硬件和軟件可能有所不同,但是主要的硬件標准是您的處理器應當具有硬件虛擬化特性 — 這是使用 KVM 的必要條件。
設置服務器
設置構建服務器的第一步是確定分區模式。我們決定將客戶操作系統的 Web 存儲和映像分離到單獨的分區中。我們為 Web 存儲分配 50GB 的硬盤,為客戶操作系統映像所在的 /var 分區分配 150GB 硬盤。其余硬盤空間被分配給 /home 分區和 /root 分區。
接下來,我們將使用 Fedora 10 x86_64 發行版安裝主操作系統。如果您要設置自己的系統,那麼執行下面的操作可以避免很多麻煩:
?在啟動安裝之前通過機器的 BIOS 啟用硬件虛擬化功能,這樣 Fedora 將發現 KVM 是可用的。
?執行軟件組件的定制安裝,這樣就可以選擇 Fedora 虛擬化選項。
安裝好服務器操作系統後,我們將它配置為可由客戶操作系統訪問。這包括對 Windows 客戶機啟用 Samba,以及對 Linux 客戶機啟用 NFS。這可以支持客戶機訪問構建結果分區,從而可以存儲構建文件以供用戶訪問。主要 Samba 共享和主要 NFS 導出針對所有客戶機都指向同一位置。
接下來,我們將配置 Apache Web 服務器以提供對構建請求系統(我將在 構建請求 中加以解釋)和構建結果庫的訪問。
需要確定的一項配置決策與客戶機的網絡選項有關。默認安裝被配置為對所有客戶機應用一個私有的內部網。C 類網和 DHCP 服務器一起提供,來為客戶機提供 IP 地址。另一個選擇是設置系統,以將其中一個網絡設備作為通向服務器外部網的網橋。這需要進行手動配置。您可以在 libvirt Wiki 中找到如何為服務器配置這一選項的示例。