서버/CI 및 CD

[CI/CD 서버 구축 #2] Rocky Linux에 Nexus 설치 하기

jineddy 2025. 4. 14. 15:47
728x90

Nexus Repository Manager는 사내 CI/CD 환경에서 빌드 결과물(라이브러리, 패키지 등)을 저장·배포하는 데 사용됩니다.
이 글에서는 Rocky Linux 서버에 Nexus 3.x 버전 설치를 단계별로 정리해보겠습니다.

SI 프로젝트를 진행하며 내부망(폐쇄망)에서 프로젝트를 빌드해야 하기 때문에 미리 필요한 라이브러리들을 입고할 필요성이 있었고 다행히 내부망에 입고하기 전에 인터넷이 사용가능한 상황에서 설치 및 라이브러리 입고를 진행했습니다.

 

설치 경로

이전 글의 젠킨스와 같은 서버에 설치하여 별도로 용량확인은 생략하였습니다.

넥서스 설치 경로는 /dev/nexus로 구성했습니다.

 

사용자 및 그룹 생성

보안과 권한 관리를 위해 전용 사용자와 그룹을 구성합니다.
CI/CD에 사용하는 계정들을 같은 그룹 (dev) 으로 지정하면, 파일 접근이나 자동화 작업 시 권한 충돌을 방지할 수 있습니다.

1. 그룹 생성

$ sudo groupadd dev

2. Nexus 사용자 생성 (그룹 지정)

$ sudo useradd -g dev nexus
$ sudo passwd nexus

3. 디렉토리 생성 및 소유권 설정

$ sudo mkdir /dev/nexus
$ sudo chown -R nexus:dev /dev/nexus

※ 참고로 이전글에 설치한 jenkins 계정도 동일한 그룹으로 부여하고, 파일의 그룹 소유자도 동일하게 변경하였습니다.

 

Nexus 설치 파일 다운로드 및 압축 해제

 

Java 설치 확인

java는 jenkins 설치 시 설치하였기에 생략하였습니다.

/dev/nexus/nexus-3.79.1/jdk/temurin_17.0.13_11_linux_x86_64

만약 설치하지 않았다 하더라도 nexus 설치파일 압축해제 하면 위 경로에 이미 포함되어 있습니다.

 

기본 포트 충돌 방지: 포트 변경

기본적으로 nexus는 8081번 포트를 사용하지만, 이전에 설치한 Jenkins의 포트를 8081로 설정하였기 때문에 포트가 충돌하였습니다.
jenkins의 포트를 변경하면 되지만 넥서스의 포트를 변경할 일이 있을 수 있어 이번 기회에 포트 변경 방법도 알아보았습니다.

$ vi /dev/nexus/nexus-3.79.1/etc/nexus-default.properties

넥서스 기본 설정 파일

application-port=8082

저장 후 실행 시, http://<서버IP>:8082로 접속 가능

 

Nexus 실행 및 정지 명령어

# 실행 명령어
/dev/nexus/nexus-3.79.1/bin/nexus start

# 정지 명령어
/dev/nexus/nexus-3.79.1/bin/nexus stop

# 상태 확인 명령어
/dev/nexus/nexus-3.79.1/bin/nexus status

별도의 쉘 스크립트를 생성할 필요 없이 기본 내장 쉘 스크립트를 사용하면 됩니다.

 

초기 관리자 로그인

처음 기동하고 http://<서버IP>:8082 으로 접속 시 초기 관리자 비밀번호를 입력해야 합니다.

/dev/nexus/sonatype-work/nexus3/admin.password

위 파일의 내용이 초기 관리자 비밀번호이므로 입력하여 로그인 하면 됩니다.

 

결론 

내부 폐쇄망에 빌드를 위한 리포지토리 설치는 마쳤고 다음엔 인터넷이 안되는 환경에서 빌드 시 라이브러리를 가져 올 수 있도록 라이브러리를 업로드 하는 방법을 확인 해보자.

 

관련글

[리눅스/Rocky] - [CI/CD 서버 구축 #1] Rocky Linux에 Jenkins 설치 (.war 파일 기반, Java 17)

 

[CI/CD 서버 구축 #1] Rocky Linux에 Jenkins 설치 (.war 파일 기반, Java 17)

CI/CD 파이프라인을 구축할 때 가장 널리 사용되는 도구 중 하나인 Jenkins를 Rocky Linux 환경에 설치하는 방법을 정리합니다.이번 글에서는 .war 파일을 직접 실행하는 방식으로 설치하며, Java 17 환경

jineddy.tistory.com

[리눅스/Rocky] - [CI/CD 서버 구축 #3] SSH 공개키 방식 로그인 설정 방법 (Jenkins 배포 연동용)

 

[CI/CD 서버 구축 #3] SSH 공개키 방식 로그인 설정 방법 (Jenkins 배포 연동용)

CI/CD 파이프라인에서 Jenkins를 사용해 자동 배포를 구성할 때, 보안성과 편의성을 위해 SSH 공개키 기반 로그인 방식을 설정하는 것이 좋습니다.이번 글에서는 **리눅스 서버(dev 계정)**에 SSH 공개

jineddy.tistory.com

[개발/Java] - [CI/CD 서버 구축 #4] 폐쇄망 환경에서 오픈소스 라이브러리를 Nexus에 업로드하는 3가지 방법

 

[CI/CD 서버 구축 #4] 폐쇄망 환경에서 오픈소스 라이브러리를 Nexus에 업로드하는 3가지 방법

기업 내부망이나 보안 상의 이유로 인터넷 접속이 제한된 환경에서도 개발에 필요한 오픈소스 라이브러리를 활용해야 하는 경우가 많습니다. 이럴 때 Sonatype Nexus Repository Manager를 이용해 외부

jineddy.tistory.com

[개발/Java] - [CI/CD 서버 구축 #5] Maven deploy 시 자동 생성된 pom.xml로 인한 문제와 해결법

 

[CI/CD 서버 구축 #5] Maven deploy 시 자동 생성된 pom.xml로 인한 문제와 해결법

폐쇄망 환경에서 mvn deploy:deploy-file 명령어로 외부 라이브러리를 Nexus Repository에 수동 업로드할 때, 종종 발생하는 문제가 있습니다. 바로 자동 생성된 pom.xml이 실제 배포된 라이브러리의 메타 정

jineddy.tistory.com

 

728x90