본문 바로가기
툴-레드마인, MANTIS 등

Redmine 초간단 Multi instance 방법

by 해피비(Happy plan B) 2014. 3. 19.
반응형

퍼옵니다.(출처는 하단에 표기)

 

 

 

지금 운영중인 Redmine 사이트(http://x10.mine.nu/redmine)에 

테스트와 기타(?) 목적을 분리해서 별도로 운영하고 싶어졌다.

테스트 프로젝트는 주로 플러그인을 테스트 하기 위한 목적으로 사용했었는데

아무래도 라이브와 같이 사용하다 보니 약간(?)의 문제점이 있었다.

 

가장 간단한 방법은 아래1, 2와 같다. 

 

Case 1


  Case 2

 

Case 2의 장점은 여러 설정으로 플러그인 등을 테스트 해볼 수 있을것이다.

 

하지만 매번 업그레이드 때마다 2개의 로컬 사이트를 업그레이드 하고, 

설정을 변경하는게 쉽지는 않을 듯 하여 아래 방법을 알아봤다.

 

 

 

딱히 메뉴얼 등에 나온 방법은 없었다.

그 동안 설정 등을 하면서 눈 여겨 봐왔던 설정 파일등을 직접 건드려 보기로 했다.

미리 말하지만 지금 하는게 정답은 아니지만 어느정도 해결을 햇으니 참고하길 바란다.

마지막 처리를 완료하는 과정까지 정리했으니 도움이 될듯 하다.

 

 

1. config/database.yml

해당 파일은 redmine 인스턴스가 어떤 db와 어떤 adapter로 연결할지를 설정하는 파일이다.

그래서 해당 파일의 production 후에 아래와 같이 production4test 항목을 추가 했다.

username과 password는 production과 동일하게 했다.

그래야 두개의 db 접속을 쉽게 할 수 있었다.

 

production:

  adapter: mysql2

  database: redmine

  host: 127.0.0.1

  port: 33**

  username: ******

  password: **********

  encoding: utf8

 

production4test:

  adapter: mysql2

  database: redmine4test

  host: 127.0.0.1

 

  port: 33**

  username: ******

  password: **********

  encoding: utf8

 

 


2. database 생성
1의 설정에 있는 redmine4test 용 db를 생성하고 기존 db의 내용을 그대로 복원했다.
나중에 production에서 사용하지 않는 프로젝트를 삭제/잠금 시키고,
production4test에서 사용할 프로젝트를 별도로 만들지 않기 위해서 였다.
또한 db 생성 후에는 모든 사이트에서 접속할 수 있도록 mysql에서 아래와 같이 권한을 줘야 한다.
use mysql;
grant all privileges on redmine4test.* to 'redmine'@'%';
flush privileges;
redmine4test: database 이름
redmine : 사용자 계정


3. config/configuration.yml

 

 

해당 파일은 이메일 등 여러 설정을 제어 할 수 있고, 

특정 환경(production, test, ...)에 맞춘 설정도 가능하다. 

본인은 default 섹션에 대부분 설정을 해뒀고,

secret_token 부분을 맞추면 load balancing을 할 때 사용할 수 있는데

한 사이트에서 포트만 틀리게 해서 2개의 인스턴스를 돌릴 예정이라서 이 부분은 

default에 넣어서 통일 시켰다.

 

 

4. production4test.rb 환경설정 파일 복사

이렇게 한 뒤 thin으로 테스트를 했더니 아래와 같은 메세지가 나왔다.

 

>thin start -e production4test -p 3002 -c "D:\CI\Redmine" --prefix /redmine

>> Using rack adapter

You did not specify how you would like Rails to report deprecation notices for you

r production4test environment, please set config.active_support.deprecation to :lo

g, :notify or :stderr at config/environments/production4test.rb

D:/CI/Ruby/lib/ruby/gems/1.9.1/gems/activesupport-3.2.12/lib/active_support/depend

encies.rb:251:in `block in require': iconv will be deprecated in the future, use S

tring#encode instead.

>> Thin web server (v1.5.0 codename Knife)

>> Maximum connections set to 1024

>> Listening on 0.0.0.0:3002, CTRL+C to stop

 

production4test란 환경이 없으니깐 config/environments/production4test.rb 경로에 넣어달라는거다.

config/environments/production.rb 파일을 production4test.rb로 복사해서 넣는다.

 

 

5. Thin 이나 WebRick 등 redmine 서비스 web server에서 포트를 변경하여 테스트 해본다.

본인은 기존에 3001 포트로 서비스 중이었는데, 

아래처럼 thin으로 3002 포트로 production4test 사이트를 테스트 했다.

thin start -e production4test -p 3002 -c "D:\CI\Redmine" --prefix /redmine

 

정상적으로 잘 작동했다.

 

다만 로깅을 기존 production.log파일과 동일한 파일로 하여 문제 발생시 

어떤 로그인지 확인할 수 없어서 4번 단계에서 추가한 

production4test.rb 파일의 끝 부분에 아래처럼 추가했다.

 

 

  config.active_support.deprecation = :log

 

  config.logger = Logger.new('.\log\production4test.log', 5, 1024000)

  config.logger.level = Logger::ERROR

end

약 100mb 정도 하는 ruby 인스턴스가 2개가 작동한다.
사용 메모리 용량이 늘어나긴 했지만 라이브와 테스트를 별도로 운영하고 싶다면 
위의 방법도 나쁘진 않다.


앞으로 할 일은 테스트 url로 접속시 테스트 포트로 redirection 시키는 것이다.
기존 IIS에서 잘 사용했었는데 서버 이전 후에 rewrite 가 되지 않아서 포트가 공개 되버린다.

앞으로 Redmine 테스트 접속 사이트는  http://x10.mine.nu/redminetest로 하길 바란다.

 

 

출처:http://blog.naver.com/PostView.nhn?blogId=xyz37&logNo=50164082701

 

 

반응형

댓글