«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

VIDEOCUBE

Nexus Repository 설치해 보기 본문

시스템

Nexus Repository 설치해 보기

라떼청년 2017. 11. 11. 01:09


Nexus Pro, Nexus Firewall, LifeCycle 은 다음과 같이 비용을 지불하라고 한다..



오늘 설치하려는 버전은 Nexus Repository OSS 다.



두 가지 버전에 대해서 지원하는 기능이 다르다.

Nexus Repository Manager OSS 3.x

The latest version of Nexus Repository OSS, providing cutting-edge support for the formats below.

1. Bower
2. Docker
3. Git LFS
4. Maven
5. npm
6. NuGet
7. PyPI
8. Ruby Gems
9 Yum Proxy



Nexus Repository Manager OSS 2.x

The original version of Nexus Repository OSS, deployed across thousands of organizations.

1. Maven
2. OBR
3. P2
4. Yum 


기본적으로 Maven 은 다 지원한다. 

OSS 2.x 는 모든 플랫폼에서 지원한다고 한다.. 그렇다고 최신버전이 아닌 구버전을 구지 깔필요는 없다

GITLab + Jenkins 설치 되어 있는 서버에 Nexus OSS3 를 함께 설치 하자.

설치는 OSS 3.x 는 

OS X, Windows, Unix 가 지원이 되고 있다..

서버는 CentOS6 이며, 여기서 Unix Version 으로 설치 하면된다.

Latest Version

Repository Manager 3.6.0-02


Nexus 를 구동하기 위해선. Java 는 기본적으로 필요하다.
java 는 Jenkins 설치 할 때 이미 설치되어 있기 때문에 패스하자.
작업 폴더를 만들자.

mkdir -p /data/source


cd /data/source/


wget http://download.sonatype.com/nexus/3/nexus-3.6.0-02-unix.tar.gz

tar xvf nexus-3.6.0-02-unix.tar.gz -C /data


tarball 로 확장명이 gz 이라해서 gunzip 을 함께 해서 풀면안된다.


tarball 로만 해제하도록 한다.


/data 에 다음 폴더가 생성되었다


ㄴsonatype-work

ㄴnexus-3.6.0-02



nexus 는 /usr/local 로 링크를 걸어놓자..


ln -s /data/nexus-3.6.0-02 /usr/local/nexus




vi /usr/local/nexus/bin/nexus.rc


실행할 user를 지정할 수 있다. 별로 이 부분은 필요따라 사용자 권한을 주어 실행하도록한다.


폴더 역시 user 권한을 가지고 있어야 한다.


#run_as_user="" 


여기서는 별도로 지정하지 않으면 

WARNING: ************************************************************

WARNING: Detected execution as "root" user.  This is NOT recommended!

WARNING: ************************************************************


경고 메세지를 나중에 보실 수 있을 것이다..!!!

vi /usr/local/nexus/bin/nexus.vmoptions 


-Xms1200M

-Xmx1200M

-XX:MaxDirectMemorySize=2G

-XX:+UnlockDiagnosticVMOptions

-XX:+UnsyncloadClass

-XX:+LogVMOutput

-XX:LogFile=/data/sonatype-work/nexus3/log/jvm.log # LOG 파일 지정

-XX:-OmitStackTraceInFastThrow

-Djava.net.preferIPv4Stack=true

-Dkaraf.home=.

-Dkaraf.base=.

-Dkaraf.etc=etc/karaf

-Djava.util.logging.config.file=etc/karaf/java.util.logging.properties

-Dkaraf.data=/data/sonatype-work/nexus3           # DATA 폴더 지정

-Djava.io.tmpdir=/data/sonatype-work/nexus3/tmp   # TEMP 폴더 지정

-Dkaraf.startLocalConsole=false


설정은 필요따라 바꾸면 되기 때문에 패스합니다.


서비스 파일이 어딘가에 존재할 텐데.. 하면서 봤더니..

bin/nexus 가 서비스에 등록 가능한 구조로 된 파일이다..

서비스에 등록하자 

ln -s /usr/local/nexus/bin/nexus /etc/init.d/nexus

chkconfig --add nexus

chkconfig nexus on

nexus          0:해제 1:해제 2:활성 3:활성 4:활성 5:활성 6:해



등록되었다..


service nexus start


포트를 확인해 보자


root@git:/data/sonatype-work/nexus3/log> netstat -nlp

Active Internet connections (only servers)

Proto Recv-Q Send-Q Local Address               Foreign Address             State       PID/Program name   

tcp        0      0 127.0.0.1:9100              0.0.0.0:*                   LISTEN      683/node_exporter   

tcp        0      0 127.0.0.1:35279             0.0.0.0:*                   LISTEN      9940/java           

tcp        0      0 127.0.0.1:8080              0.0.0.0:*                   LISTEN      1006/unicorn master 

tcp        0      0 127.0.0.1:9168              0.0.0.0:*                   LISTEN      682/ruby            

tcp        0      0 0.0.0.0:80                  0.0.0.0:*                   LISTEN      686/nginx           

tcp        0      0 0.0.0.0:8081                0.0.0.0:*                   LISTEN      9940/java           

tcp        0      0 0.0.0.0:22                  0.0.0.0:*                   LISTEN      1098/sshd           

tcp        0      0 127.0.0.1:25                0.0.0.0:*                   LISTEN      1176/master         

tcp        0      0 0.0.0.0:8060                0.0.0.0:*                   LISTEN      686/nginx           

tcp        0      0 127.0.0.1:9121              0.0.0.0:*                   LISTEN      687/redis_exporter  

tcp        0      0 127.0.0.1:9090              0.0.0.0:*                   LISTEN      688/prometheus      

tcp        0      0 127.0.0.1:9187              0.0.0.0:*                   LISTEN      684/postgres_export 

tcp        0      0 ::1:9168                    :::*                        LISTEN      682/ruby            

tcp        0      0 :::22                       :::*                        LISTEN      1098/sshd           

tcp        0      0 :::8088                     :::*                        LISTEN      1069/java           

tcp        0      0 ::1:25                      :::*                        LISTEN      1176/master         

udp        0      0 :::5353                     :::*                                    1069/java           

udp        0      0 :::33848                    :::*                                    1069/java 


80     : #GITLAB
8088   : #JENKINS
8081        :   #NEXUS OSS3

8081 ==> 설정은 어디에 되어 있을까


vi /usr/local/nexus/etc/nexus-default.properties


application-port=8081



딱히 공통으로 사용되고 있는 포트는 없다 기본으로 설정해도 될 것 같다.



웹브라우저를 통해서 dashboard 를 확인해 보자..


이런 iptables 에 막혔네..


lokkit -p 8081:tcp


Chain INPUT (policy ACCEPT)

target     prot opt source               destination         

ACCEPT     all  --  anywhere             anywhere            state RELATED,ESTABLISHED 

ACCEPT     icmp --  anywhere             anywhere            

ACCEPT     all  --  anywhere             anywhere            

ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:ssh 

ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:http 

ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:radan-http 

ACCEPT     tcp  --  anywhere             anywhere            state NEW tcp dpt:tproxy 

REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited 


Chain FORWARD (policy ACCEPT)

target     prot opt source               destination         

REJECT     all  --  anywhere             anywhere            reject-with icmp-host-prohibited 


Chain OUTPUT (policy ACCEPT)

target     prot opt source               destination 




[ 로딩화면 ]




[ DashBoard ]

우측 상단에 Sign in 을 클릭하면

로그인하기


기본 ID 와 Password 로 접속해보자

ID : admin

Password : admin123


Email 과 Change Password 로 변경한 후 저장하자

Change Password 할 때 현재 암호를 먼저 입력 한 후 새 비밀번호를 입력하는 것이니.. 잘 보고 하자























반응형
Comments