본문 바로가기
Linux

[개발환경구축] VirtualBox CentOS8 Nexus 2 설치 (Jetty Deploy) + 자동실행

by 미미믹 2021. 3. 15.

jdk 설치도 끝났겠다 넥서스 설치를 진행해보았다.

먼저 넥서스2를 설치해보기로한다.
넥서스2는 넥서스 설치 파일을 받아서 압축 풀기와 war 파일을 받아서 톰캣에 배포하는 2가지 버전이 있는데
먼저 압축을 풀어서 jetty에 배포하는 버전 설치를 진행해봤다.

넥서스 설치는 root 계정보다 일반 계정으로 설치하기를 권고하기 때문에
먼저 넥서스 설치를 위한 계정을 만들어줬다.
$ useradd nexus
$ su - nexus

nexus 계정으로 접속 후 바로 설치를 진행해도 되지만(이 경우 위치는 /home/nexus/)
본인은 /apps 폴더를 만들어서 해당 폴더에 설치를 진행했다.
설치하고자하는 폴더로 이동 후 파일을 다운로드한다.
$ wget http://www.sonatype.org/downloads/nexus-latest-bundle.tar.gz --no-check-certificate
인터넷이 안되는 환경이라면 다운로드 사이트로 접속 후 직접 파일을 받아 넣어줘도된다.
다운로드 사이트 : help.sonatype.com/repomanager2/download#Download-NexusRepositoryManager2OSS

받은 파일의 압축을 풀어준다.
$ tar zxvf nexus-latest-bundle.tar.gz

넥서스 설치가 끝났다!
넥서스 설치폴더/bin 폴더 안의 nexus 실행 파일을 이용해 nexus를 실행시킬 수 있다.


넥서스 기본 포트는 8081 포트이다.
해당 포트로 사용해도 상관없지만 굳이 바꿔보고 싶다면
설치된 넥서스 폴더 밑의 conf 폴더로 이동 후 nexus.properties 파일을 편집기로 실행해준다.
$ cd /home/nexus/nexus-2.14.20-02/conf
$ vi nexus.properties

실행 후 application-port=8081로 되어있는 부분에 본인이 원하는 포트로 변경 후 저장해준다.


사실, 며칠간 넥서스 설치 후 자동실행이 안되서 정말 애를 먹었다..
여러번의 삽질 끝에 자동실행이 제대로 동작하지 않은 이유를 2가지로 추릴 수 있었다.
첫번째는, 넥서스 공식 사이트에 있는 자동실행 방법은 CentOS 8 에서는 권장하지 않는 방법으로 보인다는 것이고
두번째는, systemctl을 통해 자동실행을 실행하려 했을 때 SELinux의 보안으로 인해 허용되지 않았다는 것이다.
SELinux를 실행하면서 자동실행도 실행시키는 방법도 찾아보려고 했는데 잘 찾아지지가 않아서 결국 SELinux 해제하기로 했다..
SELinux 해제 참고 사이트 : www.lesstif.com/system-admin/centos-selinux-6979732.html

CentOS 8 이전 버전에서는 nexus 사이트에 기술되어있는 방법으로도 자동실행이 제대로 실행되는것 같다
자동실행 참고 사이트 : help.sonatype.com/repomanager2/installing-and-running/configuring-nexus-repository-manager-as-a-service

root 권한에서 SELinux의 실행 여부를 확인한다.
$ sestatus

현재 enforcing모드로 되어있는데 자동실행을 위해 permissive모드로 변경이 필요하다.
모드 변경을 위해 명령어로 편집기를 실행한다.
$ vi /etc/selinux/config

SELINUX=enforcing이라고 되어있었는데 permissive로 변경 후 shutdown -r now 명령어로 리눅스 재시작까지 진행해주었다.

재시작 후 다시 sestatus 명령어를 입력해 permissive모드로 실행됐는지 확인한다.

그 후 nexus 계정으로 전환 후 NEXUS_HOME 설정을 위해 .bash_profile 파일을 편집기로 실행한다.
$ su - nexus
$ vi ~/.bash_profile

하단에 export NEXUS_HOME="설치된넥서스경로" 입력 후 저장해준다.

서비스 등록을 위해 root 계정으로 전환 후 service 등록을 위한 편집기를 실행해준다.
$ su -
$ vi /etc/systemd/system/nexus.service

ExceStart, ExceStop 경로는 본인의 넥서스 설치폴더/bin/nexus로 입력해준다.

[Unit]
Description=nexus service
After=network.target

[Service]
Type=forking
ExecStart=/apps/nexus-2.14.20-02/bin/nexus start
ExecStop=/apps/nexus-2.14.20-02/bin/nexus stop
User=nexus
Restart=on-abort

[Install]
WantedBy=multi-user.target

저장 후
$ systemctl daemon-reload
$ systemctl enable nexus.service
$ systemctl start nexus.service
해당 명령어를 차례로 입력한다.

인터넷에 http://서버IP:포트번호/nexus 입력 후 넥서스가 정상 동작하는지 확인해본다.
리눅스 재시작 후에도 넥서스가 자동실행되는지도 확인한다.

호스트PC에서 해당 넥서스 사이트를 접속하려면 방화벽이 해제되어 있어야한다.
port번호는 본인이 설정한 포트번호를 넣어준다.
포트를 변경하지 않았을 경우 기본 포트는 8081이다.
$ su -
$ firewall-cmd --zone=public --permanent --add-port=8090/tcp
$ firewall-cmd --reload
방화벽 해제 후 puttyvirtualBox - 설정 - 네트워크 - 고급 - 포트포워딩 설정을 추가해준다.

재시작이 정상적으로 동작하지 않을경우 systemctl log를 확인해본다
$ journalctl
넥서스 로그는 넥서스폴더/logs/wrapper.log 파일에 저장된다. alias를 등록해놓으면 편하다.
특정 계정에서만 사용하고자 할 경우 해당 계정의 ~/.bashrc에 alias를 등록해주고
모든 계정에서 사용하고자 할 경우 root 계정으로 /etc/bashrc에 alias를 등록해준다.

alias nexuslog="tail -f 넥서스경로/logs/wrapper.log"

source 명령어를 통해 수정내용을 적용시켜준다. 모든 계정 반영을 위해 bashrc에 등록 후 root가 아닌 다른 계정에서 사용할 경우 재부팅을 해주는게 좋다.
$ nexuslog

[참고]
Sonatype Nexus 설치 및 설정 : www.lesstif.com/software-architect/sonatype-nexus-13631508.html
Nexus 설치 및 설정 가이드 : confluence.curvc.com/pages/viewpage.action?pageId=20251565


[개발환경구축] CentOS 8 jdk 1.8 설치

[개발환경구축] CentOS 8 Subversion(SVN) 설치

 

728x90