콘텐츠로 건너뛰기

[Etc] SVN tortoiseSVN 3 – 외부환경 구축

답글 남기기

지난 게시글에 tortoisesvn을 사용해 등록된 저장소를 외부에서 불러와 데이터를 Commit 하는 방법에 대해 알아보았고 이어서 CentOS 환경에서 tortoise svn을 사용하는 방법을 알아본다.

  • 가상환경 구축

먼저 기본적으로 가상머신에 ip 할당해주기 위해 간단하게 nmap를 활용해 내가 쓰고 있는 내부 ip만을 확인하였다.

사용한 옵션

# sudo nmap -sn "스캔 할 네트워크 대역" -oG nmap_output

nmap 은 해킹, 보안 점검 등 다양하게 쓰이는 스캐닝 도구이고 사용법도 널리 알려져 있으니 궁금하신분들은 검색해보길 바란다.

이제 사용하지 않는 ip를 알았으니 가상 머신을 활용해 환경을 구축해보았다 구축한 외부 환경의 ip 주소는 150.9로 설정해 주었다.

  • SVN 설치

명령어

# sudo yum install -y subversion
# rpm -qa | grep subversion

정상적으로 설치가 완료되면 아래와 같이 패키지를 찾을 수 있게 될 것이다.

설치 진행
설치된 패키지 확인

이후 윈도우 환경에서와 마찬가지로 svn을 설치할 경로를 지정해주는 작업을 해주겠다.

  • SVN 저장소 생성, 경로 지정, 방화벽 해제

나는 윈도우에서 불러올 저장소를 담을 공간과 CentOS에서 새롭게 만들 공간을 생성해줬다.

다음으로 svn을 관리할 폴더를 지정할 수 있는 파일인 svnserve를 vim를 활용하여 수정해 CentOS 레포지를 추가해주었다.

svnserve 기본 설치 경로 : /etc/sysconfig/svnserve

# vim /etc/sysconfig/svnserve
svnserve file

경로 지정

수정하고 나온 후 기본적으로 외부에서 접속 시도 시 추가적으로 svn 기본 포트인 3690를 방화벽에서 해제해주어야 하지만 사용 가능하기에 방화벽을 해제해 주었다.

명령어

# firewall-cmd --permanent --zone=public --add-port=3690/tcp
# filrewall-com --reload

방화벽이 해제되었는지 확인해보려면 아래 이미지와 같이 작성해주면 된다. 필자는 방화벽을 사용하지 않고 있기 때문에 “not running” 메시지를 확인할 수 있다.

  • 서비스 실행

명령어

# sudo systemctl start svnserve.service
# ps -ef | grep svn
# netstat -anp | grep svnserve

윗줄부터 svnserve 서비스를 실행, 메모리에 올려졌는지 확인, 서비스가 실행중인지 확인하는 명령어이다.

실행 과정에서 permission error가 출력되면 경로로 지정한 저장소의 권한을 재 설정하면 된다.

하지만 root 사용자로 지정경로에 대한 권한 설정과 서비스 실행파일인 /sysconfig/svnserve 파일의 권한을 최고 권한으로 수정해도 정상적으로 서비스가 실행되지 않았다..

error 코드를 다시 확인해 본 결과 데몬 관련해서 에러가 나는 것 같았고 구축한 환경은 기존에 사용하던 가상 머신이미지를 가져왔으며 이미 데몬을 사용중인 것 같아서 나는 에러인 것 같았다.

이에 독립 실행형 데몬 프로세스로 서비스를 실행시켰고 잘 작동되는 것을 확인했다.

# svnserve -d
# netstat -tnlp | grep 6235

서비스는 실행되었지만 상태를 보니 정상적으로 실행할 수 있는 상태는 아니였고 /home 하위 권한을 모두 755로 수정해 보아도 마찬가지였다. 나중에 원인을 찾으면 마저 작성해야겠다.

# journalctl -xe

해당 명령어로 디테일 에러사항을 확인해 보니 다음과 같은 에러가 발생하였고 그 내용은 SELinux가 /bin/svnserve의 /zino 폴더의 접근을 막는다는 내용이였다. 더 자세한 내용을 보기 위해 아래와 같은 명령어를 실행하였다.

# sealert -l 48d0ef33-814b-474f-all

실행 결과 찾을 수 없는 에러라고한다…

다음에 찾아봐야겠다.