반응형
예전에 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. 톰캣 데몬 서비스 생성 및 실행
스크립트에 익숙하지 않아서 데몬 파일을 만들 때 echo를 너무 덕지덕지 사용한것이 아닌가 싶다
반응형
'리눅스' 카테고리의 다른 글
서버 운영을 위한 리눅스 기본 명령어 모음 (0) | 2025.01.22 |
---|