업그레이드와 백업

 

업그레이드

넥서스를 사용하다 보면 버전을 업그레이드 해야 할 경우도 있다.

넥서스는 프로그램 디렉터리와 데이타 디렉터리가 분리되어 있으므로 손쉽게 업그레이드할 수 있다.

2.7 버전을 사용하다가 2.8 버전으로 업그레이드하는 과정을 살펴 보자.

2.7 버전은 /home/nexus/nexus 에 다음과 같이 설치되어 있다. 

nexus

nexus-2.7.2-03
sonatype-work

 

이제 2.81 버전을 다운로드 받은후에 /home/nexus/nexus 에 이동하고 압축을 해제한다. 

이제 폴더의 구조는 다음과 같을 것이다.

nexus

nexus-2.7.2-03
nexus-2.8.1-01
sonatype-work

2.7 버전의 넥서스를 중지시킨다.

bin/nexus stop

이제 2.8 버전으로 이동한후에 설정 파일인 conf/nexus.properties을 수정한다. 가장 주의해야 할 부분은 application-portnexus-webapp-context-path 변수이다.

그리고 넥서스 데이타 디렉터리인 sonatype-work 이 다른 디렉터리에 있다면 nexus-work 변수도 이에 맞게 수정해야 한다.

이제 새로운 넥서스를 구동하면 업그레이드가 완료된다.

 

백업

넥서스는 프로그램과 데이타가 나눠어져 있으므로 백업을 수행하기가 매우 간편하다.

프로그램 디렉터리는 특별히 백업할 필요가 없지만 필요하다면 설정 파일인 conf/nexus.properties 정도만 백업하면 된다.

데이타 디렉터리인 sonatype-work 은 하위 디렉터리를 포함하여 원격지에 백업하면 된다.

 

이제 핵심 유틸리티 장에서 익힌 rsync 를 사용하여 백업 서버에 백업해 보자.

백업 서버에는 사전에 nexus 라는 계정이 생성되어 있어야 하며 cron 을 통한 자동화를 위해서는 ssh 키를 미리 복사해 놓아야 한다. 자세한 내용은 rsync 부분을 참고하자.

rsync -avzh /home/nexus/nexus/sonatype-work nexus@backup.example.com:/home/nexus/nexus/sonatype-work


sonatype-work 의 하위 디렉터리중 storage 는 실제 아티팩트가 저장되는 곳이다. 만약 백업 서버의 용량이 부족하거나 백업 속도를 빠르게 하고 싶다면 storage 디렉터리중 메이븐 중앙 저장소등의 프록시 저장소를 제외하고 hosted 저장소만 백업해도 된다. 다음과 같이 --exclude 옵션을 추가하면 된다.

rsync -avzh /home/nexus/nexus/sonatype-work --exclude=nexus/storage/central* --exclude=nexus/storage/codehaus-snapshots --exclude=nexus/storage/apache-snapshots nexus@backup.example.com:/home/nexus/nexus/sonatype-work

이제 정상적으로 백업이 되었다면 위 명령어를 cron 에 등록하여 자동으로 백업을 수행하도록 하자.


마치며

버전 관리 시스템은 소스를 공유하고 협업하여 생산성을 높이고 리스크를 제거 하지만 규모가 커지고 참여자가 늘면 다른 파트의 소스를 공유하고 협업하기는 쉽지 않은 일이다.

이럴때 넥서스 저장소 관리자는 개발자간에 아티팩트를 공유하고 협업할 수 있게 해주어 생산성을 높이며 필요한 아티팩트가 정확히 딜리버리 되도록 해주므로 복잡한 S/W 개발 과정에서 잘못된 라이브러리 배포로 인한 실수와 혼란을 줄여 준다.

특히 상용 버전에 탑재된 아티팩트 조달 관리, 취약점 관리와 저장소 헬스 체크 기능은 상용 솔루션이나 패키지를 개발한다면 매우 유용한 기능이다.

그동안 넥서스를 사용하지 않은 독자라면 이 기회에 넥서스를 도입하여 사내에서 만든 아티팩트들을 효과적으로 공유하고 관리하여 더 나은 제품을 만드는데 활용할 수 있기를 바란다.