Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents

...

개요

Crowd Server의 데이터를 Crowd Data Center로 마이그레이션 하는 방법에 대해 설명합니다.

...

Info

참고

사전 준비

  • 기존 Crowd Server 인스턴스에서 Crowd Data Center 활성화

    • Crowd 데이터 센터는 Crowd 3.0 이상에서 사용할 수 있습니다. 해당 버전이 없을 경우 Crowd 인스턴스를 설치하거나 업그레이드 해야 합니다.

  • Crowd Data Center 라이센스

    • Crowd Data Center 구성을 위한 Crowd Data Center 라이센스가 필요합니다.

    1. 설정(⚙)으로 이동 > Licensing 에서 라이센스 키를 입력합니다. 성공하면 데이터 센터 사용 여부를 확인할 수 있지만, 사용하기 전에 재시작 해야합니다.

    2. Shared home directory를 설정하기 위해 Crowd를 종료합니다.

공유 디렉토리 설정

Crowd Data Center를 사용하려면 Crowd Data Center를 실행하는 모든 컴퓨터에서 <CROWD HOME>/shared 디렉토리를 읽고 쓸 수 있어야 합니다.

Crowd Server 설치 시 <CROWD HOME>/shared가 일반 홈 디렉토리로 생성됩니다.

Crowd Data Center를 사용하려면 :

  1. Crowd Data Center 모두 중지Server의 <CROWD_SERVER_HOME>/shared/

  2. Crowd 홈 디렉토리를 백업

  3. 네트워크에 엑세스 할 수 있는 공유 디렉토리를 준비

    • 예제에서는 /home/share를 공유 디렉토리러 설정

  4. 준비한 <CROWD HOME>/shared를 공유 디렉토리로 이동

    Code Block
    mv <CROWD_HOME>/shared /home/share/atlassian/crowd
  5. 이동한 공유 디렉토리를 가리키도록 심볼릭 링크를 생성합니다.

    Code Block
    languagebash
    cd <CROWD_HOME>
    ln -s /home/share/atlassian/crowd/shared/ shared
  6. Server의 <CROWD HOME>/shared/crowd.cfg.xml 정보를 Data Center의 <CROWD_DATA_CENTER_HOME>공유 디렉토리/home/share/atlassian/crowd/shared/crowd.cfg.xml로 복사

    Code Block
    languagebash
    cat /home/share/atlassian/crowd/shared/crowd.cfg.xml
    Code Block
    languagexml
    ...
      <properties>
        ...
        <property name="hibernate.connection.driver_class">org.postgresql.Driver</property>
        <property name="hibernate.connection.password">crowddbuser</property>
        <property name="hibernate.connection.url">jdbc:postgresql://14.36.48.220:5432/crowddb?reWriteBatchedInserts=true</property>
        <property name="hibernate.connection.username">crowddbuser</property>
        ...

...

  1. Crowd Data Center 모두 시작

Crowd 설정

  1. 설정 > Trusted Proxy Servers > Trusted proxy servers > Apache 서버 추가

  2. Base URL 변경

    • 로드밸런서 URL을 명시

클러스터 추가

  1. 신규 노드에서 Master Node의 Installation 디렉토리 복사하여 설치

  2. crowd-init.properties 에서 Crowd Home 설정

    Code Block
    vi <CROWD HOME>/crowd-webapp/WEB-INF/classes/crowd-init.properties
    Code Block
    languagebash
    # Crowd Home
    crowd.home=/home/datacenter/atlassian/crowd
  3. 위 내용을 참고하여 Shared 디렉토리 구성

  4. openidserver.xml 파일 삭제

    Code Block
    cd /opt/datacenter/atlassian/crowd/apache-tomcat/conf/Catalina/localhost
    rm openidserver.xml
    • 해당 파일은 첫 번째 노드에서만 활성화 되어야 함.

Apache 구성

Code Block
<VirtualHost *:80>
        ProxyRequests off
 
        ServerName dccrowd.twoseed.co.kr
        
        Header add Set-Cookie "ROUTEID=.%{BALANCER_WORKER_ROUTE}e; path=/" env=BALANCER_ROUTE_CHANGED
        <Proxy balancer://crowdcluster>
                # Crowd node 1 (make sure there are no trailing slashes after port number)
                BalancerMember http://14.36.48.220/:7195 route=node1
                # Crowd node 2 (make sure there are no trailing slashes after port number)
                BalancerMember http://175.197.124.236:7195 route=node2
 
                # Security "we aren't blocking anyone but this the place to make those changes
                Order Deny,Allow
                Deny from none
                Allow from all
 
                # Load Balancer Settings
                # We are not really balancing anything in this setup, but need to configure this
                ProxySet lbmethod=byrequests
                ProxySet stickysession=ROUTEID
        </Proxy>
 
        # Here's how to enable the load balancer's management UI if desired
        <Location /balancer-manager>
                SetHandler balancer-manager
 
                # You SHOULD CHANGE THIS to only allow trusted ips to use the manager
                Order deny,allow
                Allow from all
        </Location>
 
        # Don't reverse-proxy requests to the management UI
        ProxyPass /balancer-manager !
        # Reverse proxy all other requests to the Crowd cluster
        ProxyPass / balancer://crowdcluster/
        
        ProxyPreserveHost on
        ProxyPassReverse / balancer://mycluster/
</VirtualHost>