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어드레스