2 minute read

라즈베리파이 WAS 서버

WAS 구축 개요

: 라즈베리파이에 WAS서버를 구축한다. WAS서버 제품은 대중적인 톰캣(Tomcat) 으로 결정했다.

WAS 서버 관리자 생성

: WAS 서버를 담당 관리하는 특정 관리자 계정을 생성한다.

userdel -r -f wasadm      # 기존계정 삭제(이미 존재시)
vi /etc/skel/.bashrc      # 계정을 생성하면 홈디렉토리에 기본적으로 생성되는 파일을 /skel 에서 미리 정의한다. (.bashrc 로긴시점수행파일)
mkdir /fswas              # 커스텀한 관리용도의 사용자 디렉토리 생성 
chmod 755 /fswas          # 사용자생성시 홈디렉설정을 위해
groupadd -g 1001 wasadm   # 커스텀한 관리용도의 사용자 그룹 생성
sudo useradd -m -d /fswas/wasadm -g wasadm -u 1001 wasadm  # 계정 생성 (m:사용자명으로 자동생성, d: 디렉토리지정 skel 내용도 이기준으로 생성됨을 확인, g:그룹)

## 만약 여기서 실패하면  hostname 설정파일 2개를 모두 수정해주어야한다. ==> [라즈베리파이(5) 간단한 호스트네임 변경] 포스팅 이슈내용 참조

chown wasadm:wasadm /fswas  #홈디렉터리가 있는 디렉터리를 wasadm전용으로 owner 변경

WAS 구축

자동설치와 수동설치

: 웹서버 구축 포스팅과 동일하게 WAS서버를 원하는 경로에 설치하고싶어서 수동설치 를 메인으로 진행한다.

JDK

: 사전에 JDK가 존재해야한다. 설치는 간단하므로 생략한다.

수동설치 (소스컴파일 방식)

: 소스컴파일방식의 수동설치를 진행한다.

1 공식홈페이지 톰캣 링크복사
톰캣을 링크를 복사한다. (현재 기준 8.5.82 버전으로 Core 부분에서 tar.gz 우클릭하고 복사한다.)
2 wget [링크] 명령어로 컴파일소스 다운로드
서버에 tar.gz 압축파일을 바로 다운로드 한다. (다운받은 tar.gz 는 관리하기 쉽게 별도 생성한 install 폴더에 넣었다.)
sudo apt-get update && sudo apt-get upgrade  #패키지 업데이트 선행

mkdir /fswas/install  # 톰캣압축보관 위치
cd /fswas/install
wget [복사한 링크]

3 다운받은 tar.gz 압축파일을 해제
gunzip 명령어로 해제한다. (톰캣이라는 대분류폴더를 생성하고 그 안에 해제했다.)
mkdir /fswas/tomcat
mv /fswas/install/apache-tomcat-8.5.82.tar /fswas/tomcat  # 톰캣압축해제 위치
cd /fswas/tomcat
gunzip apache-tomcat-8.5.82.tar

# .gz를 풀었으니 .tar만 해제하면 된다.
cd /fswas/tomcat
sudo tar -xvf apache-tomcat-8.5.82.tar

# Tomcat은 정기적으로 업데이트되므로 버전 및 업데이트를 보다 효과적으로 제어하기 위해 Tomcat 설치 디렉토리를 가리키는 최신 버전이라는 심볼 링크를 만든다. ex) lastver
sudo ln -s /fswas/tomcat/apache-tomcat-8.5.82 /fswas/tomcat/lastver
export TOMCAT_HOME=/fswas/tomcat/lastver  # 환경변수 설정해두면
cd $TOMCAT_HOME                           # 이렇게 어디서든 접근할 수 있다. (적용은 env 명령어로 확인.)

4 설치 완료
특정 경로에 압축만 풀면 설치 완료이다.
5 환경변수 설정
톰캣서버 환경변수를 설정한다.
env | grep TOMCAT_HOME
# 아무것도 없을것이다. 

# 아까만든 lastver 심볼릭 링크를 톰캣 환경번수로 잡아준다.
export TOMCAT_HOME/fswas/tomcat/latest

# 환경변수가 잘잡혔다.
env | grep TOMCAT
TOMCAT_HOME=/fswas/tomcat/latest

참고)
환경변수를 잡은 현재까지 발생한 이유는 톰캣설치시 디폴트설정에 catalina.out 로그가 TOMCAT_HOME 경로를 참조하고 있기 때문에 생성이 잘안되었다.

6 실행
톰캣서버를 실행한다.
sudo sh /fswas/tomcat/apache-tomcat-8.5.82/bin/startup.sh

Tomcat 톰캣 권한

톰캣 디렉토리 권한 부여

: 설치를 완료했으므로 실행, 중지를 위해 특정계정에게 WSA관련한 모든 디렉토리에 권한을 준다. 나는 wasadm 이라는 웹관리자 계정에게 권한을 위임했다.

# 아파치가 설치된 폴더전체에 웹관리자계정 권한을 준다.
sudo chown -R wasadm:wasadm /fswas  # 옵션 -R 로 하위폴더 전체 변경

톰캣 재기동 쉘(루트대여) 권한 부여

: wasadm 계정이 재기동시 폴더 권한을 가져도 root권한이 없으면 안되는것으로 확인된다. wasadm에게 sudo 권한을 준다.

su
vi /etc/sudoers

# User privilege specification

root    ALL=(ALL:ALL) ALL
pi      ALL=(ALL:ALL) ALL
dbd000  ALL=(ALL:ALL) ALL
wasadm  ALL=(ALL:ALL) ALL   # 이렇게 추가

Tomcat 톰캣 쉘 스크립트

쉘 스크립트 생성

: 재기동, 상태체크 쉘 스크립트를 생성한다.

cd /fswas/wasadm/script/dbd
touch was_check.sh was_start.sh was_stop.sh   //시작, 종료, 상태체크 쉘파일 생성

# 쉘파일 작성
touch was_start.sh  # 서버시작
## 내용: sudo sh /fswas/tomcat/apache-tomcat-8.5.82/bin/startup.sh

touch was_stop.sh   # 서버중지
## 내용: sudo sh /fswas/tomcat/apache-tomcat-8.5.82/bin/shutdown.sh

touch was_check.sh  # 서버상태체크
## 내용: echo '================> ps -ef | grep java'
         ps -ef | grep java
         echo ''
         echo '================> netstat -anp | grep java'
         sudo netstat -anp | grep java

쉘 스크립트 전역alias 등록

: 어디서든 실행 가능하도록 alias를 등록한다.

# alias 등록
vi /etc/bash.bashrc
alias wasstop='sh /fswas/wasadm/script/dbd/was_stop.sh'
alias wasstart='sh /fswas/wasadm/script/dbd/was_start.sh'
alias wascheck='sh /fswas/wasadm/script/dbd/was_check.sh'

# 적용
source /etc/bash.bashrc

라즈베리파이 포트포워딩 설정

: 아직 웹서버 라즈베리파이와 연결하지 않았기 때문에 접속할 방법이 없다. 임시방편으로 외부에서는 어떤것이 라즈베리파이 서버인지 포트포워딩으로 알려주도록 한다.

테스트용으로 다음과 같이 포트포워딩 임시설정했다.
외부포트 9191 ==> 내부포트 8080
재부팅 후 9191 포트로 들어오면 was서버로 직접 접근한다.

(이제 본격적으로 WEB WAS를 연동해야할것이다.)

Leave a comment