docker 기반 gitlab 백업해서 다른 서버로 이주하기

참고자료
https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/raketasks/backup_restore.md

$ docker exec -i -t gitlab bash

위 명령으로 docker 안으로 들어간다

$ sudo -u git -H bundle exec rake gitlab:backup:create RAILS_ENV=production

이렇게 하면 tar 파일이 하나 생긴다. 이 파일을 새로운 서버로 복사한다.
그리고 새로운 서버에 다시 docker기반 gitlab을 설치한다

이때 고생한게 있는데 mysql에서 my.cnf파일에서 localhost만 접속되게 하는 설정을 주석해야 한다
맨날 까먹어 ㅠ_ㅠ

새로 설치한 docker 안으로 들어간다

$ bundle exec rake gitlab:backup:restore RAILS_ENV=production

위 명령만 입력하면 복구 완료

Confluence 설치하기

Confluence 설치는 쉽기 때문에 딱히 문제는 없지만 설정을 주의해야할 부분이 있다.

JDBC 드라이버를 따로 받아서 Confluence 에 복사한 다음에 다시 실행시켜서 설치를 진행해야한다.

복사해야 하는 위치는 아래와 같다

$ cp mysql-connector-java-5.1.32-bin.jar /opt/atlassian/confluence/confluence/WEB-INF/lib

다음으로 confluence 데이터베이스를 MySQL에 만들어 줘야 하는데 타입을 utf8_bin으로 해준다

그리고 confluence 재시작 후 설치 과정 진행…

한글 깨짐을 막기 위해서는 Configure Database 항목에서

브라우저 URL뒤쪽에 &useUnicode=true&characterEncoding=utf8 를 붙이고 리프레쉬..

Database URL 에 아래 처럼 Unicode 항목 추가…


jdbc:mysql://localhost/confluence?sessionVariables=storage_engine%3DInnoDB&useUnicode=true&characterEncoding=utf8

colorgcc 와 ccache 같이 사용하기

1.
우선 ccache를 설치한다
sudo apt-get install ccache

2.
/usr/bin 디렉토리에다 colorgcc 펄 스크립트를 넣어준다
(스크립트 소스 : http://schlueters.de/colorgcc.1.3.2.txt)

3.
/usr/lib/colorgcc 라는 디렉토리를 하나 만들어준다
g++,gcc 같은 파일을 만들고 /usr/bin/colorgcc로 심볼릭 링크를 걸어준다

4.
/etc/colorgcc/ 폴더를 만들고 colorgccrc 파일을 넣어준다
(rc파일 소스 : http://schlueters.de/colorgccrc.txt)

5.
colorgccrc 파일의 29번 라인부터 아래 코드로 대체한다
g++: /usr/lib/ccache/bin/g++
gcc: /usr/lib/ccache/bin/gcc
c++: /usr/lib/ccache/bin/g++
cc: /usr/lib/ccache/bin/gcc
g77: /usr/lib/ccache/bin/g77
f77: /usr/lib/ccache/bin/g77
gcj: /usr/lib/ccache/bin/gcj

6.
/etc/bash.bashrc 파일에 아래 내용을 추가한다

# Make “g++” command call colorgcc
export PATH=”/usr/lib/colorgcc/bin:$PATH”

# Tell ccache to invoke compilers in /usr/bin
export CCACHE_PATH=”/usr/bin”

우분투에서 아파치 서버 설치후 나오는 경고

apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName
… waiting apache2: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName

이런 문구가 나오면, httpd.conf 파일에 아래 내용을 추가해준다

ServerName localhost

그리고 아파치 재시작

회사 서버에 gitlab 설치

꼬박 하루가 걸려서 회사 서버에 GitLab을 설치했다
사실 GitLab같은게 없는줄 알고 한번 만들어 보려고 했는데, 역시 없을리가;;
여튼 설치 난이도는 쉬운 편은 아니다,
루비 온 레일즈 패키지가 그렇듯 일반적인 패키지 설치랑은 좀 다른이유도 있고,
아직 설치 과정에 예외 상황이 자주 발생해서, 경험적 지식을 바탕으로 알아서 해결해야 한다 -_-
Stash 설치하는것은 정말 쉬웠는데,, 그냥 Git Manage Tool이 필요한게 목적이라면 Stash추천..(유료!)
여튼 설치하는 과정에서 도움이 되었던 자료를 좀 정리해서 혹시 나중에 설치할 때 고생하게 되면 참고해야 할 듯

고생1) 프로젝트의 SSH path가 잘못 되어서 clone이 안되는 이슈
https://github.com/gitlabhq/gitlabhq/issues/3686

아래 커멘드가 굉장히 유용했다!
# sudo -u git -H /home/git/gitlab-shell/bin/check
# sudo -u git -H bsudo -u git -H bundle exec rake gitlab:check RAILS_ENV=production
위에서 모든 체크가 정상으로 나오면 된다

고생2) apache 랑 gitlab이랑 연동
virtual hosting이 문제가 아니라, Port Open이 안되었던게 문제ㅠ_ㅠ
Port.conf 파일에 Listen을 추가해줘야 함

고생3) ruby 스크린트가 ssh 연결하면 CONNREFUSED발생시키는 이슈
/home/git/gitlab-shell/config.yaml 설정 안에 있는 URL에 포트를 추가해 줬더니 된다