Setting

폐쇄망 Nexus 구축하기

  • -
반응형

오늘은 폐쇄망엥서 사용할 Nexus 서버 구축에 대해 알아보겠습니다.

서버 환경은 Linux Rocky9 입니다. Nexus는 JDK를 기반으로 돌아가기 때문에 Java 설치가 필요합니다. Java가 설치되어 있지 않은 경우 이 글을 확인해 주세요.

 


Nexus

Nexus는 Sonatype에서 개발한 저장소 관리 툴로, 개발자들이 소프트웨어 패키지를 쉽게 저장, 공유할 수 있도록 돕는 레포지토리 매니저입니다. Nexus를 이용하여 빌드 아티팩트(jar, war)와 의존성을 관리하고 이를 개발 환경에서 사용할 수 있습니다.

 

Nexus를 사용하게 된 이유는 다음과 같습니다.

외부망과 폐쇄망 간의 중간 지대인 DMZ에 Nexus 서버를 배치하여 필요한 의존성을 가져오게 하고, 폐쇄망에 있는 개발 환경에서는 Nexus 서버만을 통해 의존성을 관리할 수 있게 하여 보안과 개발 효율성을 모두 충족할 수 있습니다.

 

# nexus 디렉토리 생성 mkdir /home/nexus # nexus 다운로드 wget https://download.sonatype.com/nexus/3/nexu-3.70.3-01-java8-unix.tar.gz

 

직접 설치하기

 

tar -xvf nexus-3.70.3-01-java8-unix.tar.gz

 

# 방화벽 8081포트 허용 firewall-cmd --zone=public --add-port=8081/tcp cd nexus-3.70.3-01/bin ./nexus run

 

Nexus의 기본 포트는 8081입니다. 포트 정보를 변경하고 싶은 경우 아래 경로 접속 후 포트를 수정할 수 있습니다.

vi /home/nexus/nexus-3.70.3-01/etc/nexus-default.properties

 

 

서버가 실행되면 접속IP:8081로 접속합니다. 우측 상단에 Sign In을 통해 로그인을 합니다.

 

관리자 계정(admin)의 패스워드는 아래 경로에서 확인할 수 있습니다. 패스워드 확인 후 신규 패스워드로 변경합니다.

 

접근 제한을 설정합니다.

Enable anonymous access :  자격증명없이 접속 허용

Disable anonymous access : 자격증명된 사용자만 접근 가능

 


Repository 타입

Repository 타입에는 proxy, group, hosted가 있습니다.

  • proxy : 외부 레포지토리를 프록시 합니다. 내부 환경에서 외부로 직접 접근이 불가능한 경우 프록시를 활용할 수 있습니다.
  • group : 여러 레포지토리를 그룹핑합니다.
  • hosted : 실제 현재 nexus에 라이브러리를 제공합니다. 자체 개발 라이브러리를 업로드하고 공유할 때 hosted 레포지토리를 설정합니다.

 

본 예제에서는 proxy 레포지토리를 연결해 테스트를 진행합니다.

proxy 레포지토리는 Maven 기본 저장소인 repo1.maven.org/maven2/에서 의존성을 가져옵니다. (repo.maven.org는 Maven Central의 공식 엔드포인트이며, repo1.maven.org는 이 저장소의 별칭으로 사용되는 도메인입니다)

 

테스트 프로젝트 생성 후 maven/settings.xml 파일에 아래 내용을 추가합니다.

Local maven repository 기본 경로

  • window : C:\Users\계정명\.m2
  • mac : ~/.m2

 

settings.xml

<servers> <server> <id>nexus</id> <username>admin</username> <password>접속패스워드</password> </server> </servers> <mirrors> <mirror> <id>nexus-repo</id> <mirrorOf>external:http:*</mirrorOf> <url>http://NEXUS서버IP:8081/repository/maven-central/</url> <blocked>false</blocked> </mirror> <!-- <mirror> <id>maven-default-http-blocker</id> <mirrorOf>external:http:*</mirrorOf> <name>Pseudo repository to mirror external repositories initially using HTTP.</name> <url>http://0.0.0.0/</url> </mirror> --> </mirrors>

 

프로젝트의 pom.xml에 아래와 같이 repositories를 추가합니다.

pom.xml

<repositories> <repository> <id>central</id> <name>Central Repository</name> <url>https://repo.maven.org/maven2/</url> <snapshots> <enabled>false</enabled> </snapshots> <releases> <enabled>false</enabled> </releases> </repository> <repository> <id>public</id> <url>http://NEXUS서버IP:8081/repository/maven-central/</url> <releases> <enabled>true</enabled> </releases> <snapshots> <enabled>true</enabled> </snapshots> </repository> </repositories>

 

기본 Maven 경로인 https://repo.maven.org/maven2를 사용하지 않기 위해 snapshots, releases에 enabled를 false로 설정하고, Nexus repository를 추가합니다.

이후 Maven - cleanMaven - install을 진행해보면 아래와 같이 Nexus 서버로부터 의존성을 가져오게 됩니다.

 

참고문서 
 

nexus 3 설치하기 – [일반 설치]

nexus3는 다양한 레포지토리를 사용할 수 있는 사설 저장소 이다. maven, docker, pypi, apt, yum 다양한 패키지 저장소를 한 곳에서 관리가 가능하다는 장점을 가지고 있다. 목차 nexus3 일반 설치 – OS에

showinfo8.com

반응형

포스팅 주소를 복사했습니다.

이 글이 도움이 되었다면 공감 부탁드립니다.