使用RAFW管理您的 WebSphere 產品安裝、配置和應用程式部署

CloudSpace發表於2010-09-29
Tim Robertson, 軟體工程師, IBM
Dr. Mahesh Rathi, WebSphere Application Server SWAT 團隊, IBM

簡介: IBM® Rational® Automation Framework for WebSphere® 是用於管理 IBM WebSphere 產品安裝、配置和應用程式部署的產品。它提供沿開發生命週期各階段輕鬆移動資源配置和應用程式的能力,從而幫助您控制您的現有 WebSphere 產品環境。 本文來自於 IBM WebSphere Developer Technical Journal 中文版

在每一篇專欄文章中,權威支援均會對可用於 WebSphere ® 產品的資源、工具以及其他 IBM® Technical Support 元素進行討論,討論主題還將包括可進一步增強 IBM 支援體驗的新技術和新概念。

最新快報

按照慣例,我們將首先介紹整個 WebSphere 社群都會感興趣的新專案:

  • 檢視 IBM Conferences & Events 頁面,獲取即將舉行的會議列表。在 7 月 10 日之前註冊 IBM European WebSphere Technical Conference享受 100 歐元的提前註冊會議費用折扣。本屆會議為期四天半,將於 2010 年 10 月 11-15 日在德國杜塞爾多夫市舉行。本屆會議將以前年度的 WebSphere 會議和 Transaction & Messaging Conferences 無縫合併為一個統一日程,只需一次付款,即可參加兩個盛大會議。今年的會議將於 Portal Excellence Conference 在同一城市舉行,後者將就門戶業務解決方案和技術策略進行專題研討......
  • 上月,IBM Support Portal 榮獲 Association of Support Professionals 評選的 2010 年度十佳支援網站 稱號。您嘗試訪問過 IBM Support Portal 嗎?IBM Support Portal 目前涵蓋所有 IBM 軟體產品,取代了所有軟體產品的支援頁面。請參閱權威支援的 新 IBM Support Portal 簡介 瞭解詳細資訊。
  • 在 developerWorks 上的 IBM Electronic Support Community 部落格 學習、共享並聯網。
  • websphereusergroup.org 檢視新的 Global WebSphere Community。定製您的個人 GWC 頁面上的內容,連線與您志趣相投的其他 “WebSphere 人”。
  • WebSphere Technical Exchange 將在 7 月和 8 月安排一些令人興奮的網路廣播。請檢視此站點了解詳細資訊,也可以通過 Facebook 成為一名粉絲!

繼續關注 與支援相關的各個網站 以及本專欄,瞭解我們所遇到的其他工具的相關新聞。

現在,讓我們言歸正傳......

本文適用 IBM Rational Automation Framework for WebSphere V7.1.1.4。本文描述的部分特性在以前的版本中不可用。

IBM Rational Automation Framework for WebSphere(以下簡稱為 Rational Automation Framework)是用於管理 IBM WebSphere 產品的安裝、配置和應用程式部署的一個解決方案。Rational Automation Framework 通過資料驅動來提供準確性和一致性,以及以並行執行形式提供的高速度 — 超出了通過自動化獲取的效能收益。

此框架自帶 500 多個動作,它們是可用於為您的 WebSphere 產品構建自動化解決方案的粒度構建塊。Rational Automation Framework 在一個可靠的企業級自動化平臺上構建,採用 IBM Rational Build Forge 形式,目前支援 WebSphere Application Server V6.0、6.1 和 7.0,WebSphere Portal V6.0 和 6.1,以及 IBM HTTP Server V6.0、6.1 和 7.0。另外,Rational Automation Framework 團隊已為 IBM WebSphere Virtual Enterprise 和 IBM WebSphere Business Process Management 套件提供了孵化器程式碼,這個套件包括 IBM WebSphere Process Server、IBM WebSphere Enterprise Service Bus、IBM WebSphere Business Monitor 和 IBM WebSphere Service Registry and Repository.

Rational Automation Framework for WebSphere and Rational Build Forge 允許您管理您的 IBM WebSphere 產品單元。Rational Automation Framework 提供兩種選擇以將一個單元置於此框架的管理之下:

  • 第一個選擇是使用新的單元嚮導來定義一個新 WebSphere 產品單元的拓撲。通過新的單元嚮導執行後,一個自動化計劃將被建立來安裝 WebSphere 產品位元,建立和聯合配置檔案,安裝 IBM HTTP Server,安裝外掛,等等。
  • 另一個選擇是將一個現有 WebSphere 產品單元匯入 Rational Automation Framework。使用現有單元嚮導,您只需指定一個關於該現有單元的最小資訊集合,比如一個節點的主機名,作業系統和 WebSphere 產品使用者的憑證以及一個配置檔案位置。Rational Automation Framework 將發現該單元的拓撲並在 Rational Automation Framework 中構建一個表示,以及一個自動化計劃來從該單元匯入配置資料(見圖 1)。


圖 1. Rational Automation Framework 現有單元嚮導的示例執行
圖 1. Rational Automation         Framework 現有單元嚮導的示例執行

將單元的拓撲匯入 Rational Automation Framework 後,將建立一個自動化計劃來在所有應用程式範圍內執行動作 was_common_configure_all。這將匯入現有單元的幾乎所有配置。這裡描述的示例環境是一個 WebSphere Application Server Network Deployment 環境,因此該自動化計劃將在單元、叢集和伺服器範圍內執行這個 import all 動作(見圖 2)。


圖 2. 匯入單元的配置的自動化計劃
圖 2. 匯入單元的配置的自動化計劃

Rational Automation Framework 支援幾種模式的操作。這些模式根據動作的不同而不同,但許多動作都支援 Import 模式。由於 Rational Automation Framework 動作設計用於處理配置的一個特定部分,因此您可以使用一個動作來準確確定需要捕獲的內容。

例如,您可以在單元範圍內以 Import 模式執行 was_common_configure_jdbc_providers 動作,以只將在單元範圍內定義的資料提供者匯入 Rational Automation Framework。然後,資料以一種規範化的、版本不可知的 XML 格式儲存在 Rational Automation Framework 伺服器上。然後可以對這些文件進行版本控制。與應用程式伺服器(其中許多資源型別儲存在單個 XML 檔案中)不同,Rational Automation Framework 將相關資源儲存在其自己的 XML 檔案中。例如,資料資源、JDBC 提供者和 was40 資料來源都儲存在 jdbc.xml 檔案中。另外,其中執行一個對應的 Import 模式命令的每個範圍內都將建立一個 jdbc.xml 檔案。

假設您定義了一個 TEST_PROMOTE 環境,則可以執行以下命令:

rafw_home\bin\rafw.bat -env TEST_PROMOTE -cell qa -cluster cluster1 -import was_common_configure_jdbc_providers

這個命令完成後,檔案 rafw_home/user/environments/TEST_PROMOTE/cells/qa/clusters/cluster1/jdbc.xml 將包含在 cluster1 範圍內定義的所有 JDBC 提供者的定義(見清單 1)。


清單 1. 在一個定義了一個 JDBC 提供者的範圍內執行的 Import 模式的示例輸出

				





    
    


在該例中,僅有一個 JDBC 提供者位於 cluster1 範圍內。

在 Rational Automation Framework 中捕獲配置資訊後,現在可以以 Execute 模式使用相同的動作來在 Rational Automation Framework 中回放配置資料。Execute 模式將首先刪除指定型別的所有配置元素,然後根據 Rational Automation Framework 配置知識庫中儲存的資訊重新建立它們。注意,正在從 WebSphere Application Server 配置移除的每個現有資料來源正在基於 Rational Automation Framework 配置知識庫中的模型被建立。

Rational Automation Framework 中的 Augment 模式允許您將一些配置元素新增到一個 WebSphere Application Server 單元。Augment 模式是真正附加的,不會更新現有的配置元素。此模式將執行一個檢查以確定是否存在一個指定配置元素;如果存在,則顯示一條警告訊息並跳過該元素。將被擴大的資源的定義在一個名為 _augment.xml 的檔案中指定;例如,JDBC 資源將使用 jdbc_augment.xml。圖 3 展示現有資源的警告訊息,以及如何將新資源新增到 WebSphere Application Server 配置。


圖 3. 標示將被跳過的現有元素和已新增的新資源的 Augment 模式動作
圖 3. 標示將被跳過的現有元素和已新增的新資源的 Augment 模式動作

“配置漂移” 指的是當隨時間變化在一個 WebSphere 產品中引入差異時可能發生的一種情況。儘管大多數使用者努力嘗試保持階段化(staging)和生產環境同步,但一個更改的引入仍然不可避免,而且這種更改通常不會被注意到。這樣的祕密更改的一個常見來源是企圖除錯生產中的問題。當一個關鍵應用程式在 2:00 AM 關閉時,企圖使該應用程式返回線上狀態而進行的所有更改有可能不會被全部記錄 — 或者恢復,如果不必要的話。這些應用程式中的更改在短期內似乎沒有危害,但一旦您部署一個新應用程式,它就開始在您的生產和階段化環境的同步中表現異常。或者,您的東部和西部沿海資料中心之間可能會出現一個差異。在 “激戰階段” 進行的更改一開始好像沒有危害,但當它開始導致問題時,那麼要找出問題所在彷彿是大海撈針。

Rational Automation Framework 中的 Compare 模式將比較 Rational Automation Framework 的知識庫中儲存的配置和活動單元中的對應配置,並標記任何差異。使用 Rational Build Forge 自動化平臺,您可以將這些比較安排在非高峰時間並定期執行它們。更改發現得越早,就越容易就應該接受還是恢復該更改做出明智的決定,而不是絞盡腦汁回憶 6 個月前為何要進行更改。

圖 4 展示了一個比較結果,其中 Rational Automation Framework 配置包含一個 WebSphere 生產單元中不存在的資料來源資源。


圖 4. 標記活動單元中的一個缺失物件的比較模式
圖 4. 標記活動單元中的一個缺失物件的比較模式

圖 5 展示了一個比較示例,該比較標記了對一個資料來源的連線池屬性上的最大連線設定的更改。


圖 5. 對一個資料來源上的一個屬性的更改
圖 5. 對一個資料來源上的一個屬性的更改

一旦 Rational Automation Framework 的 Compare 模式中標記出一個差異,您可以選擇保持更改並使用新值更新 Rational Automation Framework 知識庫。操作方法是以 Import 模式執行對應的 Rational Automation Framework 動作。如果您決定不保留更改,您可以通過以 Execute 模式執行對應的動作重新應用 Rational Automation Framework 中儲存的配置。這將根據 Rational Automation Framework 中儲存的值重新建立配置。

Rational Automation Framework 使用一個屬性檔案,該檔案描述企業應用程式部署選項,並表明將部署的 .ear 檔案的位置。動作 was_common_deploy_install_app -a 用於部署 EAR 檔案。這個應用程式屬性檔案可以採用兩種格式:

  • 第一種格式是包含部署的所有 wsadmin 選項的單個 OPTIONS 鍵。這個選項字串可以使用 WebSphere Application Server 的大多數版本快速建立,只需使用管理控制檯來部署應用程式並選擇 View Administration scripting command for last action 連結。
  • 建立這些屬性檔案的另一個選擇是在檔案中為 wsadmi 中的每個選項建立自己的鍵。這種方法允許管理員為檔案建立一個可以傳遞給開發人員的模板版本。這樣,開發人員只需關注一小部分選項。清單 2 展示了來自這樣一個檔案的片段。在這個示例中,開發人員將確定是否應該使用 preCompileJSPs 選項,但管理員會決定將這些模組對映到哪些伺服器。Rational Automation Framework 為此框架支援的每個 WebSphere Application Server 版本提供了一些示例檔案。


清單 2

				
# Precompile JavaServer Pages files
options.preCompileJSPs=false

# Distribute application
options.distributeApp=true

# The MapModulesToServers option specifies the application server where
# you want to install modules that are contained in your application.
options.multi.one.MapModulesToServers=["Default Application" default_app.war,
WEB-INF/web.xml WebSphere:cell=mycell,node=mynode,server=server1]
options.multi.two.MapModulesToServers=["Default Application" default_app.war,
WEB-INF/web.xml WebSphere:cell=mycell,node=mynode,server=server2
options.multi.three.MapModulesToServers=["Examples Application" examples.war,
WEB-INF/web.xml WebSphere:cell=mycell,node=mynode,server=server2+WebSphere:cell=mycell,
node=yournode,server=server1]

當一個應用程式及其配置更改沿開發生命週期移動時,必須非常小心地將相關資源從一個階段移動到另一個階段;例如,將一個新應用程式需要的資料來源從共享測試環境移動到階段化環境中。儘管理想情況是保持幾乎所有資料(比如資料庫和 JNDI 名稱)不變,但也有其他一些值應該從一個環境更改到另一個環境。您不會希望您的資料來源指向您的生產資料庫伺服器。

Rational Automation Framework 的 Promote 模式旨在應對這種特定挑戰。Promote 模式充當一個拉動(pull)操作,用於將配置從一個 Rational Automation Framework 環境拉到另一個環境。具體而言,這意味著您將把配置從共享測試環境拉到階段化環境。但是,雙向提升受到支援。當您在您的生產環境中發現一個問題並希望將那個配置提升到您的測試環境以測試和除錯該問題時,這種支援就能派上用場。另外,您還能在提升期間更改範圍。例如,如果一個開發人員正在一個獨立的單一伺服器環境中工作並在伺服器範圍內建立它的資料來源,那麼那些資料來源可以在向 Network Deployment 叢集共享測試環境的提升過程中移動到叢集範圍。為了處理已知的環境差異,Rational Automation Framework 通過一個過濾器傳遞已提升的資料。這種過濾器理解兩種表示式型別:

  • 第一種是一個簡單的基於文字的替換。為支援基於文字的替換,已提升的來往兩個範圍都需要一個 promote.properties 檔案。這些檔案必須包含相同的鍵。在上述獨立伺服器到 Network Deployment 叢集的提升示例中,每個檔案中的鍵是:
    • 伺服器範圍內的獨立環境:myKey=ABC
    • 叢集範圍內的 Network Deployment 環境:myKey=XYZ
    當 Promote 模式動作執行時,它將找出所有匹配鍵並將所有 “ABC” 例項更改為 “XYZ”。這種方法很強大,但不支援細粒度控制。
  • 另一種過濾器型別基於 Xpath 表示式。與關聯式資料庫的 SQL 非常相似,Xpath 支援導航到一個 XML 文件中的各個地方。對於 Xpath 鍵,您只需在目標環境的 promote.properties 檔案中指定鍵和值。有兩個鍵:一個是包含 Xpath 表示式的字尾為 .xpath 的鍵,另一個是表示新值的字尾為 .value 的鍵。在清單 3 中的示例中,Xpath 表示式表明,對於所有 JavaProcessDef 元素,獲取 JavaVirtualMachine 元素的 maximumHeapSize 屬性。定位該屬性後,將值設定為 512。用 WebSphere Application Server 術語來講,您在將您的每個伺服器 JVM 的 MaximumHeapSize 強制設定為 512MB。開發人員可能已經在他的本地桌面上用 2GB 最大堆大小進行了測試,但同樣的配置在一個託管大量 JVMs 的共享伺服器上不現實。

    清單 3
    						
    MyMaxHeapSetting.xpath=//JavaProcessDef/JavaVirtualMachine/@maximumHeapSize
    MyMaxHeapSetting.value=512

    另一個示例更改一個 widgetDB Data Source 以指向生產資料庫伺服器並使用埠 5001。



    清單 4
    						
    dbname.xpath=//DataSource[@name='widgetDB']/J2EEResourcePropertySet/
    	J2EEResourceProperty[@name='serverName']/@value
    dbname.value=production.db.server.com
    dbport.xpath=//DataSource[@name='widgetDB']/J2EEResourcePropertySet/
    	J2EEResourceProperty[@name='portNumber']/@value
    dbport.value=50001

IBM Rational Automation Framework for WebSphere 是一個經過實踐驗證的產品,用於管理 IBM WebSphere 產品安裝、配置和應用程式部署。利用 IBM Rational Build Forge 中的核心企業自動化平臺,您可以使用 Rational Automation Framework 來建立一個適合您的 WebSphere 產品環境的可重複、準確和快速的自動化基礎設施。藉助 500 多個動作和 30 多個自動化庫(和計數),Rational Automation Framework 為管理您的開箱即用 WebSphere Application Server 環境提供了大量可能性。底層自動化平臺和 Rational Automation Framework 本身為那些已在 WebSphere Application Server 指令碼編寫方面投入大量精力的開發人員提供了大量可擴充套件性。

原文連結:http://www.ibm.com/developerworks/cn/websphere/techjournal/1007_supauth/1007_supauth.html

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

相關文章