사전 준비
1. NFS 설정
NFS 설정 참조
2. Elasticsearch 설정
3. Apache Load Balancer 설정
(root 계정 - Ubuntu 설정)
$ cd /etc/apach2/sites-available $ sudo a2enmod headers proxy_balancer proxy_http proxy lbmethod_byrequests slotmem_shm ## 모듈 활성화 $ vi dcbitbucket.twoseed.co.kr.conf ## 원하는 이름으로 .conf 파일 생성 --------------------------- <VirtualHost *:80> ServerName dcbitbucket.twoseed.co.kr Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED <Proxy balancer://bitbucketcluster> BalancerMember http://***.***.48.220:6990 route=node1 BalancerMember http://***.***.124.236:6990 route=node2 </Proxy> ProxyPass / balancer://bitbucketcluster/ lbmethod=byrequests stickysession=ROUTEID ProxyPreserveHost On </VirtualHost> ---------------------------- $ sudo a2ensite dcbitbucket.twoseed.co.kr.conf ## 사이트 활성화 $ sudo service apache2 reload ## apach 서버 다시 시작
Bitbucket Data Center 설정
1. Bitbucket node1 설정
새 인스턴스 설치
Bitbucket Setup Wizard 실행
Bitbucket 서비스 계정 변경
$ cd /opt/datacenter/atlassian/ $ sudo chown -R twoseed:twoseed bitbucket $ cd /home/datacenter/atlassian/ $ sudo chown -R twoseed:twoseed bitbucket
Bitbucket 인스턴스 시작
$ cd /opt/datacenter/atlassian/bitbucket/bin/ $ ./start-bitbucket.sh
The Bitbucket webapp has been started. 메시지 출력 후 http://<server ip>:6990 접속
Language 및 Database 선택
“Test” 버튼 클릭하여 Database 연결 상태 확인 후 “Next” 클릭
MySQL 데이터베이스 엔진에서 부하가 높을 때 발생할 수 있는 고유한 교착 상태 때문에 현재로서는 Bitbucket Data Center에서 MySQL를 지원하지 않습니다.
Application Title, Base URL, License key 입력
Bitbucket Internal Admin 계정 생성
Internal Admin 계정이므로 정보 입력 후 “Go to Bitbucket” 버튼 클릭
공유폴더 설정
Bitbucket 인스턴스 종료
$ cd /opt/datacenter/atlassian/bitbucket/bin/ $ ./stop-bitbucket.sh
Home 디렉토리의 shared 폴더를 NFS 로 복사
$ cd /home/datacenter/atlassian/bitbucket/ $ mv shared /home/share/atlassian/bitbucket/ $ ln -sf /home/share/atlassian/bitbucket/shared shared
Node 설정
Node 이름 설정
$ cd /opt/datacenter/atlassian/bitbucket/bin/ $ vi _start-webapp.sh --------------------------- ... JVM_SUPPORT_RECOMMENDED_ARGS="-Dcluster.node.name=node1" ... ---------------------------
bitbucket.properties 파일에 Node 관련 설정 추가
$ cd /home/share/atlassian/bitbucket/shared $ vi bitbucket.properties -------------------------- # Use multicast to discover cluster nodes (recommended). hazelcast.network.multicast=false # If your network does not support multicast, you may uncomment the following lines and substitute # the IP addresses of some or all of your cluster nodes. (Not all of the cluster nodes have to be # listed here but at least one of them has to be active when a new node joins.) hazelcast.network.tcpip=true hazelcast.network.tcpip.members=***.***.48.220:5703,***.***.124.236:5701 # The following should uniquely identify your cluster on the LAN. hazelcast.group.name=Twoseed-cluster hazelcast.group.password=Twoseed-cluster --------------------------
Remote Elasticsearch 설정
$ cd /home/share/atlassian/bitbucket/shared $ vi bitbucket.properties -------------------------- plugin.search.elasticsearch.baseurl=http://***.***.48.220:6991/ ## Elasticsearch URL plugin.search.elasticsearch.username=twoseed ## buckler.yml에 지정한 username plugin.search.elasticsearch.password=admin ## buckler.yml에 지정한 password --------------------------
Install, Home directory 백업 및 node2에 복사
$ cd /opt/datacenter/atlassian $ tar cvfz bitbucket_install.tgz bitbucket/ $ cd /home/datacenter/atlassian $ tar cvfz bitbucket_home.tgz bitbucket/
Bitbucket 인스턴스 시작
$ cd /opt/datacenter/atlassian/bitbucket/bin/ $ ./start-bitbucket.sh --no-search ## 번들 Elasticsearch가 실행되지 않도록 옵션 추가
2. Bitbucket node2 설정
node1의 백업 파일 동일 위치에 압축 풀기
$ cd /opt/datacenter/atlassian $ tar xvfz bitbucket_install.tgz $ cd /home/datacenter/atlassian $ tar xvfz bitbucket_home.tgz
Node 이름 설정
$ cd /opt/datacenter/atlassian/bitbucket/bin/ $ vi _start-webapp.sh --------------------------- ... JVM_SUPPORT_RECOMMENDED_ARGS="-Dcluster.node.name=node2" ... ---------------------------
Bitbucket 인스턴스 시작
$ cd /opt/datacenter/atlassian/bitbucket/bin/ $ ./start-bitbucket.sh --no-search ## 번들 Elasticsearch가 실행되지 않도록 옵션 추가
Bitbucket Data Center 접속 확인
Apache 서버에 적용한 URL 접속
Administrator > System > Clustering 에서 각 node 상태 확인 가능
Add Comment