IT Japan

Redmine과Git의 이행 본문

IT/인프라

Redmine과Git의 이행

swhwang 2017. 5. 26. 11:49
반응형

Redmine과Git의 이행

Redmine과 Git이행개요
Redmine과 GIT의 이행개요는 하기와 같다.

작업서버

作業内容

현행 서버

Mysql의 데이터백업

Redmine의 파일 백업

신규 서버

Alminium의 인스톨

Mysql의 데이터 리스토어

Redmine의 파일을 리스토어

RedmineDB의 마이그레이션

Redmine플러그인의 마이그레이션

GIT의 이행


Redmine의 이행(현행 서버상에서 작업)

Mysql백업

# mysqldump -u alminium alminium -palminium > /tmp/alminium.dump

※Alminum의 초기 계정/패스워드:alminium/alminium
※Alminum의 초기 DB명:alminium
※백업 장소:/tmp/alminium.dump

Redmine의 파일 백업

# cd /opt/alminium/
# tar cvf /tmp/alminium_files.tar files/
# tar cvf /tmp/alminium_public.tar public/


Mysql백업파일과 Redmine파일의 전송
FTP.SCP등 환경에 맞추어、신규서버에 위에서 백업한 파일을 전송한다.

이번은 신규 서버의 /tmp디렉토리에 전송한 전제로, 설명을 한다.

Redmine의 이행(신규 서버상에서 작업)

Alminium의 인스톨
신규 서버 측에 Redmine 설치한다. 여기에서는 Redmine 외에 Git을 설치할 수 Alminium를 설치한다. 

Mysql의 데이터 리스토어
alminium데이터베이스 재작성
Alminium에서 설치 한 경우 Alminium의 DB가 이미 작성되어 있기 때문에 삭제 한 후 다시 작성한다.

# mysql -u root -p 
drop database alminium;
create database alminium DEFAULT CHARACTER SET utf8;

alminium 데이터베이스의 리스토어

# mysql -u root -p alminium < /tmp/alminium.dump


※DB서버를 변경하는 경우(172.20.1.205)

# vi /opt/alminium/config/database.yml
production:
  adapter: mysql2
  database: alminium
  host: 172.20.1.205
  username: alminium
  password: alminium
  encoding: utf8


Redmine의 파일 리스토어

# /etc/init.d/httpd stop
# rm -rf /opt/alminum/files
# cd /opt/alminium/
# tar xvf /tmp/alminium_files.tar
# tar xvf /tmp/alminium_public.tar


Redmine의 마이그레이션
RedmineのDB의 DB마이그레이션
rake db:migrate를 실행해서, 새롭게 테이블과 컬럼이 추가된다.

# cd /opt/alminium
# bundle exec rake db:migrate RAILS_ENV=production


Redmine의 플러그인의 마이그레이션

# bundle exec rake redmine:plugins:migrate RAILS_ENV=production


Cache와 세션의 클리어

bundle exec rake tmp:cache:clear
bundle exec rake tmp:sessions:clear


■Apache재기동

# /etc/init.d/httpd restart


Git의 이행

tar명령어로 대상의 GIT 리포지터리를 아카이브해서, 새로운 서버에 전개하면 끝. alminium로 인스톨된 경우는「/var/opt/alminium/git/」이하에 있는 디렉토리를 이행해주십시요.

 Git 이행개요
※아카이브 파일로 마이그레이션 한 경우 다음 단계는 필요하지 않습니다.

신규 서버에서 저장소의 초기화
· 일시 보관 서버에서 저장소의 복제 취득
· 취득한 저장소의 복제 원본 정보를 삭제
신 서버의 저장소를 업데이트


환경 정보

이행전 Git서버

10.1.1.151

이행후 Git서버

172.20.1.207

리포지터리명

cloud_base

유저명

user01

신규 서버에 리포지터리의 초기화

# mkdir cloud_base
# git init --bare cloud_base
# chown apache:apache -R cloud_base

※디렉토리는 이하 전부를 HTTPD의 실행유저를 소유자로 한다.

일시보관서버에 리포지터리의 클론 취득

$ cd work
$ git clone --mirror http://user01@10.1.1.151/git/cloud_base

※work는 작업 디렉토리

취득한 리포지터리의 클론의 원정보를 삭제

$ cd cloud_base.git
$ git remote
$ git remote rm origin
Note: A non-remote branch was not removed; to delete it, use:
  git branch -d master


이행 서버에 업

$ git config --global http.sslVerify false
$ git push --all https://user01@172.20.1.207/git/cloud_base


반응형
Comments