Table of Contents |
---|
Info |
---|
본 설치 가이드는 Jira software 8.13.0 기준으로 작성 되었습니다. |
사전 준비
...
NFS 설정 - NFS 설정 참조
...
JIRA Software 설치 후 인스톨 폴더와 home 폴더를 서버 2번으로 복사
JIRA Software 서비스 중지
Code Block |
---|
./stop-jira.sh |
인스톨 폴더와 home 폴더 백업
Code Block |
---|
cd /opt/atlassian/postgres
tar cvf jira.tar jira
cd /home/atlassian/postgres
tar cvf jira-home.tar jira |
백업한 두 파일을 JIRA Server2에 이동, JIRA Server1번과 동일한 위치에 압축해제
Code Block |
---|
cd /opt/atlassian
tar xvf jira.tar
cd /home/atlassian
tar xvf jira-home.tar |
JIRA 서비스 실행하여 정상적으로 접속하는지 확인
압축해제 후 서비스만 실행하여 정상 실행 여부 확인
정상 접속 확인 후 서비스 중지
JIRA Data Center 설정
1. JIRA Server 1 설정
Apache Load Balancer 설정(root 계정 - Ubuntu 설정)
Code Block language bash $ cd /etc/apach2/sites-available $ sudo a2enmod headers proxy_balancer proxy_http proxy lbmethod_byrequests slotmem_shm ## 모듈 활성화 $ vi dcjira.twoseed.co.kr.conf ## 원하는 이름으로 .conf 파일 생성 --------------------------- <VirtualHost *:80> ServerName dcjira.twoseed.co.kr Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED <Proxy balancer://jiracluster> BalancerMember http://***.***.48.220:7180 route=node1 BalancerMember http://***.***.124.236:7180 route=node2 Order Allow,Deny Allow from dcjira.twoseed.co.kr Satisfy Any </Proxy> ProxyPass / balancer://jiracluster/ stickysession=ROUTEID </VirtualHost> ---------------------------- $ sudo a2ensite dcjira.twoseed.co.kr.conf ## 사이트 활성화 $ sudo service apache2 reload ## apach 서버 다시 시작
JIRA Data Center 설정
1. JIRA node1 설정
새 인스턴스 설치 - Jira Linux Installation 참조
Code Block jira Data Center 설치 정보 node1 : twoseed-server(ubuntu) node2 : twoseed-centos install path : /opt/datacenter/atlassian/jira local home path : /home/datacenter/atlassian/jira shared home path : /home/share/atlassian/jira port : 7180/7105 db : dcjiradb/dcjiradbuser/dcjiradbuser service ID : twoseed
인스턴스 종료
Code Block language bash $ cd /opt/datacenter/atlassian/jira/bin $ ./stop-jira.sh
Apache 연결 정보 입력
Code Block language bash $ cd /opt/datacenter/atlassian/jira/conf $ vi server.xml ## proxyName, proxyPort, scheme 값 입력 ''' <Connector port="7180" relaxedPathChars="[]|" relaxedQueryChars="[]|{}^\`"<>" maxThreads="150" minSpareThreads="25" connectionTimeout="20000" enableLookups="false" maxHttpHeaderSize="8192" protocol="HTTP/1.1" useBodyEncodingForURI="true" redirectPort="8443" acceptCount="100" disableUploadTimeout="true" bindOnInit="false" proxyName="dcjira.twoseed.co.kr" proxyPort="80" scheme="http"/> '''
공유폴더에 아래 폴더 복사
data, plugins, logos, import, export, caches
Code Block language bash cp -R /home/datacenter/atlassian
...
/jira/{data,plugins,logos,import,export,caches} /home/share/
...
atlassian/jira
JIRA 홈디렉토리에 파일 생성 - 공유폴더와 node 아이디 설정
...
Code Block language
...
bash
...
$
...
cd /home/datacenter/atlassian/jira $ vi cluster.properties --------------------------- jira.node.id = node1
...
2. JIRA Server2 설정
JIRA 홈디렉토리에 파일 생성 - 공유폴더와 node 아이디 설정
vi cluster.properties
...
language | actionscript3 |
---|
...
jira.shared.home = /home/share/atlassian/jira ehcache.listener.hostName = twoseed-server ---------------------------
Expand | |||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |||||||||||||||||||||||||||||
|
Install, Home directory 백업 및 node2에 복사
Code Block language bash $ cd /opt/datacenter/atlassian $ tar cvfz jira_install.tgz jira/ $ cd /home/datacenter/atlassian $ tar cvfz jira_home.tgz jira/
2. JIRA node2 설정
node1의 백업 파일 동일 위치에 압축 풀기
Code Block language bash $ cd /opt/datacenter/atlassian $ tar xvfz jira_install.tgz $ cd /home/datacenter/atlassian $ tar xvfz jira_home.tgz
JIRA 홈디렉토리 파일 수정 - 공유폴더와 node 아이디 설정
Code Block language bash $ cd /home/datacenter/atlassian/jira $ vi cluster.properties --------------------------- jira.node.id = node2 jira.shared.home = /home/share/
...
atlassian/jira ehcache.listener.hostName = twoseed-centos ---------------------------
3. JIRA
...
node1 과 JIRA
...
node2 인스턴스 실행
JIRA Server1 서비스 시작
JIRA Server1 URL 접근하여 Data Center 라이선스 입력 후 서비스 재시작
JIRA Server2 서비스 시작node1 인스턴스 시작
Code Block language bash $ cd /opt/datacenter/atlassian/jira/bin $ ./start-jira.sh
JIRA node2 인스턴스 시작
Code Block language bash $ cd /opt/datacenter/atlassian/jira/bin $ ./start-jira.sh
Apache 서버에 적용한 URL 접속
Administrator > System > Clustering 에서 각 node 상태 확인 가능
Trouble Shooting
클러스터링에서 Node가 하나만 올라와 있는 경우
atlassian-jira.log에서 아래와 같이 에러 발생
Code Block |
---|
localhost-startStop-1 ERROR [c.a.jira.upgrade.PluginSystemLauncher] A fatal error occured during initialisation. JIRA has been locked.
com.atlassian.jira.InfrastructureException: Error occurred while starting Plugin Manager. Unable to resolve component: interface com.atlassian.plugin.SplitStartupPluginSystemLifecycle
...
at com.atlassian.jira.cluster.distribution.JiraCacheManagerPeerProvider.lambda$wrapCachePeer$4(JiraCacheManagerPeerProvider.java:112)
Caused by: java.rmi.NoSuchObjectException: no such object in table
at sun.rmi.transport.StreamRemoteCall.exceptionReceivedFromServer(StreamRemoteCall.java:276)
at sun.rmi.transport.StreamRemoteCall.executeCall(StreamRemoteCall.java:253)
at sun.rmi.server.UnicastRef.invoke(UnicastRef.java:162)
at net.sf.ehcache.distribution.RMICachePeer_Stub.getName(Unknown Source) |
setenv.sh 에 아래 구문 추가
-Djava.rmi.server.hostname=<호스트네임(ehcache.listener.hostName)과 동일하게 입력>
...