weblogic 指令碼建立Managed Server (受管伺服器)
說明
weblogic
安裝目錄下有一個建立Managed Server
的指令碼,指令碼位於/u01/app/Oracle/Middleware/oracle_common/common/bin/config.sh
下,但指令碼會啟動一個GUI介面程式,在Linux下需要安裝圖形介面程式,非常不方便。wlst(WebLogic Scripting Tools,WebLogic)
是一個用來管理和配置weblogic的CLI命令列工具,可以執行Jython
指令碼,本文介紹如何通過該工具建立Managed Server。
WLST介紹
wlst位於/u01/app/Oracle/Middleware/wlserver_10.3/common/bin/wlst.sh
目錄下,其中/u01/app/Oracle/Middleware/wlserver_10.3
目錄為$WEBLOGIC_HOME
,所以嚴謹的講,是安裝在$WEBLOGIC_HOME/common/bin/wlst.sh
下。直接執行該指令碼即可執行wlst工具。
$ cd /u01/app/Oracle/Middleware/wlserver_10.3/common/bin/ $ ./wlst.sh Initializing WebLogic Scripting Tool (WLST) ... Welcome to WebLogic Server Administration Scripting Shell Type help() for help on available commands wls:/offline> connect('weblogic','weblogic1','t3://localhost:7001') Connecting to t3://localhost:7001 with userid weblogic ... Successfully connected to Admin Server 'AdminServer' that belongs to domain 'base_domain'. Warning: An insecure protocol was used to connect to the server. To ensure on-the-wire security, the SSL port or Admin port should be used instead. wls:/base_domain/serverConfig> cd('/') wls:/base_domain/serverConfig> ls() dr--AdminConsole dr--AppDeployments dr--BridgeDestinations dr--Clusters dr--CoherenceClusterSystemResources dr--CoherenceServers ....
wlst有offline(離線)
和online(線上)
兩種模式,通過connect
命令可以從offline進入online,wlst按照liux目錄形式對weblogic資源進行管理,甚至連操作的命令都和linux高度相似,比如cd
是切換到指定資源路徑下,ls()
是列出該目錄下所有資源。如要了解更多關於wlst的內容,可以檢視官方文件
。
wlst指令碼
本指令碼原作者為Tim Hall ,本文這裡稍作修改,以下為指令碼程式碼
create_managed_server.py
#!/usr/bin/python # Author : Tim Hall # Modified : Jianfeng.Zheng # Save Script as : create_managed_server.py import time import getopt import sys import re # Get location of the properties file. properties = '' try: opts, args = getopt.getopt(sys.argv[1:],"p:h::",["properies="]) except getopt.GetoptError: print 'create_managed_server.py -p <path-to-properties-file>' sys.exit(2) for opt, arg in opts: if opt == '-h': print 'create_managed_server.py -p <path-to-properties-file>' sys.exit() elif opt in ("-p", "--properties"): properties = arg print 'properties=', properties # Load the properties from the properties file. from java.io import FileInputStream propInputStream = FileInputStream(properties) configProps = Properties() configProps.load(propInputStream) # Set all variables from values in properties file. adminUsername=configProps.get("admin.username") adminPassword=configProps.get("admin.password") adminURL=configProps.get("admin.url") msName=configProps.get("ms.name") msAddress=configProps.get("ms.address") msPort=configProps.get("ms.port") msMachine=configProps.get("ms.machine") # Display the variable values. print 'adminUsername=', adminUsername print 'adminPassword=', adminPassword print 'adminURL=', adminURL print 'msName=', msName print 'msAddress=', msAddress print 'msPort=', msPort print 'msMachine=', msMachine # Connect to the AdminServer. connect(adminUsername, adminPassword, adminURL) edit() startEdit() # Create the managed Server. cd('/') cmo.createServer(msName) cd('/Servers/' + msName) cmo.setListenAddress(msAddress) cmo.setListenPort(int(msPort)) # Associated with a node manager. cd('/Servers/' + msName) cmo.setMachine(getMBean('/Machines/' + msMachine)) save() activate() disconnect() exit()
properties檔案
指令碼所需引數通過properties檔案傳入,以下是properties檔案
api-api-managed-server.properties
# AdminServer connection details. admin.username=weblogic admin.password=weblogic1 admin.url=t3://10.1.11.71:7001 ms.name=api-server ms.address=0.0.0.0 ms.port=7002 ms.machine=api-server-machine
admin.username
: weblogic管理員使用者名稱
admin.password
: weblogic管理員密碼
admiin.url
: weblogic控制檯地址需要加上t3協議欄位
ms.name
: managed server名稱,可以自定義
ms.address
: managed server監聽地址
ms.port
: managed server監聽埠號
ms.machine
: managed server關聯的計算機名稱
ms.machine
需要提前建立好,可以在weblogic控制檯頁面http://localhost:7001/console/console.portal?_nfpb=true&_pageLabel=CoreMachineMachineTablePage
建立
執行
將create_managed_server.py
和api-api-managed-server.properties
檔案上傳到伺服器,這裡上傳到目錄~/shell
下
$ cd /u01/app/Oracle/Middleware/user_projects/domains/base_domain/bin $ . ./setDomainEnv.sh $ java weblogic.WLST ~/shell/create_managed_server.py -p ~/shell/api-managed-server.properties
ps:. ./setDomainEnv.sh第一個點(.)不能省略
執行完畢後登入console檢視結果。