Tag Archives: 리눅스

[Subversion] 다양한 방법의 SVN 저장소 서비스 운영

SVN은 매우 추천할만한 Version Control 시스템입니다. 실제로 학교에서 프로젝트를 운영할때도 사용했었고 실무에서도 많이 접해오게 된 다방면으로 쓰이는 녀석입니다. 우선 SVN을 사용할때는 통합적으로 소스의 버젼관리를 위해 저장소(Repository)를 운영하게 되는데 24시간 운영되는 서버에서 데몬형식으로 서비스 되는 것이 일반적입니다. 가장 많이 쓰이게 되는 3가지 방법에 대해 알아보도록 하겠습니다.

* 일반 단일 데몬 형태

[code]/usr/bin/svnserve -d -r [저장소경로][/code]
일반적으로 가장 단순한 방법입니다. -d는 daemon의 약자로 데몬형태로 작동시키라는 말이됩니다. 곧바로 하나의 백그라운드 프로세스가 실행되어 svn:// 프로토콜로 접근할 수 있게 됩니다.

* inetd 형태

일반적으로 슈퍼데몬이라고 불리는 inetd(xinetd)에 얹혀 작동하게 되는 방식입니다. 서비스 운영을 슈퍼데몬에 위임하게 되므로 어찌보면 가장 간단하고 깔끔한 방식입니다.

[code]vi /etc/xinetd.d/svn[/code]
위와 같이 svn이라는 서비스를 추가해 줍니다. 파일안에는 다음의 내용을 작성하면 됩니다.

[code]service svn
{
        disable = no
        port = 3690
        socket_type = stream
        protocol = tcp
        wait = no
        user = root
        server = /usr/bin/svnserve
        server_args = -i -r [저장소경로]
}[/code]
user에는 적절히 원하는 사용자를 넣어주시면 됩니다. 보안상 root는 피하시는것이 좋습니다.
xinetd 데몬을 재시작해주시면 바로 사용이 가능해 집니다.

[code]service xinetd restart[/code]
* Apache(mod_dav_svn) 모듈 형태

어찌보면 가장 추천할만한 좋은 방법입니다. 그리고 가장 설정하기가 번거롭습니다. 이 작업은 아파치 웹서버를 직접 컴파일하여 사용하지 않고 기본 패키지에 들어있는 httpd-*.rpm을 사용하는 시스템으로 가정하겠습니다.

우선 httpd가 정상적으로 설치가 되어있는지 확인해 봅시다. 저의 테스트 머신은 엔터프라이즈리눅스 4입니다.
[code]rpm -qa | grep httpd
httpd-manual-2.0.52-41.ent.4
httpd-suexec-2.0.52-41.ent.4
httpd-devel-2.0.52-41.ent.4
httpd-2.0.52-41.ent.4[/code]
[이곳]에 접속하셔서 자신의 머신에 가장 적절한 버젼을 받도록 합니다. 될수 있는한 제공되는 rpm패키지들을 모두 다 설치하는게 좋습니다. subversion뿐만 아니라 mod_dav_svn 패키지를 설치하는 것이 이 작업의 키포인트 입니다.

/etc/httpd/conf.d 위치에 subversion.conf 파일이 생성됩니다. 해당 파일을 설정해 줍시다.
[code]LoadModule dav_svn_module     modules/mod_dav_svn.so

<Location /svn>
   DAV svn
   SVNPath [저장소경로]


   # Limit write permission to list of valid users.
   <LimitExcept GET PROPFIND OPTIONS REPORT>
      # Require SSL connection for password protection.
      # SSLRequireSSL


      AuthType Basic
      AuthName “Authorization Realm”
      AuthUserFile /home/.htpasswd
      Require valid-user
   </LimitExcept>
</Location>[/code]
위에서 참고하실점은 AuthUserFile옵션입니다. htpasswd파일은 아파치 패키지에 포함되어있는 htpasswd명령으로 만들 수 있습니다. (자세한건 구글링 해보시길)

이제 해당 서버에 http://[호스트아이피]/svn 으로 웹브라우저로 접속해 보시면 바로 탐색이 가능하다는 것을 알 수 있습니다. 또한 같은 주소로 SVN 체크아웃을 할 수 있습니다.

– 여러개의 저장소를 묶어서 사용할 시
다음의 두개의 저장소가 있다고 가정해 봅시다. 둘 다 /svn 하위에 존재하고 있습니다.


/svn/repo1

/svn/repo2
이경우 다음과 같은 설정을 사용하여 모두 묶어서 서비스 할 수 있습니다.

[code]<Location /svn>
   DAV svn
   SVNParentPath /svn
   SVNListParentPath on
</Location>[/code]

LPIC 자격증 있으신분들 CLA자격증을 무료로 취득하세요.

사용자 삽입 이미지


LPIC(Linux Professional Institute Certification)은 LPIC라는 단체에서 인증하는 리눅스 자격증입니다. 각장 리눅스 배포본이 모여서 만든 통합 형태의 자격증이라는 점에서 기존의 산발적인 리눅스 자격증보다 인정을 받고 있습니다. 다만 실무라는 측면에서는 리눅스계의 대기업인 Redhat이 인증하는 RHCE(RedHat Certified Engineer)가 훨씬 더 좋을것이라 생각되긴 합니다.

아무튼 예전에 LPIC 레벨1을 취득했었는데요, 지금확인해 보니깐 2009년부로 자격증이 Expire되었습니다. 자격증은 만료되었지만 제 실력은 그 때보다 훨씬 더 업그레이드 된것같은 이 느낌은 무엇일까요.

각설하고 자격증 취득후에 한번도 관심을 두지 않고 잊어버리고 있었는데 오늘 메일이 한통 왔습니다. 메일의 제목은 Important: LPIC Alumni Eligible To Receive Novell CLA Certification 이군요. 말그대로 중요한 메일입니다. 잘못하면 스팸으로 취급당할법한 제목형태입니다. LPIC라는 말이 없었다면 저도 읽어보지도 않고 휴지통행이었을것 같습니다.

사용자 삽입 이미지


메일의 내용은 대충 LPI와 Novell이 파트너쉽을 맺으면서 LPIC 취득자들이 CLA(Certified Linux Administrator)자격증을 취득할 수 있는 자격을 가지게 되었다는 내용입니다. 중요한건 무료입니다. 더 중요한건 만료된 LPIC 자격증을 가지고 있는 사람도 가능합니다. 더더 중요한건 등록하는 날짜로부터 새 자격증의 기한이 시작됩니다. 그리고 더더더 중요한건 시험을 보지도 않고 바로 자격증 등록을 해줍니다.

그냥 공짜로 자격증 하나 더 추가됩니다. 자격증 같은게 날라올지는 모르겠습니다. 하지만 기분만큼은 업그레이드 되는군요. 등록을 하는데는 LPI IDVerification Code가 필요합니다. LPI홈페이지의 인증메뉴에 로그인 하시면 확인가능합니다. 위의 메일에서 나와있는 페이지에서 확인해도 되겠지만요.

http://www.novell.com/training/certinfo/cla/ 에서 확인할 수 있듯이 현재 프로모션 기간입니다. 이 기간이 지나면 이런 업그레이드가 불가능 할 수 있습니다. 자격증을 보유하고 계신분들은 꼭 업그레이드 하세요.

사용자 삽입 이미지