addNode 指令
addNode 指令會將應用程式伺服器安裝架構納入 Cell 中。
根據您納入 Cell 的新節點大小和位置而定,這個指令可能得花幾分鐘的時間來完成。
您必須具有 管理者專用權 ,才能使用 addNode 函數。
您的使用者設定檔必須有 *ALLOBJ 權限,或必須有 addNode Qshell Script 的讀取和執行權限。
除非您指定 -noagent 選項,否則在 addNode 指令中,會自動啟動節點代理程式伺服器。 如果您重新啟動管理應用程式伺服器節點的系統,且沒有設定節點代理程式來扮演作業系統常駐程式的角色,則必須先發出 startNode 指令來啟動節點代理程式,再啟動任何應用程式伺服器。
當您執行 addNode 指令時,指令會將要納入 Cell 的執行中應用程式伺服器停止。 您可以選擇性地在執行 addNode 指令之前,停止應用程式伺服器。
當您執行 addNode 指令時,會移除在將節點新增至 Cell 之前與伺服器相關聯的現有 Windows 服務。 如果您後來從 Cell 中移除節點,不會自動重建基本伺服器的 Windows 服務。 請參閱 WASService 指令的相關資訊,以建立產品的 Windows 服務。
- 在安裝架構的所有設定檔中,產生給節點代理程式的埠是唯一的。 為了進行開發,您可以在相同安裝架構中建立多個設定檔,再將它們新增到一或多個 Cell 中,不需要擔心埠衝突的問題。
- 如果您要指定節點代理程式所用的埠,請利用 -portprops 選項所傳遞的檔案名稱,將這些埠指定在一個檔案中。 檔案格式是
key=value配對,每行一個配對,索引鍵與 serverindex.xml 檔中的埠名稱相同。 - 如果您想要使用若干連續的埠,請考慮 -startingport 選項。 這表示與其他設定檔的埠衝突不會受到偵測。
請參閱使用指令行工具的相關主題,以決定要從設定檔或應用程式伺服器根目錄來執行指令。
語法
請參閱指令語法:
addNode dmgr_host [dmgr_port] [-conntype type] [-includeapps] [-includebuses]
[-startingport portnumber] [-portprops qualified_filename]
[-nodeagentshortname name] [-nodegroupname name] [-registerservice]
[-serviceusername name] [-servicepassword password] [-coregroupname name]
[-noagent] [-statusport 1231] [-quiet] [-nowait] [-logfile filename]
[-replacelog] [-trace] [-username uid] [-password pwd]
[-localusername localuid] [-localpassword localpwd] [-profileName profilename]
[-excludesecuritydomains true | false] [-asExistingNode] [-help]addNode dmgr_host [dmgr_port] [-conntype type] [-includeapps] [-includebuses name]
[-startingport portnumber] [-portprops qualified_filename]
[-nodeagentshortname name] [-nodegroupname name] [-registerservice]
[-serviceusername name] [-servicepassword password] [-coregroupname name]
[-noagent] [-statusport port] [-quiet] [-nowait] [-logfile filename]
[-replacelog] [-trace] [-username uid] [-password pwd]
[-localusername localuid] [-localpassword localpwd] [-profileName profilename]
[-excludesecuritydomains true | false] [-asExistingNode] [-help]dmgr_host 是必要引數。 所有其他引數都是選用的。 部署管理程式之預設 SOAP 埠的預設埠號是 8879。 SOAP 是指令的預設 Java™ 管理延伸 (JMX) 連接器類型。 如果您有多個產品安裝架構或多個設定檔,SOAP 埠有可能不是 8879。 請檢查部署管理程式的 SystemOut.log 檔,以瞭解使用中的現行埠。
參數
addNode 指令的可用選項如下:
- -conntype <type>
- 指定用來連接部署管理程式的 JMX 連接器類型。 SOAP 是指令的預設「Java 管理延伸 (JMX)」連接器類型。 其他有效的類型還有 JSR160RMI 或「遠端方法呼叫 (RMI)」。
- -includeapps
- 依預設,addNode 指令不會從新節點上的獨立式伺服器,將應用程式傳遞到 Cell 中。 一般而言,請使用部署管理程式來安裝應用程式。 -includeapps 選項會指示 addNode 指令從節點帶入對應用程式執行的結果。 如果應用程式已在 Cell 中,就會顯示警告訊息,且不會將應用程式安裝到 Cell 中。
應用程式會對映至您利用 addNode 指令所聯合的伺服器。 addNode 指令作業完成之後,當啟動伺服器時,應用程式便會在這部伺服器上執行。 因為這些應用程式是 Network Deployment Cell 的一部分,所以您可以使用管理主控台將它們對映至 Cell 中的其他伺服器和叢集。 如需相關資訊,請閱讀將模組對映至伺服器的相關資訊。
如果您要聯合的節點包括產品提供的應用程式,如「範例」,請勿使用 -includeapps 選項。 如果您這麼做,第二個要聯合且含有這些應用程式的節點會遭到拒絕,因為應用程式已在 Cell 中,而合併應用程式不受支援。
如果您在含有大量應用程式的節點上使用 -includeapps 選項,就必須延長管理連接器的逾時,以便將在 addNode 作業期間傳送所有應用程式到部署管理程式,以及將這些應用程式從遠端安裝到 Cell 中所需要的其他時間,都考量在內。 除非節點上只有少數幾個唯一的應用程式,否則,不建議採用 -includeapps 選項。
依預設,在應用程式安裝期間,會在 app_server_root/installedApps/cellName 目錄中解壓縮應用程式二進位檔。 在 addNode 指令之後,您新增的節點所配置的 Cell 名稱,會從基本 Cell 名稱改成部署管理程式 Cell 名稱。 應用程式二進位檔位於執行 addNode 指令之前所在的位置,例如,app_server_root/installedApps/old_cellName。
依預設,在應用程式安裝期間,會在 profile_root/installedApps/cellName 目錄中解壓縮應用程式二進位檔。 在 addNode 指令之後,您新增的節點所配置的 Cell 名稱,會從基本 Cell 名稱改成部署管理程式 Cell 名稱。 應用程式二進位檔位於執行 addNode 指令之前所在的位置,例如,profile_root/installedApps/old_cellName。
在下列範例中,是明確指定二進位檔的位置來安裝應用程式:
${CELL} 變數指定現行 Cell 名稱。 之後,在執行 addNode 指令時,二進位檔會移至 profile_root/installedApps/currentCellName 目錄。${APP_INSTALL_ROOT}/${CELL}利用 addNode 指令將節點聯合到 Cell 中,並不會合併任何 Cell 層次的配置,其中包括虛擬主機資訊。 如果新 Cell 的虛擬主機和別名與產品不符,您就無法存取在伺服器上執行的應用程式。 您必須利用在部署管理程式中執行的管理主控台,手動將所有虛擬主機和主機別名加入新 Cell 中。
避免麻煩: 當指定 -includeapps 參數時,如果 Java 虛擬機器 (JVM) 資料堆大小太小,可能會發生 OutOfMemoryError 。 當發生這個錯誤時,系統會發出下列錯誤訊息:
ADMU0111E: 程式因發生 java.lang.OutOfMemoryError 錯誤而結束
當處理大型應用程式或 Base Application Server 中有大量應用程式時,可能會發生這個錯誤。
如果要從這個錯誤回復,並順利聯合應用程式伺服器,請完成下列動作:
- 在部署管理程式伺服器上發出 cleanupNode 指令。 請參閱 cleanupNode 指令,以取得這個指令的相關資訊。
- 增加 addNode Script 的 JVM 資料堆大小。 當發出 addNode 指令時,JVM 資料堆大小是設為 -Xms128m -Xmx512m。 如果要增加這些值,請使用 -javaoption 參數。 比方說,您可以指定
下列所示(全部在同一行上):
addNode localhost 8879 -javaoption java_option "-Xmx512m"addNode.sh localhost 8879 -javaoption java_option "-Xmx512m" - 重新發出 addNode 指令。
- -includebuses
- 從要聯合到 Cell 中的節點複製匯流排。 另外,這個參數也會嘗試將遠端節點的服務整合匯流排配置複製到 Cell 中。 如果目的地 Cell 已包含與遠端節點上的任何匯流排同名的匯流排,新增節點便會失敗。 如果要避免這項失敗,您可以在使用 addNode 指令之前採取動作。 您可以刪除目的地 Cell 中這個名稱的匯流排、將要新增到 Cell 的匯流排重新命名,或手動配置已在 Cell 內的匯流排。
- -startingport <portNumber>
- 支援指定埠號作為 addNode 指令執行時所建立之所有節點代理程式和 Java 傳訊服務 (JMS) 伺服器埠的基本埠號。 您可以使用這項支援來控制要將哪些埠定義給這些伺服器,而不使用預設埠值。 起始埠號會增量一個單位,以便計算在 addNode 指令期間所配置的每個節點代理程式埠和 JMS 伺服器埠的埠號。
若要避免潛在的埠衝突,請閱讀 埠號設定 ,以取得預設埠設定的相關資訊。
如果在相同的實體伺服器上有多個節點代理程式,您可以在聯合之前使用 -startingport 參數,或在 serverindex.xml 檔的節點代理程式區段中修改埠號,來定義每個節點代理程式的基本埠號。
- -portprops <filename>
- 傳遞一個檔案名稱,檔案中含有新節點代理程式要用的明確埠的鍵值組。 比方說,如果要將 SOAP 和 RMI 埠設成 3000 和 3001,請利用下兩行來建立檔案並作為參數來傳遞:
SOAP_CONNECTOR_ADDRESS=3000 BOOTSTRAP_ADDRESS=3001 - -nodeagentshortname <name>
- 新節點代理程式要用的簡稱。
- -nodegroupname <name>
- 要在其中新增這個節點的節點群組名稱。 如果您沒有指定,就會將這個節點新增到 DefaultNodeGroup 中。
-registerservice
- 將節點代理程式登錄為 Windows 服務。
您可以選擇利用
-serviceusername和-servicepassword參數來定義 Windows 服務的使用者名稱和密碼。 如果您定義使用者名稱,您必須提供使用者名稱「以服務方式登入」的權限,才能適當執行服務。如果未指定使用者名稱和密碼,就會用本端系統帳戶來執行服務。
-serviceusername <user>
利用給定的使用者名稱作為 Windows 服務使用者。
-servicepassword <password>
使用給定的 Windows 密碼作為 Windows 服務密碼。
- -coregroupname <name>
- 要在其中新增這個節點的核心群組名稱。 如果未指定這個選項,節點會新增到 DefaultCoreGroup 中。
- -noagent
- 告訴 addNode 指令不要啟動新節點的節點代理程式程序。
- -statusport
- 供管理者設定節點代理程式狀態回呼埠號的選用參數。 工具會開啟這個埠來等待節點代理程式發出狀態回呼,表示已啟動節點代理程式。 如果未設定這個參數,便會自動配置未用的埠。
- -quiet
- 抑制 addNode 指令以正常模式來列印的進度資訊。
- -nowait
- 指示 addNode 指令不要等啟動的節點代理程式程序順利起始設定。
- -logfile <filename>
- 指定要寫入追蹤資訊的日誌檔位置。 依預設,這個日誌檔是 addNode.log,且會建立在新增的節點之設定檔的 logs 目錄中。
- -replacelog
- 取代日誌檔,而不是附加至現行日誌檔。 依預設,addNode 指令會附加至現有的追蹤檔。 這個選項會使 addNode 指令改寫追蹤檔。
- -trace
- 在日誌檔中產生其他追蹤資訊,以便除錯。
- -user <name> or -username <name>
- 指定在啟用安全的情況下,要進行鑑別的使用者名稱。 作用和 -user 選項一樣。 您選擇的使用者名稱必須是預先存在的使用者名稱。
- -password <password>
- 指定在啟用安全的情況下,要進行鑑別的密碼。 您選擇的密碼必須是預先存在的使用者名稱的相關密碼。
- -localusername <name>
- 指定要聯合的節點上現有的應用程式伺服器用來鑑別的使用者名稱。 只有在應用程式伺服器已啟用安全的情況下,這個參數才適用。
- -localpassword <password>
- 指定要聯合的節點上現有的應用程式伺服器用來鑑別的密碼。 您選擇的密碼必須是預先存在的使用者名稱的相關密碼。 只有在應用程式伺服器已啟用安全的情況下,這個參數才適用。
- -profileName
- 定義多設定檔安裝架構中之應用程式伺服器程序的設定檔。 如果要在單一設定檔環境中執行,-profileName 選項不是必要選項。 這個選項的預設值是預設設定檔。 如果您新增非預設設定檔到部署管理程式 Cell 中,就需要這個參數。
- -excludesecuritydomains true | false
- 如果您不想將應用程式伺服器節點所配置的安全網域聯合到 Cell 中,請將 -excludesecuritydomains 參數設為 true。 當參數設為 true 時,會使用 Cell 的安全配置。 只有在未聯合應用程式伺服器配置了安全網域時,才適用這個參數。 依預設,如果有安全網域關聯於應用程式伺服器,安全網域會聯合到 Cell 中,以便在聯合之後,伺服器能夠使用相同的安全網域資訊。
- -asExistingNode
- 指定回復部署管理程式 Cell 的現有受管理節點。使用 addNode 指令的 -asExistingNode 參數以快速回復損壞的節點。 比方說,如果機器故障造成節點無法使用,但部署管理程式仍保留節點資訊,那麼您可以利用 addNode -asExistingNode 選項,完成下列步驟來重建無法使用的節點:
- 利用無法使用之節點的相同節點和設定檔名稱來建立新的設定檔。 您可以在和原始節點不同的機器上建立這個設定檔。
- 對於這個新設定檔,請用 -asExistingNode 選項來執行 addNode 指令。
您也可以利用 addNode 指令的 -asExistingNode 選項,將節點移到不同電腦但相同路徑的產品安裝架構之中、將節點移到不同作業系統或不同路徑的產品安裝架構中,或者根據範本 Cell 來建立 Cell。 請參閱利用 addNode -asExistingNode 指令來回復或移動節點的主題。
避免麻煩: 節點配置的其他 addNode 選項與此asExisting節點選項不相容。 請不要搭配下列不相容的選項來使用 -asExistingNode:-includeapps、-includebuses、-startingport、-portprops、-nodeagentshortname、-nodegroupname、-registerservice、-serviceusername、-servicepassword、-coregroupname 或 -excludesecuritydomains。 - -help
- 列印用法說明。
- -?
- 列印用法說明。
使用實務
addNode testhost 8879 (adds an application server to the deployment manager)
addNode deploymgr 8879 -trace (produces the addNode.log file)
addNode host25 8879 -nowait (does not wait for a node agent process)8879 值是預設埠。addNode mydmgr 11383 -profileName mynode (adds profile, mynode, to the cell managed by profile mydmgr, which listens on SOAP port 11383)將應用程式伺服器節點新增至 WebSphere Application Server Network Deployment Cell 時的安全考量
將節點新增至 Cell 時,您會自動繼承 Cell 的使用者登錄和鑑別機制。
將節點新增至 Cell 時,新聯合節點會自動繼承現有 WebSphere Application Server Network Deployment Cell 的使用者登錄 (本端 OS、輕量型目錄存取通訊協定 (LDAP) 或自訂)、鑑別機制 (LTPA) 及授權設定 (WebSphere® 連結或系統授權機能 (SAF) EJBROLE 設定檔)。
如果採用分散式安全,Cell 中所有的伺服器都必須使用同樣的使用者登錄和鑑別機制。 如果要從使用者登錄變更來回復,必須修改您的應用程式,讓使用者和群組至角色對映適用於新的使用者登錄。 請參閱將使用者和群組指派給角色的相關文章。
另一項重要考量是 Secure Socket Layer (SSL) 公開金鑰基礎架構。 在利用部署管理程式來執行 addNode 指令之前,請驗證 addNode 指令能夠以 SSL 用戶端的身分,與部署管理程式通訊。 這項通訊需要 addNode 信任儲存庫(在 sas.client.props 檔中配置)含有在金鑰儲存庫中的部署管理程式個人憑證的簽章者憑證(在管理主控台中指定)。
啟用安全模式來執行 addNode 指令時,需要考量下列問題:- 當您試圖執行系統管理指令(如 addNode 指令)時,請指定管理憑證來執行作業。 addNode 指令接受以 -username 和 -password 參數來指定使用者 ID 和密碼。 指定的使用者 ID 和密碼必須是管理使用者的使用者 ID 和密碼。 例如,指定如下使用者:具備管理者專用權之主控台使用者的成員,或使用者登錄中所配置的管理使用者 ID。 請參閱 addNode 指令的下列範例:
addNode CELL_HOST 8879 -includeapps -username user -password pass-includeapps 參數是選用的。 這個選項會嘗試將伺服器應用程式併入到部署管理程式中。 如果應用程式伺服器和部署管理程式所用的使用者登錄不同,addNode 指令可能會失敗。 如果要更正這項失敗,請使用相同的使用者登錄或關閉安全。 如果您變更使用者登錄,請記得驗證使用者至角色或群組至角色的對映正確。 請參閱 addNode 指令,以取得 addNode 語法的相關資訊。
如果您發出已啟用安全的 addNode 指令,則必須使用具有權限的使用者 ID ,並指定 -user 和-password 選項。
- 不支援利用管理主控台來新增安全遠端節點。 您可以在執行作業之前停用遠端節點的安全,或從指令提示中利用 addNode Script 來執行作業。
在執行 addNode 指令之前,您必須驗證節點上的信任儲存庫檔案是否與部署管理程式所擁有的金鑰儲存庫檔和系統授權機能 (SAF) 金鑰環通訊,反之亦然。 如果您利用節點代理程式程序所用的相同憑證管理中心來產生部署管理程式的憑證,您會順利完成。 下列 SSL 配置必須包含能夠交互作業的金鑰儲存庫和信任儲存庫:
- 管理主控台所指定的系統 SSL 儲存庫。 按一下 。
- 適當 JMX 連接器的 SSL 儲存庫(如果指定 SOAP 的話)。 按一下 。
- NodeAgent 中所指定的 SSL 儲存庫。 按一下 。
當新增節點到定義不同安全網域的部署管理程式配置時,請小心。
在執行 addNode 指令之前,您必須驗證節點上的信任儲存庫檔案可以與部署管理程式中的金鑰儲存庫檔案通訊,反之亦然。 當使用預設的 DummyServerKeyFile 和 DummyServerTrustFile 時,由於已經能夠通訊,因此不會發生通訊錯誤。 不過,在正式作業環境中,或是在傳輸機密資料時,請勿使用這些虛擬檔案。
- 如果啟用第 7 版或第 8 版部署管理程式的安全,則部署管理程式不能使用自動產生的內部伺服器 ID 來聯合 6.x 版節點。 當啟用安全時,依預設,會使用自動產生的內部伺服器 ID。
- 當舊版用戶端嘗試利用 addNode 指令,聯合到第 7 版或 8 版部署管理程式時,用戶端必須先取得簽章者,才能順利交換信號。 如需這個實務在執行 addNode 指令前所需變更的相關資訊,請參閱「維護安裝安全以擷取用戶端」主題中,關於從舊版中取得簽章者的資訊,具體地說,就是「從舊版中取得用戶端和伺服器的簽章者」一節。 您可以執行下列動作之一,以變更使用者登錄:
- 在管理主控台中,按一下廣域安全。 在 可用的網域範圍定義下,按一下 。 輸入使用者名稱和密碼,然後按一下套用。
- 執行 wsadmin 指令:
AdminTask.configureAdminWIMUserRegistry('[-autoGenerateServerId false -serverId testuser -serverIdPassword testuserpwd -primaryAdminId testuser -ignoreCase true ]')
- 在執行 addNode 指令之後,應用程式伺服器已在新的 SSL 網域中。 它可能含有指向金鑰儲存庫檔和信任儲存庫檔的 SSL 配置,而這些配置並沒有被準備要與同網域的其他伺服器交互作業。 請先考量哪些伺服器要彼此通訊,然後確定這些伺服器在您的信任儲存庫檔案中受到信任。