weblogic 설치를 위한 JDK 설치가 필요하다.
OpneJDK로는 정상적으로 설치가 되지 않는다.
silent 모드를 통하여 Weblogic을 설치하였다.
java -jar ./weblogic.jar -silent -responseFile wls.rsp [-invPtrLoc oraInst.loc]
설치시 해당 response 파일 설정을 기반으로 프로그램이 설치된다.
[ENGINE]
#Config File Version
Response File Version=1.0.0.0.0
[GENERIC]
ORACLE_HOME=[ORACLE_HOME]
INSTALL_TYPE=WebLogic Server
MYORACLESUPPORT_USERNAME=
MYORACLESUPPORT_PASSWORD=
DECLINE_SECURITY_UPDATES=true
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
PROXY_HOST=
PROXY_PORT=
PROXY_USER=
PROXY_PWD=
COLLECTOR_SUPPORTHUB_URL=
oraInst.loc은 별도로 생성 후 지정하여 설치하여도 되지만, /etc/oraInst.loc에 위치시킨 후, 생략하여 사용 가능하다.
오라클 인벤토리 홈, 오라클 인벤토리 그룹 이름을 지정한다
inventory_loc=[inventory_home]
inst_group=[inventory_group_name]
주의 사항
wls.rsp 및 oraInst.loc 지정시, 반드시 절대경로로 작성하여야 한다
웹로직은 기본적으로 하나의 Domain, 하나의 Admin Server, N개의 Managed Server로 구성되어있다.
[ORACLE_HOME]/oracle_common/common/bin/config.sh
를 통하여 GUI 기반 설치가 가능하다.
이 글에서는 WLST를 통하여 도메인 설치를 진행하였다.
cd [ORACLE_HOME]/wlserver/common/bin
./wlst.sh createDomain.py
ORACLE_HOME=''
ADMIN_USER=''
ADMIN_PW=''
AS_NAME=''
AS_ADDRESS=''
AS_PORT=''
DOMAIN_NAME=''
# Create Template
if version[16:18]=='14':
AS_TEMPLATE='Basic WebLogic Server Domain'
selectTemplate(AS_TEMPLATE)
loadTemplates()
elif version[16:18]=='12':
AS_TEMPLATE_JAR=ORACLE_HOME+'/wlserver/common/templates/wls/wls.jar'
readTemplate(AS_TEMPLATE_JAR)
elif version[16:18]=='10':
AS_TEMPLATE_JAR=ORACLE_HOME+'/wlserver_10.3/common/templates/domains/wls.jar'
readTemplate(AS_TEMPLATE_JAR)
else:
print "ERROR:version is "+version[16:18]
exit()
# Set Admin
cd('/Security/base_domain/User/weblogic')
cmo.setName(ADMIN_USER)
cmo.setPassword(ADMIN_PW)
# Set ProductuinMode
cd('/');
cmo.setProductionModeEnabled(true)
# Set Admin Server
cd('/Servers/AdminServer')
cmo.setName(AS_NAME)
cmo.setListenAddress(AS_ADDRESS)
cmo.setListenPort(AS_PORT)
cd('/')
writeDomain(ORACLE_HOME+'/domains/'+DOMAIN_NAME)
closeTemplate()
exit()
설치가 끝난 후, DOMAIN_HOME에서 Weblogic을 실행 한 후, IP:PORT/console
로 접근하여 웹로직을 실행할 수 있다.
Weblogic은 선택적으로 NodeManager를 설치하여, 인스턴스를 컨트롤 할 수 있다. 이를 통해 콘솔에서 인스턴스를 제어하거나, WLST를 통해 해당 서버에 SSH 접근이 불가능한 상황에서도 인스턴스 제어 및 설정이 가능하다.
wlst.sh createNodeManager.py
from util import *
#Connect to Admin
connect(ADMIN_USER,ADMIN_PW,ADMIN_URL)
edit()
startEdit()
# Create NodeManager
cd('/')
cmo.createUnixMachine(NM_NAME)
# Config NodeManager
cd('/Machines/'+NM_NAME+'/NodeManager/'+NM_NAME)
cmo.setListenAddress(NM_ADDRESS);
cmo.setListenPort(NM_PORT);
cmo.setNMType(NM_TYPE);
# Set Admin Server Machine
cd('/Servers/'+AS_NAME)
cmo.setMachine(getMBean('/Machines/'+NM_NAME))
# Config NodeManager Security
cd('SecurityConfiguration/'+DOMAIN_NAME)
cmo.setNodeManagerUsername(NM_USER)
cmo.setNodeManagerPasswordEncrypted(NM_PASS)
save()
activate()
disconnect()
exit()
웹로직 콘솔에서도 Managed Server 설치가 가능하나, 이 글에서 WLST를 통해 Managed 서버를 설치해 보았다.
wlst.sh createManaged.py
# config admin info
adminurl=''
username=''
password=''
# config ms base info
msName=''
msAddress=''
msPort=''
# cluster config
clusterName=''
# machine config
machineName=''
# log config
logDate='%yyyy%%MM%%dd%'
# connect to admin
connect(username,password,adminurl)
edit()
startEdit()
# create Managed Server
MS=getMBean('Servers/'+msName)
CLUSTER=getMBean('/Clusters/' + clusterName)
MACHINE=getMBean('/Machines/' +machineName)
if MS is None:
print "#### create Managed Server : "+msName
cd('/')
cmo.createServer(msName)
cd('/Servers/'+msName)
cmo.setListenAddress(msAddress)
cmo.setListenPort(int(msPort))
cmo.setWeblogicPluginEnabled(true)
#cmo.getWebServer().setMaxRequestParameterCount(30000);
else:
print "#### Managed Server is already exist"
# set Cluster
def configCluster():
print "#### conf Cluster : "+clusterName
cd('/Servers/'+msName)
cmo.setCluster(CLUSTER)
if CLUSTER is not None:
configCluster()
elif clusterName!='':
print "#### create Cluster : "+clusterName
cd('/')
cmo.createCluster(clusterName);
configCluster()
# set Nodemanager
def configMachine():
print "#### conf Nodemanager : "+machineName
cd('/Servers/'+msName)
cmo.setMachine(MACHINE)
if MACHINE is not None:
configMachine()
elif machineName!='':
print "#### create Nodemanager : "+machineName
cd('/')
cmo.createMachine(machineName);
configMachine()
# set Log
if False:
# config Server Log
cd('/Servers/' + msName + '/Log/' + msName)
#
cmo.setRotationType('byTime')
cmo.setFileCount(30)
cmo.setRedirectStderrToServerLogEnabled(true)
cmo.setRedirectStdoutToServerLogEnabled(true)
# Trace, Debug, Info, Notice, Warning, Error, Critical, Alert, Emergency, Off
cmo.setMemoryBufferSeverity('debug')
# Trace, Debug, Info, Notice, Warning
cmo.setLogFileSeverity('Notice')
# log name by date
cmo.setFileName('logs/'+logDate+msName+'.log')
# config HTTP Log
cd('/Servers/'+msName+'/WebServer/'+msName+'/WebServerLog/'+msName)
cmo.setRotationType('byTime')
cmo.setFileCount(30)
cmo.setFileName('logs/'+logDate+'access.log')
cd('/Servers/'+msName+'/WebServer/'+msName+'/DataSourceLogFile/'+msName)
cmo.setRotationType('byTime')
cmo.setFileCount(30)
cmo.setFileName('logs/'+logDate+'datasource.log')
# Disconnect to Admin
save()
activate()
disconnect()
exit()