본문 바로가기

Applications

BitNami Redmine Stack upgrade(1.3.0->2.2.2)

회사에서 형상관리도구와 같이 Redmine을 사용하고 있었다.

수동으로 설정하는 것이 번거로워 BitNami 네이티브 인스톨러를 이용해서 설치를 했다.


처음 설치버전은 1.3.0.

현재 최신버전은 2.2.3로 어제 릴리즈 되었다. 아직 BitNami측에서는 2.2.2가 최신이다.


마이그레이션

이전 데이터가 없으면 지우고 다시 설치하면 업데이트 끝이지만, 데이터들이 들어가 있기 때문에 복잡해진다.

웹에서 검색해보니 몇가지 방법을 정리해놓은 글이 있었다.

 - 공식사이트: How to backup and update the BitNami Redmine Stack

 - 채윤이네집: [CentOS] bitnami Redmine stack 업그레이드기 (1.2.x -> 2.0.x) / 실패기
                                   bitnami Redmine stack 2.0.3-1 -> 2.2.0-0 upgrade


추가적으로 Redmine 공식사이트에서 업그레이드하는 방법에 대한 글은 아래와 같다.

 - RedmineUpgrade for upgrading instructions (2.x) / 1.x


공식사이트에 가이드라인이 있기는 하지만 채윤이네집 블로그에 잘 정리되어 있어서 따라하면 될 것 같다.
참고로 나의 경우는 Windows Server 운영체제를 사용한다.


Step by step

참고로 1.3.0 BitNami Redmine Stack은 E:\BitNami Redmine Stack 에 설치되어 있었다.
업그레이드와 마이그레이션 작업에 대략 1시간 정도 걸렸다.(블로그에 기록하는 것 때문에 오래 걸렸을 지도 모른다.)

1. 새 버전의 BitNami Redmine Stack을 준비한다.

  bitnami-redmine-2.2.2-0-windows-installer.exe

2. MySQL 계정 정보 확인

  E:\BitNami Redmine Stack\apps\redmine\config\database.yml 파일에 친절하게 적혀있다.

3. MySQL 데이터 백업

C:\> e:

E:\>cd E:\BitNami Redmine Stack\mysql\bin

E:\BitNami Redmine Stack\mysql\bin>mysqldump -u bitnami -p bitnami_redmine > bitnami_redmine-20130218.sql

Enter password: **********

4. 폴더를 통째로 다른곳에 복사

 E:\BitNami Redmine Stack -> F:\BitNami Redmine Stack
(참고로 디스크 공간이 충분해야 한다..나는 1.06GB 정도였다.)

5. 기존 BitNami Redmine 스택 제거

 시작 > 프로그램 > BitNami Redmine 스택 > BitNami Redmine 스택 제거

 질문: BitNami Redmine 스택 및 해당 모듈을 모두 제거하겠습니까? : 예(Y)

 질문: 저장된 데이터도 모두 삭제하시겠습니까? : 예(Y)

6. bitnami-redmine-2.2.2-0-windows-installer.exe 를 이용해서 새 버전 설치

 Language Selection : Korean - 한국어

 설치 경로 : E:\BitNami\redmine-2.2.2-0

 관리자 계정 : user / useradmin / ...

 기본 데이터 설정 시 사용할 언어를 선택하세요: 한국어

 SMTP 설정: 사용하시겠습니까? (체크) / 기본 이메일 서비스 제공자: 사용자 정의

 기본 메일 서버 설정: redmine / 1 / 1 / localhost / 25 / false  (Configuration.yml에 저장된다)

 BitNami 클라우드 호스팅에 대해 살펴보기 : 체크해제

 Redmine 어플리케이션 구동 (체크) : 마침

 http://localhost/ 로 브라우저 창이 뜬다.

7. 새로 설치된 Redmine가 동작하는지 확인하고 창을 닫는다.
 어짜피 MySQL 데이터가 복원되면 내용은 싹 바뀐다.


8. MySQL 계정 정보 확인

  E:\BitNami\redmine-2.2.2-0\apps\redmine\htdocs\config\database.yml 파일에 친절하게 적혀있다.


9. MySQL 콘솔 접속

 데이터베이스를 마이그레이션 할 것이라 초기값으로 들어가 있는 데이터는 drop > create 해준다.

E:\BitNami\redmine-2.2.2-0\mysql\bin>mysql -u bitnami -p

Enter password: **********

...

mysql> drop database bitnami_redmine;

Query OK, 48 rows affected (0.05 sec)


mysql> create database bitnami_redmine;

Query OK, 1 row affected (0.00 sec)


mysql> quit

Bye


9. MySQL 데이터 복원

 1. 백업 데이터 E:\BitNami\redmine-2.2.2-0\mysql\bin 로 이동
      <- F:\BitNami Redmine Stack\mysql\bin\bitnami_redmine-20130218.sql

 2. 복원 명령

E:\BitNami\redmine-2.2.2-0\mysql\bin>mysql -u bitnami -p bitnami_redmine < bitnami_redmine-20130218.sql

Enter password: **********


10. MySQL 데이터베이스 마이그레이션

 1. 시작 > 프로그램 > BitNami Redmine Stack > BitNami Redmine Stack 사용

 2. 아래 명령 수행

E:\BitNami\redmine-2.2.2-0>cd E:\BitNami\redmine-2.2.2-0\apps\redmine\htdocs

E:\BitNami\redmine-2.2.2-0\apps\redmine\htdocs>rake db:migrate RAILS_ENV=production

...

rake redmine:plugins:migrate RAILS_ENV=production

(얘는 반응이 없음, 아마도 플러그인이 설치가 안되어 있어서?)


11. 첨부파일 복사 (필수)

  원본: F:\BitNami Redmine Stack\apps\redmine\files

  대상: E:\BitNami\redmine-2.2.2-0\apps\redmine\htdocs\files


12. 이메일 설정확인 (필수)

 메일이 안보내져서 보니 제대로 설정이 안되어 있었다.

  원본: F:\BitNami Redmine Stack\apps\redmine\config\configuration.yml

  대상: E:\BitNami\redmine-2.2.2-0\apps\redmine\htdocs\config\configuration.yml

~~~ 아래는 선택적으로 수행한다.


12. 정적 페이지 자료 복사 (필요시에만)

  원본: F:\BitNami Redmine Stack\apps\redmine\files

  대상: E:\BitNami\redmine-2.2.2-0\apps\redmine\htdocs\files


13. 간트 차트 설정 : 한글이 깨지는 사람만

 Redmine 2.2.2 - 간트차트 한글깨짐 해결 참고...


14. 프록시-리버시프록시 설정 (Redmine을 프론트 엔드로 사용하는 사람만)

  설정파일 복사

  원본: F:\BitNami Redmine Stack\apps\collabNet

  원본: F:\BitNami Redmine Stack\apps\nexus

  대상: E:\BitNami\redmine-2.2.2-0\apps


 아파치 설정파일 추가

  대상: E:\BitNami\redmine-2.2.2-0\apache2\conf\httpd.conf

Include "E:/BitNami/redmine-2.2.2-0/apache2/conf/fastcgi.conf"

Include "E:/BitNami/redmine-2.2.2-0/apps/phpmyadmin/conf/phpmyadmin.conf"

Include "E:/BitNami/redmine-2.2.2-0/apps/redmine/conf/redmine.conf"

Include "E:/BitNami/redmine-2.2.2-0/apps/collabNet/collbNetEdge.conf"

Include "E:/BitNami/redmine-2.2.2-0/apps/nexus/conf/maven.conf"


설정을 바꾼후 BitNami Redmine Stack 서비스 정지 / 구동을 해준다.
 재 구동 이후에 문제가 있으면 E:\BitNami\redmine-2.2.2-0\apache2\logs 폴더의 error.log를 확인해본다.


15. FTP 서비스

 나는 업무일지 경로가 Redmine의 E:\BitNami\redmine-2.2.2-0\apps\redmine\htdocs 이다.

 실행 > inetmgr > 홈 디렉터리 탭 > 로컬경로: 

 전: E:\BitNami Redmine Stack\apache2\htdocs\biz

 후: E:\BitNami\redmine-2.2.2-0\apache2\htdocs\biz

 


(아래는 테스트를 위해 진행한 리허설을 정리한 것이고...)

이주 서버 준비

회사에서는 가상OS를 이용해서 새로운 OS를 만드는 것이 어렵지 않았다.

전략은 새 서버에 새 버전을 설치 후, 데이터를 옮기고 그 OS를 새로운 형상관리서버로 이용을 하는 것이다.

이주를 하다가 실패를 해도 이전 데이터는 기존의 가상OS에 있기 때문에 서비스는 계속 이루어질 수 있다.
또한 형상관리 서버는 내부에서 IP가 아닌 도메인주소로 접근하기 때문에 IP가 바뀌어도 도메인서버의 테이블만 갱신해주면 되니 편하다. 

2.2.3 설치

2.2.3이 어제 갓 나오다보니 아직 BitNami로 패키지화가 되지 않았다.
우선은 2.2.2로 마이그레이션 테스트를 진행하기로 했다.

서버 설정 및 커스터마이징 작업

레드마인에서 이슈가 발생했을 때 이메일로 통지하는 기능을 사용하고 있었는데 IIS의 SMTP 서비스를 이용했다.
또한 Subversion은 CollabNet의 SubversionEdge를 이용하고 있었고,
Maven 지역 저장소는 Nexus를 이용하고 있었다.

하늘색으로 양쪽으로 화살표는 프록시/리버스프록시로 연결되어 있는 것을 나타낸다.



데이터 백업

전략은 새 서버에 새 버전을 설치 후, 데이터를 옮기고 그 OS를 새로운 형상관리서버로 이용을 하는 것이다.

이주 서버에 데이터 복구

전략은 새 서버에 새 버전을 설치 후, 데이터를 옮기고 그 OS를 새로운 형상관리서버로 이용을 하는 것이다.

동작확인

이상하게 ruby 1.8.7로 패키징 된  Redmine 1.3.0이 1.9.3p194로 패키징된 Redmine 2.2.2 보다 CPU 사용량이 적었다.

왼쪽이 2.2.2 / 오른쪽이 1.3.0


CPU사용량을 확인해보니 2.2.2의 ruby.exe가 5%씩 사용(load balance되어 있다)하고 있어서 10%를 차지하고 있던 것이다.




'Applications' 카테고리의 다른 글

앞짧은꾸밈음 코드 만들기  (0) 2013.05.18
Redmine 2.2.2 - 간트차트 한글깨짐 해결  (0) 2013.02.15
google.com - 이스턴에그  (0) 2013.02.07
HTML5 웹브라우저들  (0) 2013.01.24
Tools::diff 도구  (0) 2013.01.20