使用 IBM Tivoli Provisioning Manager 部署組合虛擬裝置

CloudSpace發表於2008-07-22
部署實際的分散式軟體解決方案可能非常複雜,而且充滿挑戰。通常,每臺計算機中的軟體堆疊包含多個軟體層,部署分佈在計算機叢集上,讓軟體安裝和配置非常費時,而且可能會包含錯誤。通過將 IBM® Tivoli® Provisioning Manager 與虛擬裝置結合使用,可以極大地簡化此部署流程。本文將通過 IBM WebSphere® Application Server 示例說明如何建立並捕獲組合虛擬裝置、自定義、打包和在十分鐘內部署解決方案。

引言

實際的軟體解決方案涉及到的複雜性有時候可能令人生畏。每個伺服器都需要由多層軟體組成的軟體堆疊(作業系統、中介軟體和應用程式)。解決方案經常分佈在多臺計算機上,以獲得可伸縮性和可用性。對於所部署的每個解決方案,軟體堆疊使用傳統部署技術以獨立的方式直接在每個伺服器上安裝和配置。

正如在前面的 developerWorks 文章中討論的,通過使用預先安裝整個解決方案的虛擬映像,可以利用虛擬映像極大地簡化部署流程。此外,IBM Tivoli Provisioning Manager 提供了儲存虛擬映像模板庫、使用後設資料表示虛擬映像的配置資料和表示映像間的關係的能力。通過將前面文章中描述的虛擬映像技術和 Tivoli Provisioning Manager 中提供的功能相結合,十分鐘左右就能完成示例 IBM WebSphere Application Server 叢集和 IBM DB2® Universal Database 的部署。

本文將虛擬映像技術與 Tivoli Provisioning Manager 中提供的功能結合,以實現跨多臺計算機的軟體解決方案的完全自動化部署。Tivoli Provisioning Manager 圖形使用者介面(Graphical User Interface,GUI)用於選擇要部署的解決方案。Tivoli Open Process Automation Library (OPAL) 中的 IBM Automation Package for Virtual Software Appliance 內提供的示例 Tivoli Provisioning Manager 工作流可用於促進映像的部署和自定義。

詳細示例

此示例中的步驟的組織與通常分佈在組織內的角色對應。使用 Tivoli Provisioning Manager 部署組合虛擬裝置涉及四個主要步驟。前兩個步驟需要應用程式知識。後面兩個步驟涉及到 Tivoli Provisioning Manager,對任何組合虛擬裝置都是通用的。這些步驟如下(圖 1):

  1. 建立組合虛擬裝置映像。
    虛擬映像的建立與是否使用 Tivoli Provisioning Manager 進行部署無關。此步驟需要了解通用部署模式、確定配置和相互依賴關係資訊和實際建立映像。

  2. 定義後設資料。
    組合虛擬裝置的 Tivoli Provisioning Manager 後設資料在此步驟中建立。

  3. 準備 Tivoli Provisioning Manager 部署環境。
    在此步驟中,要將映像和後設資料放入 Tivoli Provisioning Manager,並設定主機環境。

  4. 部署並啟動組合虛擬裝置映像。
    此步驟使用 Tivoli Provisioning Manager 執行部署。Tivoli Provisioning Manager GUI 使用後設資料顯示可用組合虛擬裝置列表,詢問自定義資訊,然後工作流會將映像部署到目標環境。


圖 1. 使用 Tivoli Provisioning Manager 實現組合虛擬裝置部署的自動化
圖 1. 使用 Tivoli Provisioning Manager 實現組合虛擬裝置部署的自動化

在下面部分中將詳細描述這些步驟。

1. 建立組合虛擬裝置映像

儘管使用虛擬映像並不會消除安裝和配置軟體的複雜性,但可以消除複雜性上游,從而減少所執行的完全安裝和配置的次數,並儘可能減少接觸完全安裝和配置流程的人員數量。

在此步驟中,將由熟練的個人安裝和配置組合虛擬映像。此步驟只進行一次,從而允許映像的下游使用者在不用安裝或配置軟體的情況下使用映像。由於構建可重用虛擬映像模板需要一定的投資,因此第一個任務是確定通用部署模式。

  1. 確定通用使用模式

    幾乎可以為任何物理部署建立虛擬映像,但最為有價值的是代表了重複多次的部署的虛擬映像(用於不同的組織或不同的應用程式)。此外,初始安裝和配置越複雜,虛擬映像所具有的價值越大。

    例如,如果擁有很多 IBM WebSphere Application Server 或 IBM WebSphere Portal 應用程式部署(特別是叢集部署),則建立虛擬映像可以極大地加速此流程。圖 2 顯示了一個通用 WebSphere Application Server 叢集拓撲,該拓撲的業務邏輯層包括部署管理器和應用伺服器託管節點,而且具有使用 DB2 的資料持久層。此拓撲可以分佈在多臺計算機上,以獲得可伸縮性和可用性。

    一旦確定了要實現的配置模式,下一步就要建立虛擬映像。



    圖 2. 示例 WebSphere Application Server to DB2 部署
    圖 2. 示例 WebSphere Application Server to DB2 部署

  2. 建立模板映像

    在建立組合虛擬裝置時,需要將解決方案的配置和相互依賴關係捕獲到一組虛擬機器映像中。可以通過直接安裝到虛擬映像中,或使用 physical to virtual (P2V) 工具建立映像。此示例中的黃金映像是手動安裝和配置的,可確保全面瞭解映像內容。

    完成了映像的初始安裝和配置後,下一步是分析映像,並將其轉換為可重用映像模板,以便用於部署多個應用程式環境。此步驟是流程中最困難的部分,需要對每個部署所需的獨特配置價值進行全面評估。其目標是儘可能多地完成預先安裝和預先配置工作,而同時要儘可能減少映像的數量。

  3. 新增啟用邏輯

    對於所有映像,最可能更改的內容包括網路資訊(IP 地址、主機名等)、使用者資訊(使用者 ID 和密碼)和遠端連線性(如資料庫和目錄連線)。Automating deployment and activation of virtual images 一文中提供了用於更新 Linux 的 IP 地址和使用者資訊的示例指令碼,並提供了用於插入特定於軟體的配置更改的框架。

    除了基本網路、使用者和遠端連線性資料外,還將需要決定在映像中應用的預先配置量以及在部署時要進行的工作。例如,Using virtual images to deploy WebSphere Application Server 一文提供了僅僅建立一個 WebSphere Application Server 虛擬映像的技術。部署管理器、獨立節點或託管節點的映像自定義在首次啟用映像時根據部署時引數完成。如圖 2 中所示,此技術支援使用一個 WebSphere 模板映像進行部署管理器和多個應用程式節點的部署工作。

  4. 標識底層基礎設施需求

    除了預先安裝和預先配置虛擬映像外,部署虛擬環境還提供了規定主機平臺特定需求的機會。例如,除了虛擬映像模板外,還應該隨其提供自有的需求規範,如每個映像實現最優效能所需的虛擬記憶體和虛擬 CPU。

    此資訊有望成為 Open Virtual Format (OVF) 規範的一部分。由於尚沒有標準可用,因此接下來的部分將說明如何在 Tivoli Provisioning Manager DataCenter Model (DCM) 內表示虛擬伺服器模板中的需求。

2. 定義後設資料

一旦建立了虛擬映像,必須執行一系列特定於 Tivoli Provisioning Manager 的步驟。此工作的第一部分是建立後設資料,這需要具有組合虛擬裝置的相關知識。必須執行此步驟,以便利用 Tivoli Provisioning Manager 的 DCM 和工作流引擎來部署虛擬裝置。接下來讓我們進一步瞭解一下所需的後設資料。(可下載此示例的完整示例後設資料。)

  1. 表示組合虛擬裝置

    總體組合虛擬裝置描述為分散式應用程式。分散式應用程式可以包含多個模組;在本例中,其中包含多個虛擬映像。如清單 1 中所示,分散式應用程式在 Tivoli Provisioning Manager 中表示為軟體應用程式模組。包含在分散式應用程式中的每個虛擬機器都使用應用程式模組條目元素指定。工作流也在此指定(也顯示在清單 1 中)。



    清單 1. 軟體應用程式模組 DCM 示例
                            
    
    		<!-- property definitions need to be added here. --&gt
    
    
    		<!-- software-resource-template definition need to be added here. --&gt
        
    
    

  2. 表示各個映像

    每個組合虛擬裝置可以包含多個虛擬映像。例如,前面圖 2 中所示的“WAS 伺服器和 DB 組合裝置”(WAS Server and DB Composite Appliance) 包括 WebSphere Application Server 虛擬映像和 DB2 虛擬映像。每個虛擬映像都使用軟體堆疊物件指定。清單 2 顯示了“DB2 Server Appliance”映像條目。軟體堆疊物件包含資訊的多個屬性元素,如虛擬機器模板在檔案儲存庫中的儲存位置等。



    清單 2. 軟體堆疊 DCM 示例
                            
    
    	    	<!-- property definitions need to be added here. --&gt
        		<!-- software-resource-template definition need to be added here. 
        		--&gt
        		<!-- software-stack-entry definitions need to be added here. --&gt
        		<!-- installable-package definition need to be added here. --&gt
    

  3. 表示軟體

    每個虛擬映像內的特定軟體使用軟體模組名稱後設資料加以表示。如清單 3 中所示,此條目包括底層基礎設施需求和一組要配置的引數。



    清單 3. 軟體模組 DCM 示例
                            
    
    		<!-- property definitions need to be added here. --&gt
    		<!-- software-resource-template definition need to be added here. --&gt
    

  4. 表示資源需求和引數

    每個虛擬機器的資源需求通過虛擬伺服器模板指定。如清單 4 中所示,虛擬伺服器模板可以包括多個資源需求元素,如 CPU 配額、記憶體和硬碟空間。



    清單 4. 虛擬伺服器模板 DCM 示例
                            
    
       
         
         
       
       

    每個軟體模組可以具有一個軟體資源模板,其中可能包括多個模板引數元素,用於指定使用者需要為配置指定的引數。例如,如清單 5 中所示,“WAS 6.1 Cell”模板具有管理員使用者 ID 和密碼的配置引數。此後設資料允許 Tivoli Provisioning Manager 在 GUI 中收集這些引數。此工作流設計用於收集值並將其傳遞給映像,以供在啟用期間使用。一個引數可以使用 template-param-operand 引用其他引數的值,從而支援表述軟體模組間的相互依賴關係。



    清單 5. 模板引數 DCM 示例
                            
    
    	
               		
    	
     	
    			
    	
    	

一旦建立了後設資料檔案,就要按照接下來部分中所述將後設資料匯入 Tivoli Provisioning Manager 並設定工作流。

3. 準備 Tivoli Provisioning Manager 部署環境

建立了組合虛擬設定映像和後設資料之後,必須準備 Tivoli Provisioning Manager 環境。這包括將映像複製到儲存庫中、匯入後設資料、下載工作流和完成主機平臺的任何其他設定工作。

  1. 將虛擬映像模板複製到檔案儲存庫中

    必須將虛擬映像模板放置在 Tivoli Provisioning Manager 檔案儲存庫中才能進行虛擬解決方案部署。這些檔案儲存庫設定用於儲存和檢索大型檔案。後設資料使用 Image.Repository 變數指向正確的檔案儲存庫,使用 Image.Location 變數建立映像在儲存庫中的具體位置。例如,清單 6 顯示了其中一個虛擬映像模板的後設資料描述部分的內容。如其中所示,映像儲存在相對於檔案儲存庫根目錄的 images/was61/WAS/was 中。



    清單 6. 映像儲存庫 DCM 示例
                            
    
    

  2. 將後設資料匯入 Tivoli Provisioning Manager

    除了複製映像模板外,還需要將映像的後設資料匯入 DCM。不過,這僅僅涉及到執行程式:

    $TIO_HOME/tools/xmlimport.sh

    使用檔案的 URN 作為引數(檔案的 URN 的開始部分為: file://)。

  3. 從 OPAL 設定工作流

    一旦將描述虛擬裝置的後設資料匯入 Tivoli Provisioning Manager 的 DCM 並將虛擬映像模板複製到正確的檔案儲存庫中,部署虛擬裝置就變成了呼叫工作流的簡單任務。OPAL 上提供了一組用於部署虛擬裝置的工作流。按照包中所述下載和安裝這些工作流。

    這些工作流對組合虛擬裝置的部署進行協調,分叉出一個程式來複制每個虛擬映像模板並對其進行自定義(基於後設資料中編碼的使用者輸入和依賴關係資訊)。編寫了工作流示例來部署按照本文中所描述的方式表示且應該不需要更改的虛擬機器。不過,此工作流只是示例,在您特定的目標環境中使用前應該進行測試。

  4. 設定主機平臺

    需要使用正確的管理程式和可用資源將映像部署到主機平臺。如果您的 Tivoli Provisioning Manager 環境尚未針對所選主機平臺進行設定,則將需要新增這些平臺:

    1. 從 Tivoli Provisioning Manager 皮膚中選擇 Add a Host Platform. Server,然後輸入主機平臺的名稱(例如,hostplatform1.ibm.com)。
    2. 新增網路介面和 SAP 憑據。
    3. 新增管理程式軟體和相關資源(例如,VMWare ESX Server、CPU、硬碟、記憶體等等)。

    (有關新增主機平臺的詳細資訊,請參見 Tivoli Provisioning Manager 文件。)

    此外,工作流使用 SSH 在主機平臺上儲存虛擬映像。對於每個主機平臺,您將需要確定已設定了 SSH (Open Secure Shell),因此主機平臺的使用者(例如 root@hostplatform1)可以採用 ssh 登入到 Tivoli Provisioning Manager 伺服器計算機的根和 tioadmin(例如,root@tpmserver1 和 tioadmin@tpmserver1)。另外,請確保 Tivoli Provisioning Manager 伺服器計算機可以採用 ssh 登入到主機平臺的使用者。

4. 部署並啟動組合虛擬裝置映像

一旦在 Tivoli Provisioning Manager 中建立了虛擬映像模板,部署組合虛擬裝置就變得很簡單了。由於組合虛擬裝置表示為分散式應用程式,因此您要與 Tivoli Provisioning Manager Distributed Applications 皮膚互動,以選擇組合虛擬裝置(圖 3)。


圖 3. 組合虛擬裝置選擇
圖 3. 組合虛擬裝置選擇
  1. 複查和自定義

    選擇了組合虛擬裝置後,將顯示一個皮膚,其中列出了每個虛擬映像模板(圖 4)。對於 WebSphere Application Server 和 DB2 組合裝置,將顯示部署管理器、WebSphere Application Server 和 DB2 映像。內部實現實際上將部署管理器和應用伺服器對映到相同的映像模板檔案。



    圖 4. WebSphere Application Server 和 DB2 組合裝置
    圖 4. WebSphere Application Server 和 DB2 組合裝置

    接下來將基於後設資料構建 Distributed Application Deployment 的自定義皮膚。如圖 5 中所示,將顯示所有自定義引數,如主機名、域名、節點名等。如果未指定選項,則將使用後設資料中提供的預設值。



    圖 5. Distributed Application Deployment 自定義螢幕
    圖 5. Distributed Application Deployment 自定義螢幕

    輸入了自定義引數後,部署要麼計劃稍後執行,要麼立即啟動。不需要任何其他終端使用者互動。

  2. 等待 Tivoli Provisioning Manager 協調進行分散式部署

    Tivoli Provisioning Manager 工作流將以透明的方式部署虛擬裝置。工作流以並行方式將每個虛擬機器映像複製到對應目標計算機中。工作流的流程包括:

    • 檢查和推斷每個虛擬機器在管理程式可用的資源總量中所需的資源量(如 CPU 配額、記憶體和磁碟空間)。
    • 將各個虛擬映像模板複製到對應的管理程式。
    • 生成虛擬映像的虛擬機器配置檔案。
    • 向管理程式註冊虛擬機器。
    • 向 Tivoli Provisioning Manager 註冊每個軟體裝置中包含的軟體應用程式。

    工作流還會收集自定義引數,並在啟用檔案中將其提供給虛擬映像。對虛擬映像進行了自定義之後,將提供“啟動按鈕”,用於允許所協調的啟動工作流啟動解決方案。

  3. 使用所部署的環境

    一旦部署完成,Tivoli Provisioning Manager 的 DCM 會將所部署的虛擬裝置的資訊作為分散式部署加以捕獲。會捕獲所有資訊,包括軟體的部署位置以及配置引數。因此,Tivoli Provisioning Manager 中實現的用於軟體管理的實用工具和機制都可以用於管理已部署的虛擬裝置,就像管理 Tivoli Provisioning Manager 中的其他軟體一樣。

省時的簡化部署

我們曾在自己的實驗室中執行過 WebSphere Application Server 和 DB2 組合裝置的示例部署。我們部署了一個 WebSphere Application Server Network Deployment 叢集,其中包括一個部署管理器、九個應用伺服器節點、一個 DB2 節點和 Trade6 應用程式。部署總耗時不超過十分鐘,這是相對於傳統的嚴格順序安裝方法的一大改進,在傳統方法中可能需要數小時才能完成拓撲中每臺計算機的安裝。

在我們使用 Tivoli Provisioning Manager 的虛擬裝置部署中,配置工作僅僅涉及選擇主機平臺併為每個映像安裝指定引數(少於 10 個)。另外,我們通過捕獲後設資料中的引數集中的相互依賴關係,而且僅僅要求輸入一次這些引數,進一步減少了引數的數量。Tivoli Provisioning Manager 工作流將引數傳遞給多個映像。工作流支援預先捕獲的映像的並行複製和配置,相對於在每臺計算機上逐層安裝和配置軟體層來構造物理計算機而言,此方法極大地減少了部署時間。

結束語

本文描述了用於部署和管理實際軟體解決方案的極為簡化的方法。在此方法中,虛擬機器映像將捕獲分散式軟體解決方案中的相互依賴關係,並提供描述如何配置虛擬機器映像的對應後設資料。可由一組 Tivoli Provisioning Manager 工作流基於後設資料自動部署解決方案,從而極大地減少了部署複雜軟體解決方案所需的人工時間。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/14789789/viewspace-406850/,如需轉載,請註明出處,否則將追究法律責任。

相關文章