QNAP TS-439PRO에 SVN 서버 설치

 

 

내부 소스 관리를 위해 회사에서 TS-439pro II+ 를 구매해서 사용중이다.

회사 내부 프로젝트를 위해 SVN을 이용해보기 위해 서버를 TS-439pro II+ 에 구축해 보기로 했다.

TS-439pro 를 구매했던 한성 SMB 쪽에 문의를 해보니 관련 자료가 없고 잘모른다는 답변을 받아결국은 삽질을 시작했다.

여러 자료를 찾아 봤는데 일본쪽은 설명이 잘나와있었고 QNAP의 wiki 사이트에 설명이 잘 나와있었다. 나름대로 설치 과정을 정리 해보려고 한다.

 

1. TS-439pro II+ 웹화면에서 OPTware ipkg 를 다운받아 인스톨 한다.

 

관련설명: http://wiki.qnap.com/wiki/Install_Optware_IPKG

---- 다음과정부터는 TS-439pro II+ 에 admin 계정으로 ssh를 이용해 로그온 해서 처리 ----

관련설명 : http://wiki.qnap.com/wiki/Subversion

 

2. svn 은 인스톨 한다.

# ipkg update
# ipkg install svn

3. 설치 디렉토리를 확인한다

 

# df
Filesystem Size Used Available Use% Mounted on
/dev/ram 124.0M 107.3M 16.6M 87% /
tmpfs 32.0M 128.0k 31.9M 0% /tmp
/dev/sda4 310.0M 170.1M 139.8M 55% /mnt/ext
/dev/md9 509.5M 45.2M 464.3M 9% /mnt/HDA_ROOT
/dev/md0 915.4G 17.0G 898.4G 2% /share/MD0_DATA
/dev/loop0 649.4M 649.4M 0 100% /share/MD0_DATA/ofiice2007

-> /dev/md0 즉 /share/MD0_DATA 에 설치할 공간이 많다.

-> Qnap의 다른장비를 사용시 공간이름이 다르므로 주의 필요

 

4. svn 공유 디렉토리 만들기

 

# mkdir /share/MD0_DATA/svn

 

5. 등록

 

# svnadmin create /share/MD0_DATA/svn
-> 디렉토리에 여러 설정파일이 자동으로 생긴다.
-> 아래처럼 생겼느지 확인 필요
[/share/MD0_DATA/svn] # ls
README.txt conf/ db/ format hooks/ locks/

# /opt/bin/svnadmin create /share/MD0_DATA/svn/prj_0
-> 주의 : path가 자동설정이 되어 있지 않으면 실행시 주소를 정확하게 넣어야 한다.

 

6. 설정하기

 

-> 아래 파일을 설정해야 한다.

[/share/MD0_DATA/svn] # cd conf
[/share/MD0_DATA/svn/conf] # ls
authz passwd svnserve.conf


6-1 . passwd 설정

 

-> vi로 passwd 를 열어 편집 한다.
-> 사용할 ID PASSWD 설정 (주의 공백삭제)
[users]
test=test
sally= sallyssecret

-> id: test , password: test 로 설정한것임

 

6-2. 접근권한 설정

 

-> vi 로 svnserve.conf를 열어 편집한다.
-> 아래 3가지 기본적으로 편집 한다.
anon-access = none
auth-access = write
password-db = passwd

#authz-db = authz

-> anon-access : none(아무나사용못함),read(아무나 읽음)
-> auth-access : 인증된 사람만 권한줌
-> password-db : 패스워드사용

-> authz-db : 구릅을 사용하고자 할때 사용하고 그 설정 파일은 authz 다 이파일 수정하면됨

-> 아래내용은 authz 내용

[/]
*=r

[groups]
svn_p=test1,test2
svn_p1=test3,test4

[svn_prj1:/]
@svn_p1=rw

[svn_prj:/]
@svn_p=rw

---> 설명

[/] : 모든 디렉토리
*=r : 모든 사람 읽기 가능

[groups] : 두개의 구릅 생성
svn_p=test1,test2 : 첫번 구릅명 과 그 구릅 사용자 설정
svn_p1=test3,test4

[svn_prj1:/] : 하위 디렉토리에 어떤 사용자가 설정되고 그 권한 설정
@svn_p1=rw

[svn_prj:/]
@svn_p=rw

 

7. SVN 시작

-> 3690 port로 접근가능하게 /share/MD0_DATA/svn/ 디렉토리 서비스 시작

# svnserve -d -r /share/MD0_DATA/svn/

-> port 설정하고 싶으면

# svnserve -d --listen-port=3690 -r /share/MD0_DATA/svn

-> path 가 설정안되어 있으면

# /opt/bin/svnserve -d --listen-port=3690 -r /share/MD0_DATA/svn/prj_0

 

8. SVN 동작중인지 확인 ..

 

# ps | grep svn
12234 admin 924 S svnserve -d -r /share/MD0_DATA/svn/

 

9. SVN 죽이고 싶으면

# kill -9 <process_id>
-> process_id 는 위에서 12234

 

10. boot 시에 자동 실행..

(관련설명 : http://wiki.qnap.com/wiki/Autorun.sh )
* 주의 : 실제로는 어떤문제인지 모르겠으나 되지 않았음 문제 확인필요합니다.

리부팅할일이 많이 없으니 혹시 리부팅되면 수작업으로 다시 살리는것으로 하려고함

베치화일 만들어야 할듯

 

10-1. boot에 사용하는 autorun.sh 수정 수정을위해 디렉토리 마운트

# mount -t ext2 /dev/sdx6 /tmp/config

 

10-2. autorun.sh 수정

# vi /tmp/config/autorun.sh

 

10-3. 수정

#!/bin/sh
(sleep 60; /opt/bin/svnserve -d --listen-port=3690 -r /share/MD0_DATA/svn/)&

 

10-4. 실행권한 주기

# chmod +x /tmp/config/autorun.sh

 

10-5. unmount

# umount /tmp/config


이상의 설정 과정을 거치고 TortoiseSVN(거북이SVN) 으로 연결시 잘 연결 됩니다.

접속주소는 >> svn://ip어드레스

+ Recent posts