2018년 4월 25일 수요일

Nexus 설치

대부분 web 개발자라면 maven을 사용 또는 적어도 이름은 들어봤을 것이다.
maven을 사용하지 않는다면 일일이 라이브러리를 다운받아서 사용해야 하는 불편함이 있다. 그래서 사람들은 maven을 많이 쓴다. maven은 pom.xml에 필요한 라이브러리를 지정하고 빌드 해주면 자동으로 저장해준다. 단 외부 통신이 가능해야 한다.

엔터프라이즈에서는 외부통신이 단절되는 경우가 많기 때문에 maven을 사용하고 싶으도 사용하지 못한다. 이럴경우 nexus를 통해서 사설 repository를 구성해서 회사 내부적으로 사용하면 라이브러리를 공통으로 사용하기 때문에 라이브러리에서 꼬이는 일이 줄어 들수 있다.

nexus 설치는 nexus 문서를 참조하면 쉽게 설치가 가능한다.

먼저 System requirements를 보면 Java 버전이 8 이여야 한다.
NXRM (Nexus Repository manager) 설치는 2, 3 버전이 있다.

Download Archives - Repository Manager 2

Download Archives - Repository Manager 3

OSS버전은 무료고, Pro버전은 유료지만 Pro버전을 14일 trial 라이선스를 발급해 준다.
우선 설치 파일을 다운 받은 후 (이글은 3버전 기준)
tar xvfz nexus-*.tar.gz
압축해제 된 디렉토리에서 ./bin/nexus run 을 실행하면 기동할수 있다.
반대로 종료할때는 ./bin/nexus stop을 하면 된다.
기동이 되었으면 /home/nexus/sonatype-work/nexus3/log/nexus.log로그를 통해서 정상 기동 확인이 가능하다.
그런 후 http://IP Adress:8081 로 접속하게 되면 console 접속이 가능하고 default 계정은
admin/admin123 이다.
IP는 서버 아이피로 사용하고 포트는 디폴트 포트(8081)를 사용해도 되고 변경도 가능하다.
콘솔을 통해서 사설 repository를 구성할수 있다.

2018년 4월 19일 목요일

apache 기동,프로세스확인 스크립트

아파치를 컴파일 하고 설치하면 아파치를 기동해야 한다.

리눅스 가정하에
cd $APACHE_HOME/bin 에서
기동시 ./apachectl start
종료시 ./apachectl stop
이런 식으로 기동하고 종료한다.

하지만 프로세스를 ps -ef | grep httpd 이런식으로 확인 한 결과 안들경우 로그를 확인해야한다.
이런 번거로운을 해결하기 위해서 스크립트를 작성했다

#!/bin/sh
SERVER_NAME=`basename /opt/web/web_11`
#echo "$SERVER_NAME Server [NAME=$SERVER_NAME]"

PID=`ps -ef|grep httpd|grep $SERVER_NAME| egrep -v "grep|log"|awk '{print $1,  $2}'`
#echo $SERVER_NAME Server [Process ID=$PID]

LISTEN_PORT=`sudo netstat -an | grep :80 | grep LISTEN|awk '{print $4}'`
#echo "$SERVER_NAME Server [LISTEN_PORT=$LISTEN_PORT]"

if [ -z "$PID" ]; then
          if [ -z "$LISTEN_PORT" ]; then

            sudo sh ./apachectl -k start;
            echo "###########################################"
            echo "$SERVER_NAME Server Started..."
            echo "###########################################"

    else
            echo "###########################################"
            echo "$SERVER_NAME already in use [$LISTEN_PORT] PORT..."
            echo "###########################################"
    fi

else
    echo "######################################################"
    echo "$SERVER_NAME Server is already RUNNING..."
    echo "######################################################"
fi


아파치는 프로세스가 있거나 혹은 포트를 리슨하고 있는 중에는 기동이 되지 않는다
if을 이용해서 체크한 기동하는 스크립트다.

또한 프로세스 확인 하는것도 매번 ps -ef | grep httpd 를 치기 번거로워서 스크립트로 작성했다

SERVER_NAME=`basename /opt/web/web_11`
echo ""
ps -ef|grep httpd|grep $SERVER_NAME|egrep -v "grep"|awk '{print $1,$2,$5,$8,$10,$12}'
echo ""