ETC

Subversion 이관하기

MuGrammer 2021. 3. 25. 16:02

Synology NAS DS415+에 운영하던 Subversion(이하 svn)을 CentOS로 이관해야할 일이 생겼습니다. 

 

1. CentOS에 svn 설치

2. NAS의 svn Repository dump

3. CentOS의 svn에 dump 파일 load

 

 

1. CentOS에 svn 설치

 

난 CentOS에 svn 설치한 경험이 없다. 하지만 걱정하지 않는다. 우선 구글링을 합니다. 

 

유능하신분들의 가르침을 받아 (꾸벅꾸벅) 설치방법을 확인 후 진행합니다.

 

qjadud22.tistory.com/13

 

CentOS(리눅스) SVN 설치 및 SVN 환경구축 + Eclipse 연동 1장

1. SVN 설치 svn 설치 가능한지 확인 yum list subversion svn 설치 yum install subversion subversion이 설치되었는지 확인 yum list installed subversion 다음으로는 home에 SVN 디렉토리를 생성할 것이다..

qjadud22.tistory.com

 

 

goddaehee.tistory.com/81

 

8. [CentOS7] SVN 설치 및 설정

[CentOS7] SVN 설치 및 설정 안녕하세요. 갓대희 입니다. 이번 포스팅은 [SVN 설치 및 설정] 입니다. :) ▶ svn  - SVN은 SubVersion의 줄임말로 형상관리/소스 관리 툴이다  - 리눅스 subversion 패키지는 서..

goddaehee.tistory.com

 

하지만 서버에서 yum 명령어를 실행시 오류가 자꾸 발생합니다. 왜지??

 

YumRepo Error: All mirror URLs are not using ftp, http[s] or file.
 Eg. Invalid release/repo/arch combination/
removing mirrorlist with no valid mirrors: /var/cache/yum/i386/6/base/mirrorlist.txt

Error: Cannot find a valid baseurl for repo: base

 

다시 구글링. 

 

lhjin.tistory.com/entry/CentOS-6-yum-update-%EC%98%A4%EB%A5%98-%ED%95%B4%EA%B2%B0-%EB%B0%A9%EB%B2%95

 

CentOS 6 yum update 오류 해결 방법

최근 CentOS 6 버전 업데이트 지원이 종료되면서 yum update 등 명령어 사용 시 오류가 발생하고 있다. * 오류 내용 (32Bit, 64Bit) YumRepo Error: All mirror URLs are not using ftp, http[s] or fi..

lhjin.tistory.com

 

서버의 OS version 확인을 우선 해봅니다. 

 

cat /etc/system-release.

 

CentOS 6.9 (final)로 확인이 되지 위에서 검색한 내용을 적용해도 되겠다 싶어 명령어를 실행해봅니다. 

 

echo "https://vault.centos.org/6.10/os/x86_64/" > /var/cache/yum/x86_64/6/base/mirrorlist.txt
echo "http://vault.centos.org/6.10/extras/x86_64/" > /var/cache/yum/x86_64/6/extras/mirrorlist.txt
echo "http://vault.centos.org/6.10/updates/x86_64/" > /var/cache/yum/x86_64/6/updates/mirrorlist.txt

 

 

문서를 보면 다들 root 계정으로 작업을 진행하셨습니다. 그래서 저도..

 

su -

 

명령어를 입력하고 비밀번호를 입력한 다음. 

 

yum -y install subversion

 

 

subversion 설치 끝!!!

 

 

테스트를 위해 똑같이 repository를 생성

 

cd /home

mkdir svn

cd svn

 

svnadmin create --fs-type fsfs svnRepo 

OR

svnadmin create svnRepo

 

* --fs-type fsfs는 기본값이므로 생략해도 됩니다. 

# svnadmin help create
create: 사용법: svnadmin create REPOS_PATH

REPOS_PATH 에 새로운 빈 저장소를 생성합니다.

옵션:
  --bdb-txn-nosync         : 트랜잭션을 커밋에서 fsync를 비활성화합니다[Berkeley DB] 
  --bdb-log-keep           : 자동 로그 파일 삭제를 비활성화 합니다 [Berkeley DB]
  --config-dir ARG         : arg로 지정된 디렉토리에서 사용자 구성화일을 읽습니다
  --fs-type ARG            : 저장소 타입: 'fsfs' (기본값) 또는 'bdb' 
  --pre-1.4-compatible     : Subversion 1.4 버전 이전과 호환되는 포맷 이용
 
  --pre-1.5-compatible     : Subversion 1.5의 하위 버전과 호환되는 포맷 이용
 
  --pre-1.6-compatible     : Subversion 1.6 버전 이전과 호환되는 포맷 이용

 

설치와 Repository까지 만들었으니PC에서 한번 접속을 시도해봅니다. (두근두근)

 

svn://아이피 혹은 URL/svnRepo

 

하지만....

 

시간이...

 

흐르고...

 

기다려봐도...

 

응답이 없습니다...

 

서버로 ping도 잘나가고 서버에서 nestat 확인결과 포트도 정상적으로 오픈되어있는데.. 

 

qjadud22 님의 글을 다시 읽어보니 방화벽 설정값을 변경을 빼먹었었네요. 

 

1) vi /etc/sysconifg/iptables



2) #추가 

-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT



3) service iptables restart 

 

 

2. NAS의 svn Repository dump

이제 NAS에 있는 svn 소스를 dump를 받아야합니다. 

 

예전엔 그냥 repository를 모두 압축해 변경될 위치로 그냥 압축을 풀어주기만 해도 됐었던 것 같은데.. 

뭔가 잘 안될 것 같은 느낌과 확신이 들지 않아 다시 구글링.

 

stylishc.tistory.com/78

 

SVN(SubVersion) 백업 및 이관

- VisualSVN 사용 기준(2.1.2) - 운영체제 : Windows Server 2008 R2 Standard 방법 1) svnadmin dump를 이용한 방법 : SVN 로그 및 리비젼을 모두 dump 뜨는 방식인거 같은데 이번에 이관 작업은 서버에 있던 데..

stylishc.tistory.com

 

위 글의 내용을 보면 저장소 위치에서 dump 파일을 생성하고 dump 파일을 다시 load 해주면 된다 했다. 

 

간단하다 생각했지만 예상치 못한 난관이 있었습니다. 

 

우선 NAS에서 ssh 접속을 할 수 있게 환경을 구성해야합니다. 

 

제어판 > 터미널 및 SNMP > 터미널 > SSH 서비스 활성화를 체크해줍니다. 

기본으로 22번 포트를 사용하곤하는데 저는 임의로 포트번호를 변경해줬습니다. 

그리고 방화벽이 설정되어있으시다면 해당 포트번호를 방화벽에 설정하여 통신할 수 있도록 설정해줘야합니다. 

설정되어있지 않다면 패쓰!

 

 

Window PC에서 터미널을 열고 ssh 계정@아이피주소 -p 39022를 입력하고 비밀번호를 입력하면 접속이 됩니다. 

만약 접속이 되지 않으신다면 계정의 권한을 다시 한번 확인해봐야합니다. 

근데 결론부터 말씀드리자면 svn dump를 받기 위해선 root 혹은 관리자 계정으로 접속해야합니다. 

 

설치된 패키지들은 대부분 owner와 group이 root로 설정되어있어서 그렇습니다. 

 

1. root 계정으로 접속시 비밀번호는 admin 계정의 비밀번호와 동일합니다. (admin 계정을 사용중지시켜놔도 root로 접속이 되는 엄청난 일이...;;;;;; ) 

작업을 끝내고 후다닥 SSH 서비스 활성화 부분을 체크해제합니다. 

 

2. 관리자 계정으로 접속했을 경우엔 sudo -i를 통해서 root로 스위치 해야하구요. 

 

제가 사용중인 DS 415+에선 어쩐일인지 ssh 접속시 BusyBox 이라는 shell로 접속이 되어 sudo 명령어가 실행되지 않아 그냥 root 계정으로 직접 접속했습니다. 보안상 너~무나도 위험한 짓거리인진 알지만 어쩔수 없으니 할 수 밖에 없네요. 

 

DSM 버전이 낮아서 그런가...;;; 업데이트가 전혀 되어있지 않습니다. 사실상 방치 수준의 NAS.

조만간 6.x 로 업데이트를 해야겠네요;;; 

 

어찌어찌 root 권한을 얻었다면 

 

svnadmin dump repository디렉토리 > repository디렉토리.dump 명령어를 실행하여 dump 파일을 생성합니다. 

 

생성된 dump 파일을 다운로드 받아 CentOS 서버에 업로드해주면 load 준비가 끝납니다. 

 

 

3. CentOS의 svn에 dump 파일 load

 

svnadmin load repository디렉토리 < repository디렉토리.dump

 

이렇게 해주면 끝입니다. 

 

 

 

작업을 진행하며 크게 어려움을 겪었던 부분은 

1. yum 명령어가 동작되지 않았던 점

2. 방화벽 포트 오픈을 해주지 않아 헤맸던 점

3. NAS에 ssh 접속이 잘 되지 않았던 점 

 

비슷한 작업일지라도 환경에 따라 세세하게 체크해야하는 부분들이 많습니다. 

 

 

유능한 분들의 소중한 기록 덕분에 작업을 완료할 수 있었던 것 같습니다. 

 

이 글 또한 어느누군가에게 도움이 되길 바랍니다. 

 

 

반응형