[OHS] OHS 12cR2 (12.2.1.*) 설치 - UNIX/LINUX 환경
업데이트 날짜 : 2023-11-21
#. 참고 블로그 글
(설치)
https://m.blog.naver.com/spacemarket/221905694917
(component 추가/삭제)
https://bluerainxx.tistory.com/28
#. 윈도우 환경 설치
윈도우 환경 설치 가이드는 아래 글 참고
https://hyuunchul.tistory.com/176
#. 설치 전 사전 준비사항
설치에 앞서 OS에 각종 패키지 설치가 필요하다.
OS 별로 필요 패키지가 다르므로 아래 글 참고하여 확인
"UNIX Operating System Requirements" 항목 참고
(12.2.1.3)
(12.2.1.4)
#. RHEL8 / CentOS8 에 설치 시 주의사항
아래 두 패키지는 RHEL8 에서 제거되어 더 이상 설치가 불가하다.
Checking for compat-libcap1-1.10; Not found. Failed
Checking for compat-libstdc++-33-3.2.3-x86_64; Not found. Failed
RHEL7 및CentOS7에는 여전히 존재하기 때문에 우회하여 설치 가능하다.
yum install -y http://mirror.centos.org/centos/7/os/x86_64/Packages/compat-libstdc++-33-3.2.3-72.el7.x86_64.rpm
yum install -y http://mirror.centos.org/centos/7/os/x86_64/Packages/compat-libcap1-1.10-7.el7.x86_64.rpm
#. AIX 장비에 설치 시 주의사항
IOCP enabled 적용이 반드시 필요함.
해당 옵션을 적용하지 않으면 서버 기동 시 에러가 발생한다.
옵션 적용을 위해 시스템 재부팅이 필요하므로, 사전에 시스템 담당자에게 해당 내용 전달해야 함.
해당 내용은 12.2.1.3 및 이후 버전에 해당되는 사항
(oracle support 문서 ID - 2351465.1)
#. 서버 설치
해당 글에서는 silent 방식 설치로 작성하였음.
설치에 필요한 파일은 아래와 같음.
- fmw_12.2.1.*.0_ohs_linux64.bin (설치 파일)
- install.rsp (설치 옵션 및 경로 지정)
- oraInst.loc (인벤토리 경로 지정)
install.rsp
ORACLE_HOME 옵션에 OHS 서버가 설치될 디렉토리 경로를 지정한다.
ORACLE_HOME 옵션 외에는 수정하지 않는다.
[ENGINE]
Response File Version=1.0.0.0.0
[GENERIC]
ORACLE_HOME=/app/ohs/ohs_12214
INSTALL_TYPE=Standalone HTTP Server (Managed independently of WebLogic server)
DECLINE_SECURITY_UPDATES=true
SECURITY_UPDATES_VIA_MYORACLESUPPORT=false
oraInst.loc
inventory_loc 에는 OHS 서버의 인벤토리가 설치될 디렉토리 경로를 지정한다.
inst_group 에는 OHS 서버를 기동할 user 가 속한 group 명을 작성한다.
inventory_loc=/app/ohs/inventory_12214
inst_group=
설치 실행 명령어
설치파일 권한 변경
chmod +x fmw_12.2.1.4.0_ohs_linux64.bin
설치 실행
./fmw_12.2.1.4.0_ohs_linux64.bin -silent -responseFile install.rsp -invPtrLoc oraInst.loc
#. 도메인 구성
도메인 구성도 silent로 진행한다.
domain.py 파일을 생성한다.
12.2.1.3 버전 설치 시
selectTemplate('Oracle HTTP Server (Standalone)', '12.2.1.3.0')
loadTemplates()
cd('SystemComponent/ohs1')
set('Name','comp1')
cd('/SecurityConfiguration/base_domain')
set('NodemanagerUsername','admin')
set('NodemanagerPasswordEncrypted','admin1234')
cd('/')
writeDomain('/app/ohs/ohs_12213/domains/ehc_domain/')
closeTemplate()
exit()
12.2.1.4 버전 설치 시
selectTemplate('Oracle HTTP Server (Standalone)', '12.2.1.3.0')
해당 부분 그대로 유지한다.
서버 라이브러리 내에 domain 템플릿에서 버전명 수정이 되어있지 않음.
selectTemplate('Oracle HTTP Server (Standalone)', '12.2.1.3.0')
loadTemplates()
cd('SystemComponent/ohs1')
set('Name','comp1')
cd('/SecurityConfiguration/base_domain')
set('NodemanagerUsername','admin')
set('NodemanagerPasswordEncrypted','admin1234')
cd('/')
writeDomain('/app/ohs/ohs_12213/domains/ehc_domain/')
closeTemplate()
exit()
도메인 구성 명령어
아래 디렉토리로 이동
{OHS_HOME}/oracle_common/common/bin
아래 명령어 실행
./wlst.sh /app/ohs/install_files/domain.py
#. OHS 서버 기동 및 정지 - Nodemanger
서버 인스턴스 기동/정지를 관리하는 Nodemanager를 우선 실행해야 한다.
{DOMAIN_HOME}/bin/startNodeManager.sh 로 실행.
실행 후 CTRL+C 로 빠져나오면 노드매니저가 함께 종료되기 때문에
실행 명령어 뒤에 & 를 붙여 백그라운드에서 동작하도록 해야 한다.
아래와 같이 별도 스크립트를 생성하여 기동 및 정지를 관리하면 편리하다.
startNode.sh (NodeManager 기동)
./bin/startNodeManager.sh &
stopNode.sh (NodeManager 정지)
./bin/stopNodeManager.sh
#. OHS 서버 기동 및 정지 - Component
component 기동 및 정지의 경우
{DOMAIN_HOME}/bin 디렉토리 하위의
startComponent.sh 및 stopComponent.sh 로 실행한다.
기동 시 password 입력 창이 출력되는데,
storeUserConfig 옵션을 포함하면 최초 입력 이후에는 password 입력이 필요하지 않음.
아래와 같이 서버 기동 명령어 스크립트를 작성한다
startComp.sh (서버 기동)
./bin/startComponent.sh {INSTANCE_NAME} storeUserConfig
서버 종료 명령어는 아래와 같다.
stopComp.sh (서버 정지)
./bin/stopComponent.sh {INSTANCE_NAME}
#. 서버 프로세스 확인 스크립트
wlst 를 사용하여 서버 프로세스가 정상적으로 기동 중인지 확인 가능하다.
아래의 두 개 스크립트 생성 후,
status.sh 을 실행하여 확인한다.
status.py
nmConnect('username','password','127.0.0.1','5556','domain명')
nmServerStatus('인스턴스명',serverType='OHS')
exit()
=================================================================
예시
nmConnect('admin','admin1234','127.0.0.1','5556','ehc_domain')
nmServerStatus('comp1',serverType='OHS')
exit()
status.sh
/app/ohs/ohs_12214/oracle_common/common/bin/wlst.sh status.py
#. 도메인 내에 컴포넌트 추가
add_comp.py 스크립트를 생성한다.
readDomain('ohs/ohs12.2.1.4/domains/ehc_domain')
cd('/')
create('comp2', 'SystemComponent')
cd('/SystemComponent/comp2')
cmo.setComponentType('OHS')
# configure OHS instance that was created
cd('/OHS/comp2')
cmo.setAdminHost('127.0.0.1')
cmo.setAdminPort('29999')
cmo.setListenPort('27777')
cmo.setSSLListenPort('24443')
# update the domain
updateDomain()
closeDomain()
컴포넌트 추가 명령어
아래 디렉토리로 이동
{OHS_HOME}/oracle_common/common/bin
아래 명령어 실행
./wlst.sh /app/ohs/install_files/add_comp.py
(2023/04/13 작성)
[midadm@keuangkuo install_files]$ cat add_comp.py
readDomain('/app/ohs/ohs_12214/domains/test_domain')
cd('/')
create('comp2', 'SystemComponent')
cd('/SystemComponent/comp2')
cmo.setComponentType('OHS')
# configure OHS instance that was created
cd('/OHS/comp2')
# update the domain
updateDomain()
closeDomain()
---------------------------------------------------------
[midadm@keuangkuo install_files]$ cat delete_comp.py
readDomain('/app/ohs/ohs_12214/domains/test_domain')
cd('/')
# OHS Component name(ex. web2)
delete('comp2', 'SystemComponent')
updateDomain()
closeDomain()
---------------------------------------------------------
아래 작업들을 추가로 해 주어야 완전히 삭제된다.
1. {DOMAIN_HOME}/config/config.xml 에서 컴포넌트 정보 삭제 확인
2. {DOMAIN_HOME}/system_components/OHS/{컴포넌트명} 디렉토리 삭제
3. {DOMAIN_HOME}/servers/{컴포넌트명} 디렉토리 삭제
4. {DOMAIN_HOME}/config/fmwconfig/components/OHS/{컴포넌트명} 디렉토리 삭제
#. OHS Config 설정 시 주의사항
OHS12c의 경우 httpd.conf를 통해 configuration을 관리한다
httpd.conf는 총 두 곳에 존재한다.
1. Staging Directory
{DOMAIN_HOME}/config/fmwconfig/components/OHS/{인스턴스명}
2. Runtime Directory
{DOMAIN_HOME}/config/fmwconfig/components/OHS/instances/{인스턴스명}
config 변경 시에는
반드시 Staging Directory 에서 작업해야 한다.
서버 기동 시
Staging Directory 내의 파일이 Runtime Directory 측으로 copy 되기 때문이다.
#. ErrorLog 및 AccessLog rotation 설정
Error Log 설정
로그 파일 로테이션 설정은 아래 이미지 참고
LogLevel은 info로 수정
(설정예시)
ErrorLog "||${PRODUCT_HOME}/bin/rotatelogs /app/logs/ohs/error_log/error.log_%Y%m%d 86400 +540"
Access Log 설정
마찬가지로 로그 파일 로테이션 설정은 아래 이미지 참고
common 이 아닌 combined 설정이 권장된다
(설정예시)
CustomLog "||${PRODUCT_HOME}/bin/rotatelogs /app/logs/ohs/access_log/access.log_%Y%m%d 86400 +540" combined
#. 보안취약점 조치
아래 글 참고
https://hyuunchul.tistory.com/289