Kallithea 서버 이전 작업

김태호·2022년 5월 4일
0

Overview

문서에서 다루는 케이스는 회사 온프레미스 서버에서 AWS EC2 인스턴스로 SCM Kallithea 서버를 이전하는 작업을 다루었습니다.

작업순서

1. 기존 AWS EC2 에 저장되어있는 Kallithea repository 확인

2. docker kallithea container 내부에 /var/kallithea/repos 를 호스트로 옮기기

  • host로 repos directory copy 성공
  • host 용량부족으로 인해 압축 실패

3.기존 AWS EC2 호스트에 남은 용량을 확인

user@filepath:~$ df . # 남아있는 사용가능한 Storage
Filesystem     1K-blocks      Used Available Use% Mounted on
/path/to/kallithea/nvme0n1p1 304885740 283483000  21386356  93% /

4.기존 AWS EC2 docker 컨테이너에서 repos 를 압축

user@filepath:~$ docker exec -it kallithea bash
root@{docker container id}:/path/to/kallithea/nvme0n1p1/src# cd..
root@{docker container id}:/path/to/kallithea# tar -zcvf repos.tar.gz repos
... 압축 완료 후
root@{docker container id}:/path/to/kallithea# 

5. 새로운 AWS EC2 key 파일을 기존 AWS EC2 로 전송하여 컨테이너 안으로 복사

새로운 인스턴스 접속에 필요한 Key값 전송

scp -i .\${전송 할 파일 이름}.pem .\${전송 받을 파일 이름}.pem ${전송받을 유저 이름}@${전송 받을 서버 ip}:${전송 받을 파일 경로}

기존 서버에서 Key(.pem)파일을 컨테이너 안으로 복사

user@filepath:~$ docker cp ${aws-key}.pem ${docker container kallithea}:/var/kallithea

6. 기존 AWS EC2 인스턴스의 docker kallithea conatiner 에서 새로운 EC2 인스턴스로 repo 압축파일 전송

# 컨테이너로 진입
user@filepath:~$ docker exec -it kallithea bash

# 컨테이너에서 repos.tar.gz 전송
root@{docker container id}:/var/kallithea/src# cd ..

# 주의사항 : EC2 인스턴스에서 인바운드 설정 및 보안설정을 완료한 후에 진행
root@{docker container id}:/var/kallithea# scp -i ${aws-key}.pem repos.tar.gz ${전송받을 유저 이름}@${전송 받을 서버 ip}:${전송 받을 파일 경로}

7.새로 생성한 AWS EC2 인스턴스에 접속하여 Kallithea 서버 repository 전용 directory 생성 후 압축해제

user@ip-aws-ec2:~$ tar -zxvf repos.tar.gz
user@ip-aws-ec2:~$ cd /var
user@ip-aws-ec2:/var$ sudo mkdir kallithea
user@ip-aws-ec2:/var/kallithea$ sudo tar -zxvf ~/repos.tar.gz

8.다음 코드로 kallithea 실행

(kallithea_070) user@ip-aws-ec2:~/kallithea_070$ gearbox serve -c kallithea.ini
profile
신입 모바일 개발자 입니다!

0개의 댓글