DevOps/DevOps기초

Nexus Repository Manager 설치 및 활용

치킨맛코드 2022. 9. 4. 18:40

Nexus라고 한다면 보통의 남성들은 3가지가 머리속에서 떠오를 것이다. 20대 중후반에서 30대를 넘어가는 이들에게는 블리자드 사의 스타크레프트 라는 IP의 넥서스가, 혹은 동일 사의 히어로즈 오브더 스톰게임이, 조금 어린 분 들에게는 LoL(리그 오브 레전드)의 넥서스가 생각날 것이다. 이런 넥서스는 어떤 의미를 가지고 있을까?

서브컬쳐에서 나타난 Nexus

 

네이버 사전에서는 Nexus라고 검색한다면

 

" (여러 가지 것의 복잡한) 결합[연쇄] "

 

라고 나타난다. 일종의 Hub와 비슷한 의미를 가지고 있으며 다른곳에 연결되어있다 라는 의미를 나타낼 수 있다. 이런 Nexus에 Repository Manager 라는 단어가 붙어진다면, "여러 곳에 연결되어 있는 저장소 관리자" 라는 의미를 나타낼 수 있을 것이다. 특정 라이브러리를 등록하고 삭제, 배포하는 등의 life cycle을 관리하기 위한 용도로 사용된다.

Nexus Repository Manager가 가장 많이 사용되는 곳은 Private Repository 즉, 외부로 공개하고 싶지 않은, 회사 내부나 개발팀 내부에서만 사용하고 싶어하는 은밀한 보관함을 위주로 사용한다. 또한 중앙 저장소를 미러링 및 캐싱하여, 이미지 빌드 등을 빠르게 할 수 있도록 지원하며, 미러링 및 캐싱된 정보를 바탕으로 중앙 저장소에 문제가 발생하더라도 빌드가 중단되지 않도록 지원해 준다.

 

공개 소프트웨어 포털에 의하면 아래와 같은 스팩을 가지고 있다고 한다.

https://www.oss.kr/info_sp/show/eb2df598-113f-442b-bcaa-2fef03dab633

 

[솔루션 프로파일] Nexus Repository Manager - 공개SW 포털

. |Nexus Repository Manager|https://github.com/sonatype/nexus-oss| 최초 버전 : 1.6.0 (2010.04) | 안정 버전 :...

www.oss.kr

생각보다 무겁다.

 

 

이제 Nexus를 설치해 보도록 하자. 환경은 Centos7이다. 일반적으로 nexus는 root 혹은 admin과 같은 관리자 계정을 권장하지는 않는다. 그렇기에 nexus용 계정을 하나 만든 후 사용하도록 하자. 

# yum install -y wget java-1.8.0
==> wget와 java1.8버전을 다운로드 받는다.
# wget https://download.sonatype.com/nexus/3/latest-unix.tar.gz
==> 최신버전의 tar.gz파일을 다운로드 받는다.
# tar -xvzf latest-unix.tar.gz
==> tar파일에 대한 압축을 푼다.

 

아래의 명령어를 통해 포트를 확인하고 변경하도록 하자.

# vi nexus-3.41.1-01/bin/nexus.rc
==> 넥서스를 실행하기 위한 위한 계정을 설정한다
run_as_user="nexus"
==> 실행 계정이름을 nexus로 지정

또한 항상 실행될때마다 넥서스를 실행시키자.

# sudo ln -s nexus-3.41.1-01/bin/nexus /etc/init.d/nexus
==> 부팅될때마다 넥서스가 실행되게끔 한다.

이 후 내부 포트에 대한 설정을 확인하자.

# vi nexus-3.41.1-01/etc/nexus-default.properties
==> 내부 설정을 확인할 수 있다. 이곳에서 접근용 포트번호를 수정할 수 있다.
## DO NOT EDIT - CUSTOMIZATIONS BELONG IN $data-dir/etc/nexus.properties
##
# Jetty section
application-port=8081
application-host=0.0.0.0
nexus-args=${jetty.etc}/jetty.xml,${jetty.etc}/jetty-http.xml,${jetty.etc}/jetty-requestlog.xml
nexus-context-path=/

# Nexus section
nexus-edition=nexus-pro-edition
nexus-features=\
nexus-pro-feature

nexus.hazelcast.discovery.isEnabled=true

인터넷을 들어가기 귀찮으니 curl 명령어로 확인해보자. 잘 만들어진것을 확인할 수 있다.