리눅스

[Linux]톰캣 자동설치 스크립트

Jude.R 2020. 11. 10. 03:02
반응형

예전에 AWS 상에 톰캣을 설치할때 다른분의 게시글을 참조해서 설치를 했었는데

 

리눅스 Snippet - Tomcat 수동 설치 및 systemd 등록(리눅스 or Mac)

Tomcat 원격 shutdown 기능 disable 시키기

suwoni-codelab.com

어쩌다보니 새로 톰캣을 설치할 일이 생겨서 아예 스크립트로 만들어 보기로 했다.

 

스크립트 내용자체는 별것 아니고 apache-tomcat-버전.tar.gz 파일과 스크립트 파일을 같은 디렉토리에 넣은후 스크립트를 실행하면 톰캣 버젼을 입력받아 자동으로 설치를 해주는것이 전부다

 

루트권한 획득 후 스크립트를 실행한 뒤 설치하려는 톰캣의 버전을 타이핑하고 엔터

스크립트의 내용은 다음과 같다

#!/usr/bin/env bash

echo 'enter tomcat version ex)9.0.39'
read version

target=apache-tomcat-$version
tarfile=$target.tar.gz
loctomcat=/usr/local/tomcat

groupadd tomcat
useradd -M -s /bin/nologin -g tomcat -d /usr/local/tomcat tomcat

tar -zxvf $tarfile
mv $target /usr/local/tomcat

chgrp -R tomcat $loctomcat
chmod -R g+r $loctomcat/conf
chmod g+x $loctomcat/conf
chown -R tomcat $loctomcat/webapps/ $loctomcat/work/ $loctomcat/temp/ $loctomcat/logs/

echo '# Systemd unit file for tomcat' >> /etc/systemd/system/tomcat.service
echo '[Unit]' >> /etc/systemd/system/tomcat.service
echo 'Description=Apache Tomcat Web Application Container' >> /etc/systemd/system/tomcat.service
echo 'After=syslog.target network.target' >> /etc/systemd/system/tomcat.service

echo '[Service]' >> /etc/systemd/system/tomcat.service
echo 'Type=forking' >> /etc/systemd/system/tomcat.service

echo 'Environment="CATALINA_PID=/usr/local/tomcat/temp/tomcat.pid"' >> /etc/systemd/system/tomcat.service
echo 'Environment="CATALINA_HOME=/usr/local/tomcat"' >> /etc/systemd/system/tomcat.service
echo 'Environment="CATALINA_BASE=/usr/local/tomcat"' >> /etc/systemd/system/tomcat.service
echo 'Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"' >> /etc/systemd/system/tomcat.service
echo 'Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom"' >> /etc/systemd/system/tomcat.service

echo 'ExecStart=/usr/local/tomcat/bin/startup.sh' >> /etc/systemd/system/tomcat.service
echo 'ExecStop=/usr/local/tomcat/bin/shutdown.sh' >> /etc/systemd/system/tomcat.service

echo 'User=tomcat' >> /etc/systemd/system/tomcat.service
echo 'Group=tomcat' >> /etc/systemd/system/tomcat.service
echo 'UMask=0007' >> /etc/systemd/system/tomcat.service
echo 'RestartSec=10' >> /etc/systemd/system/tomcat.service
echo 'Restart=always' >> /etc/systemd/system/tomcat.service

echo '[Install]' >> /etc/systemd/system/tomcat.service
echo 'WantedBy=multi-user.target' >> /etc/systemd/system/tomcat.service

systemctl daemon-reload
systemctl enable tomcat
systemctl start tomcat

기본적인 골자는

1. 톰캣의 버전을 입력받아 해당 버전의 파일명 변수를 만든다

2. 톰캣 사용자와 그룹을 생성한다

3. 저장된 변수를 이용해 압축해제 -> /usr/local/tomcat 으로 압축해제된 디렉토리 이동

4. 이동된 디렉토리의 권한 변경

5. 톰캣 데몬 서비스 생성 및 실행

 

tomcat.sh
0.00MB

 

스크립트에 익숙하지 않아서 데몬 파일을 만들 때 echo를 너무 덕지덕지 사용한것이 아닌가 싶다

반응형

'리눅스' 카테고리의 다른 글

서버 운영을 위한 리눅스 기본 명령어 모음  (0) 2025.01.22