0. 루트 사용자
$ sudo su
1. tomcat 사용자 추가
$ useradd -r -m -U -d /opt/tomcat -s /bin/false tomcat
tomcat 사용자를 추가하고 디렉토리를 /opt/tomcat로 지정.
/bin/false 는 쉘 명령어 권한이 없다는 뜻이다.
2. tomcat9 tar파일 wget(다운로드)
$ wget https://dlcdn.apache.org/tomcat/tomcat-9/v9.0.68/bin/apache-tomcat-9.0.68.tar.gz -P /tmp
tomcat9의 tar 파일을 /tmp에 받는다.
3. tar 파일 압축 해제
$ tar xf /tmp/apache-tomcat-9.0.68.tar.gz -C /opt/tomcat
/tmp/apache-tomcat-9.0.68.tar.gz 을 /opt/tomcat 아래에 압축해제.
4. /opt/tomcat 설정
$ ln -s /opt/tomcat/apache-tomcat-9.0.68 /opt/tomcat/latest
tomcat 버전 업데이트 시 최신버전을 latest에 심볼릭 링크하면 됨.
$ chown -R tomcat: /opt/tomcat
/opt/tomcat의 디렉토리의 소유자를 tomcat 사용자로 지정.
$ sh -c 'chmod +x /opt/tomcat/latest/bin/*.sh'
/opt/tomcat/latest/bin/*.sh 에 실행 권한 추가.
1. tomcat system 설정
$ vi /etc/systemd/system/tomcat.service
# /etc/systemd/system/tomcat.service
[Unit]
Description=Tomcat 9 servlet container
After=network.target
[Service]
Type=forking
User=tomcat
Group=tomcat
Environment="JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom -Djava.awt.headless=true"
Environment="CATALINA_BASE=/opt/tomcat/latest"
Environment="CATALINA_HOME=/opt/tomcat/latest"
Environment="CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"
ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh
[Install]
WantedBy=multi-user.target
다음과 같이 입력.
2. tomcat 재시작
$ systemctl daemon-reload
$ systemctl start tomcat
$ systemctl enable tomcat // 서버 작동시 tomcat 자동 실행
$ systemctl status tomcat
3. tomcat 사용자 설정
$ vi /opt/tomcat/latest/conf/tomcat-users.xml
<role rolename="manager-gui"/>
<role rolename="manager-script"/>
<role rolename="manager-status"/>
<user name="계정명" password="비밀번호" roles="manager-gui, manager-script, manager-status"/>
위 작업은 tomcat 사용자 설정에서 web-interface 계정 생성하고 추후에 Jenkins서버에서 tomcat에 접근할 때 필요한 정보이다.
4. tomcat 외부 접근 허용 설정 (Jenkins 외부에서 Tomcat서버에 접근할 시)
$ vi /opt/tomcat/latest/webapps/manager/META-INF/context.xml
$ vi /opt/tomcat/latest/webapps/host-manager/META-INF/context.xml
위 두 명령어에 아래와 같이 수정한다.
<!--
<Valve className="org.apache.catalina.valves.RemoteAddrValve"
allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
-->//주석처리하기
위 작업은 Jenkins 서버와 Tomcat이 설치된 서버를 따로 배치해두고 Jenkins 서버에서 Tomcat 서버로 접근할 때 접근 허용을 위한 작업이다.
이상 Tomcat 설치 작업 끝.