WebLogic 11g Silent 설치
WebLogic 11g Silent 설치 에대한 글입니다. Oracle 제품군들을 설치하기 위해서는 GUI 환경이라야 한다고 생각하겠지만 GUI 환경이 아니더라도 설치가 가능한데, 이러한 방법을 Slient 설치하록 합니다. WebLogic 11g 도 Silent 설치를 지원 합니다.
Silent 설치에 핵심은 설치를 위한 각종 자료를 XML 파일로 작성하는 것입니다. ‘각종 자료’라고 함은 설치할 디렉토리, 설치할 컨포넌트등을 정의하는 것입니다.
설치 환경
설치 환경은 다음과 같습니다.
- OS: Ubuntu16.04 64bit
- Hostname: weblogic1.localdomain
설치 준비
호스트네임 변경
호스트네임을 변경해줍니다. 과거에는 파일을 조작해야 했지만 다음과 같이 hostnamectl 명령어를 이용합니다.
1 2 3 4 5 6 7 |
hostnamectl set-hostname wlserv1 hostnamectl set-hostname wlserv1 --static hostnamectl set-hostname "Server1 of Oracle Weblogic" --pretty hostnamectl set-hostname wlserv1 --transient vim /etc/hosts 192.168.96.30 wlserv1.systemv.pe.kr wlserv1 |
로그인을 다시하면 변경된 호스트네임이 반영됩니다.
계정생성
계정은 Oracle 제품군 설치를 위해서 oinstall 그룹과 weblogic 계정을 다음과 같이 생성합니다.
1 2 3 4 5 6 |
groupadd -g 1000 oinstall useradd -u 2100 -g oinstall weblogic -s /bin/bash -d /home/weblogic -m passwd weblogic Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully |
디렉토리 생성
Oracle 은 자사의 제품군에 대한 설치를 위해 디렉토리 구조를 정의놨는데 이것을 OFA(Optimal Flexible Architecture) 라고 부릅니다. OFA 는 단순하게 디렉토리만을 정의한것이 아니라 파일시스템, 스토리지 확장등을 모두 고려해 연구해 Oracle 에서 발표한 것입니다.
Weblogic 11g 설치를 위해 다음과 같이 디렉토리를 생성 합니다.
1 2 3 4 5 6 |
mkdir -p /u01/app/weblogic/middleware mkdir -p /u01/app/weblogic/config/domains mkdir -p /u01/app/weblogic/config/applications mkdir -p /u01/software chown -R weblogic:oinstall /u01 chmod -R 775 /u01/ |
쉘 환경 변수 설정
weblogic 계정에 쉘 환경변수를 다음과 같이 만들어 줍니다.
1 2 3 4 5 6 7 8 |
export MW_HOME=/u01/app/weblogic/middleware export WLS_HOME=$MW_HOME/wlserver_10.3 export WL_HOME=$WLS_HOME # Set to the appropriate JAVA_HOME. export JAVA_HOME=/opt/java export CLASSPATH=.:/opt/java/jre/lib export PATH=$JAVA_HOME/bin:$PATH |
Silent.xml 생성
이제 설치 명세서인 Silent.xml 를 다음과 같이 작성해 줍니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
<?xml version="1.0" encoding="UTF-8"?> <bea-installer> <input-fields> <data-value name="BEAHOME" value="/u01/app/weblogic/middleware" /> <data-value name="WLS_INSTALL_DIR" value="/u01/app/weblogic/middleware/wlserver_10.3" /> <data-value name="OCP_INSTALL_DIR" value="/u01/app/weblogic/config/applications/coherence_3.7" /> <data-value name="COMPONENT_PATHS" value="WebLogic Server/Core Application Server|WebLogic Server/Administration Console|WebLogic Server/Configuration Wizard and Upgrade Framework|WebLogic Server/Web 2.0 HTTP Pub-Sub Server|WebLogic Server/WebLogic JDBC Drivers|WebLogic Server/Third Party JDBC Drivers|WebLogic Server/WebLogic Server Clients|WebLogic Server/WebLogic Web Server Plugins|WebLogic Server/UDDI and Xquery Support|Oracle Coherence/Coherence Product Files|Oracle Coherence/Coherence Examples" /> <data-value name="INSTALL_NODE_MANAGER_SERVICE" value="yes" /> <data-value name="NODEMGR_PORT" value="5556" /> <data-value name="INSTALL_SHORTCUT_IN_ALL_USERS_FOLDER" value="no"/> <data-value name="LOCAL_JVMS" value="/opt/java"/> </input-fields> </bea-installer> |
대략 위와같이 작성합니다. 각각의 내용은 Oracle 홈페이지 Silent.xml 에 나와 있습니다.
설치
다음과 같이 설치를 진행 합니다.
1 |
/opt/java/bin/java -Xmx1024m -jar /u01/software/wls1036_generic.jar -mode=silent -silent_xml=/u01/software/silent.xml |
설치는 의외로 금방 끝난다.
이제 설치가 정상적으로 되었는지 다음과 같이 테스트를 합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 |
weblogic@wlserv1:/u01/software$ source $WLS_HOME/server/bin/setWLSEnv.sh CLASSPATH=/u01/app/weblogic/middleware/patch_wls1036/profiles/default/sys_manifest_classpath/weblogic_patch.jar:/opt/jdk1.7.0_80/lib/tools.jar:/u01/app/weblogic/middleware/wlserver_10.3/server/lib/weblogic_sp.jar:/u01/app/weblogic/middleware/wlserver_10.3/server/lib/weblogic.jar:/u01/app/weblogic/middleware/modules/features/weblogic.server.modules_10.3.6.0.jar:/u01/app/weblogic/middleware/wlserver_10.3/server/lib/webservices.jar:/u01/app/weblogic/middleware/modules/org.apache.ant_1.7.1/lib/ant-all.jar:/u01/app/weblogic/middleware/modules/net.sf.antcontrib_1.1.0.0_1-0b2/lib/ant-contrib.jar:.:/opt/java/jre/lib PATH=/u01/app/weblogic/middleware/wlserver_10.3/server/bin:/u01/app/weblogic/middleware/modules/org.apache.ant_1.7.1/bin:/opt/jdk1.7.0_80/jre/bin:/opt/jdk1.7.0_80/bin:/opt/java/bin:/home/weblogic/bin:/home/weblogic/.local/bin:/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/snap/bin Your environment has been set. weblogic@wlserv1:/u01/software$ java weblogic.version WebLogic Server 10.3.6.0 Tue Nov 15 08:52:36 PST 2011 1441050 Use 'weblogic.version -verbose' to get subsystem information Use 'weblogic.utils.Versions' to get version information for all modules |
도메인 생성
GUI 가 없기 때문에 도메인 생성도 역시 Console 상태에서 해야하는데, WebLogic 은 이것을 지원 합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
weblogic@wlserv1:/u01/app/weblogic/middleware/wlserver_10.3/common/bin$ ./config.sh -mode=console <------------------- Fusion Middleware Configuration Wizard ------------------> Welcome: -------- Choose between creating and extending a domain. Based on your selection, the Configuration Wizard guides you through the steps to generate a new or extend an existing domain. ->1|Create a new WebLogic domain | Create a WebLogic domain in your projects directory. 2|Extend an existing WebLogic domain | Use this option to add new components to an existing domain and modify |configuration settings. Enter index number to select OR [Exit][Next]> |
새로운 도메인 생성을 위해서 1번을 선택합니다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
<------------------- Fusion Middleware Configuration Wizard ------------------> Select Domain Source: --------------------- Select the source from which the domain will be created. You can create the domain by selecting from the required components or by selecting from a list of existing domain templates. ->1|Choose Weblogic Platform components | You can choose the Weblogic component(s) that you want supported in |your domain. 2|Choose custom template | Choose this option if you want to use an existing template. This |could be a custom created template using the Template Builder. |
도메인 생성을 위한 기존의 템플릿이나 필요한 컴포넌트 선택하는 것으로 여기서는 1번을 선택합니다.
1 2 3 4 5 6 7 8 9 10 11 12 |
<------------------- Fusion Middleware Configuration Wizard ------------------> Application Template Selection: ------------------------------- Available Templates |_____Basic WebLogic Server Domain - 10.3.6.0 [wlserver_10.3]x |_____Basic WebLogic SIP Server Domain - 10.3.6.0 [wlserver_10.3] [2] |_____WebLogic Advanced Web Services for JAX-RPC Extension - 10.3.6.0 [wlserver_10.3] [3] |_____WebLogic Advanced Web Services for JAX-WS Extension - 10.3.6.0 [wlserver_10.3] [4] |
필요한 기능을 갖춘 도메인을 선택한다. 기본 WebLogic 서버 기능만 힜으면 됨으로 나머지 선택을 하지 않고 그냥 엔터
1 2 3 4 5 6 7 8 |
<------------------- Fusion Middleware Configuration Wizard ------------------> Edit Domain Information: ------------------------ | Name | Value | _|________|_____________| 1| *Name: | base_domain | |
사용할 도메인 이름을 입력하고 엔터.
1 2 3 4 5 6 7 8 9 10 11 12 |
<------------------- Fusion Middleware Configuration Wizard ------------------> Select the target domain directory for this domain: --------------------------------------------------- "Target Location" = [Enter new value or use default "/u01/app/weblogic/middleware/user_projects/domains"] Enter new Target Location OR [Exit][Previous][Next]> |
여기가 중요하다. 앞전에 설치를 위한 디렉토리 생성시에 도메인을 위한 디렉토리를 다음과 같이 만들어준적이 있다.
- /u01/app/weblogic/config/domains
따라서 도메인 디렉토리를 위 디렉토리로 변경해준다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
<------------------- Fusion Middleware Configuration Wizard ------------------> Configure Administrator User Name and Password: ----------------------------------------------- Create a user to be assigned to the Administrator role. This user is the default administrator used to start development mode servers. | Name | Value | _|_________________________|_________________________________________| 1| *Name: | weblogic | 2| *User password: | | 3| *Confirm user password: | | 4| Description: | This user is the default administrator. | Use above value or select another option: 1 - Modify "Name" 2 - Modify "User password" 3 - Modify "Confirm user password" 4 - Modify "Description" Enter option number to select OR [Exit][Previous][Next]> |
WebLogic 의 관리자 계정을 생성한다. 2번과 3번을 선택해 패스워드를 지정해준다.
1 2 3 4 5 6 7 8 9 10 |
<------------------- Fusion Middleware Configuration Wizard ------------------> Domain Mode Configuration: -------------------------- Enable Development or Production Mode for this domain. ->1|Development Mode 2|Production Mode |
운영모드 선택이다. 자신에게 맞는 환경을 선택한다.
1 2 3 4 5 6 7 8 9 10 11 12 |
<------------------- Fusion Middleware Configuration Wizard ------------------> Java SDK Selection: ------------------- ->1|Sun SDK 1.7.0_80 @ /opt/jdk1.7.0_80 2|Other Java SDK Enter index number to select OR [Exit][Previous][Next]> 1 |
설치된 자바를 선택해주면 된다.
1 2 3 4 5 6 7 8 9 10 11 12 |
<------------------- Fusion Middleware Configuration Wizard ------------------> Select Optional Configuration: ------------------------------ 1|Administration Server [ ] 2|Managed Servers, Clusters and Machines [ ] 3|RDBMS Security Store [ ] Enter index number to select OR [Exit][Previous][Next]> 1 |
여기서 반드시 Administration Server 는 해주도록 하자. 관리자 서버를 실행해야 웹콘솔 접속이 가능하지고 모든 작업이 웹콘솔을 통해서 가능하게 된다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 |
<------------------- Fusion Middleware Configuration Wizard ------------------> Configure the Administration Server: ------------------------------------ Each WebLogic Server domain must have one Administration Server. The Administration Server is used to perform administrative tasks. | Name | Value | _|__________________|_____________________| 1| *Name: | AdminServer | 2| *Listen address: | All Local Addresses | 3| Listen port: | 7001 | 4| SSL listen port: | N/A | 5| SSL enabled: | false | Use above value or select another option: 1 - Modify "Name" 2 - Modify "Listen address" 3 - Modify "Listen port" 4 - Modify "SSL enabled" Enter option number to select OR [Exit][Previous][Next]> |
Administration 서버 설정으로 필요한 부분, port 나 Listen address 등을 바꿔주면 된다.
1 2 3 4 5 6 7 8 9 10 |
<------------------- Fusion Middleware Configuration Wizard ------------------> Creating Domain... 0% 25% 50% 75% 100% [------------|------------|------------|------------] [***************************************************] **** Domain Created Successfully! **** |
이로서 도메인 생성이 완료되었다.
WebLogic 을 비록한 Oracle 제품군을 설치할때에 GUI 모드를 고집하는 경향이 있다. 하지만 GUI 모드 설치를 위해서는 GUI 를 위한 각종 프로그램들을 설치해야하고 느린 네트워크 환경에서는 설치가 수월하게 되지 않는다.
Silent 모드 설치와 Console 모드에서 도메인 생성은 간편하면서도 의존성이 없는 텍스트만으로 이루어짐으로 어떤 환경에서든지 활용이 가능하며 쉽다.
Managed Server 인증 기동
WebLogic Admin 을 세팅하고 웹 콘솔로 접속한 후에 서버를 하나 생성하면 Managed Server 가 생성되는 것입니다. 이를 기동하기 위해서 터미널에서 다음과 같이 해줍니다.
1 2 3 4 |
weblogic@wlserv1:/u01/app/weblogic/config/domains/mCloud/bin$ ./startManagedWebLogic.sh Server-0 <May 10, 2017 9:46:32 PM KST> <Info> <WebLogicServer> <BEA-000377> <Starting WebLogic Server with Java HotSpot(TM) 64-Bit Server VM Version 24.80-b11 from Oracle Corporation> <May 10, 2017 9:46:33 PM KST> <Info> <Security> <BEA-090065> <Getting boot identity from user.> Enter username to boot WebLogic server: |
그런데, 위와같이 인증을 위한 프롬프트가 나옵니다. 이는 Admin 서버와 통신을 위한 것으로 Admin 웹 콘솔 로그인을 위한 계정을 입력해주면 됩니다.
하지만 매번 이렇게 할려면 매우 힘든 일이고 기동 스크립트는 자동화가 필요한 부분이라 이부분을 자동인증으로 하기 위한 방법을 설명합니다. 이 방법은 다음 링크에도 잘 기술되어 있습니다.
Managed Server 마다 boot.properties 파일을 생성해 다음과 같이 로그인 정보를 적어 줍니다.
1 2 3 |
$ vim /u01/app/weblogic/config/domains/mCloud/servers/Server-0/security/boot.properties username=admin password=admin |
텍스트 파일로 작성해서 저장하는데, Managed Server 를 기동하면 이게 암호화가 되기 때문에 보안에 아무런 문제가 없습니다.
Java 동작모드 바꾸기
아무런 설정 없이 WebLogic 서버들을 시작하면, 다음과 같은 JVM_OPTION 들이 보입니다.
1 |
/opt/jdk1.7.0_80/bin/java -client -Xms256m -Xmx512m -XX:CompileThreshold=8000 -XX:PermSize=128m -XX:MaxPermSize=256m -Dweblogic.Name=Server-0 -Djava.security.policy=/u01/app/weblogic/middleware/wlserver_10.3/server/lib/weblogic.policy -Dweblogic.security.SSL.trustedCAKeyStore=/u01/app/weblogic/middleware/wlserver_10.3/server/lib/cacerts -Xverify:none -Djava.security.egd=file:/dev/./urandom -da -Dplatform.home=/u01/app/weblogic/middleware/wlserver_10.3 -Dwls.home=/u01/app/weblogic/middleware/wlserver_10.3/server -Dweblogic.home=/u01/app/weblogic/middleware/wlserver_10.3/server -Dweblogic.management.discover=false -Dweblogic.management.server=http://0.0.0.0:7001 -Dwlw.iterativeDev=false -Dwlw.testConsole=false -Dwlw.logErrorsToConsole=false -Dweblogic.ext.dirs=/u01/app/weblogic/middleware/patch_wls1036/profiles/default/sysext_manifest_classpath:/u01/app/weblogic/middleware/patch_ocp371/profiles/default/sysext_manifest_classpath weblogic.Server |
-client 모드로 기동이 되는데 이를 -server 로 바꾸어야 합니다. Java 의 동작 모드는 지속적인 서비스를 위해서는 -server 가 적합 합니다. WebLogic 에서 이를 바꾸기 위해서는 다음과 같이 고쳐줍니다.
1 2 3 4 5 |
$ vim /u01/app/weblogic/middleware/wlserver_10.3/common/bin/commEnv.sh 217 Sun) - 218 JAVA_VM=-client + 218 JAVA_VM=-server 219 MEM_ARGS="-Xms32m -Xmx200m -XX:MaxPermSize=128m" |
WebLogic 구동 시 /dev/random 블로킹 이슈 해결
이것을 해주지 않으면 구동시간이 아주 길어 집니다. 방법은 여러가지가 있지만 여기서는 전역환경변수에서 이것을 수정함으로써 해결 합니다.
1 2 3 4 5 6 |
$ vim /u01/app/weblogic/middleware/wlserver_10.3/common/bin/commEnv.sh 217 Sun) 218 JAVA_VM=-server 219 MEM_ARGS="-Xms32m -Xmx200m -XX:MaxPermSize=128m" - 220 JAVA_OPTIONS="${JAVA_OPTIONS} -Xverify:none" + 220 JAVA_OPTIONS="${JAVA_OPTIONS} -Xverify:none -Djava.security.egd=file:/dev/./urandom" |
위와같이 JAVA_OPTIONS 환경변수에 지정해줍니다.