Skip to main content

Processo de atualização TomCat

Antes de fazer a atualização do Tomcat, será necessário verificar a compatibilidade com a versão do Quality Manager configurada no servidor. 

Versão do Quality Manager Tomcat
2.60 à 2.63 Apache Tomcat 9.0.43
2.64 à 2.66 Apache Tomcat 9.0.65
2.67 Apache Tomcat 9.0.69
2.70 Apache Tomcat 9.0.74
2.85+ Apache Tomcat 10.1.19
2.91+ Apache Tomcat 10.1.40

Para fazer a atualização do Tomcat, os comandos abaixo deverão ser executados por um usuário com permissões administrativas no servidor.

  1. Pare o serviço do Tomcat e crie variáveis de ambiente para facilitar o processo de atualização:
systemctl stop tomcat9.service
export DIR_TOMCAT="/var/lib/tomcat9"
export DIR_TOMCAT10="/var/lib/tomcat10"
export BKP_TOMCAT="/var/lib/tomcat9_bkp_$(date +\%Y\%m\%d)"
export ATT_TOMCAT="versão a ser instalada"

image.png

2. Renomeie diretório do Tomcat antigo para ficar como backup:

mv $DIR_TOMCAT $BKP_TOMCAT

3. Faça o download dos binários da nova versão do Tomcat:

cd /tmp
  • Download do Tomcat na versão 9:
wget https://archive.apache.org/dist/tomcat/tomcat-9/v$ATT_TOMCAT/bin/apache-tomcat-$ATT_TOMCAT.zip -O tomcat$ATT_TOMCAT.zip
  • Download do Tomcat na versão 10:
wget https://archive.apache.org/dist/tomcat/tomcat-10/v$ATT_TOMCAT/bin/apache-tomcat-$ATT_TOMCAT.zip -O tomcat$ATT_TOMCAT.zip

4. Descompacte o arquivo baixado e manipule os arquivos executando os comandos abaixo:

unzip tomcat$ATT_TOMCAT.zip
  • Se estiver atualizando para Tomcat 9, execute os comandos abaixo:
sudo mv apache-tomcat-$ATT_TOMCAT/ tomcat9
sudo mv tomcat9/ /var/lib
cd $DIR_TOMCAT/webapps/
sudo rm -rf *
  • Se estiver atualizando para Tomcat 10, execute os comandos abaixo:
sudo mv apache-tomcat-$ATT_TOMCAT/ tomcat10
sudo mv tomcat10/ /var/lib
cd $DIR_TOMCAT10/webapps/
sudo rm -rf *

5. Transfira os arquivos da aplicação do Tomcat antigo para o atual:

sudo cp $BKP_TOMCAT/webapps/*.war .
sudo cp -r $BKP_TOMCAT/webapps/mensageria .
sudo cp -r $BKP_TOMCAT/webapps/conf .

Para Tomcat 9:

sudo mkdir -p $DIR_TOMCAT/conf/Catalina/localhost
sudo cp $BKP_TOMCAT/conf/Catalina/localhost/rewrite.config $DIR_TOMCAT/conf/Catalina/localhost
cd $DIR_TOMCAT/conf
sudo mv context.xml context_bkp.xml
sudo cp $BKP_TOMCAT/conf/context.xml .
sudo mv server.xml server_bak.xml
sudo cp $BKP_TOMCAT/conf/server.xml .
sudo mv web.xml web_bak.xml
sudo cp $BKP_TOMCAT/conf/web.xml .

Para Tomcat 10:

sudo mkdir -p $DIR_TOMCAT10/conf/Catalina/localhost
sudo cp $BKP_TOMCAT/conf/Catalina/localhost/rewrite.config $DIR_TOMCAT10/conf/Catalina/localhost

6. Se a aplicação estiver configurada para que fique exposta sem contexto, exemplo: http://nome_maquina:8080/. Execute o comando abaixo para transferir os arquivos referentes ao Quality Manager:

Para Tomcat 9:

sudo cp -r $BKP_TOMCAT/apps/ $DIR_TOMCAT
sudo cp $BKP_TOMCAT/conf/Catalina/localhost/ROOT.xml $DIR_TOMCAT/conf/Catalina/localhost

Para Tomcat 10:

sudo cp -r $BKP_TOMCAT10/apps/ $DIR_TOMCAT10
sudo cp $BKP_TOMCAT10/conf/Catalina/localhost/ROOT.xml $DIR_TOMCAT10/conf/Catalina/localhost

7. Caso o Portal do Titular esteja configurado no mesmo servidor que o Quality Manager, também transfira os arquivos de configurações para o Tomcat atual:

Para Tomcat 9:

sudo cp $BKP_TOMCAT/conf/configPortal.* $DIR_TOMCAT/conf

Para Tomcat 10:

sudo cp $BKP_TOMCAT/conf/configPortal.* $DIR_TOMCAT10/conf

8. Faça o backup do arquivo de serviço do Tomcat:

Para Tomcat 9:

mv /etc/systemd/system/tomcat9.service /etc/systemd/system/tomcat9.service.bkp

Para Tomcat 10:

mv /etc/systemd/system/tomcat9.service /etc/systemd/system/tomcat10.service.bkp

Em algumas instalações o arquivo "tomcat9.service" pode estar alocado em outro diretório, caso o comando acima apresente falha, execute o comando abaixo:

mv /lib/systemd/system/tomcat9.service /lib/systemd/system/tomcat9.service.bkp

9. Crie um novo arquivo para o serviço do Tomcat:

Para Tomcat 9:

sudo vim /etc/systemd/system/tomcat9.service
[Unit]
Description=Tomcat 9 servlet container
After=network.target

[Service]
Type=forking

User=tomcat
Group=tomcat

Environment="JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/"
Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom -Djava.awt.headless=true"

Environment="CATALINA_BASE=/var/lib/tomcat9/"
Environment="CATALINA_HOME=/var/lib/tomcat9/"
Environment="CATALINA_PID=/var/lib/tomcat9/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx4096M -server -XX:+UseParallelGC"

ReadWritePaths=/opt/qm_static/

ExecStart=/var/lib/tomcat9/bin/startup.sh
ExecStop=/var/lib/tomcat9/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

Para Tomcat10:

sudo vim /etc/systemd/system/tomcat10.service
[Unit]
Description=Tomcat 10 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=/var/lib/tomcat10/"
Environment="CATALINA_HOME=/var/lib/tomcat10/"
Environment="CATALINA_PID=/var/lib/tomcat10/temp/tomcat.pid"
Environment="CATALINA_OPTS=-Xms512M -Xmx4096M -server -XX:+UseParallelGC"

ReadWritePaths=/opt/qm_static/

ExecStart=/var/lib/tomcat10/bin/startup.sh
ExecStop=/var/lib/tomcat10/bin/shutdown.sh

[Install]
WantedBy=multi-user.target
sudo systemctl daemon-reload

10. Altere as permissões no diretório do Tomcat, atualizando e iniciando o serviço:

Para Tomcat 9:

cd $DIR_TOMCAT
chown -R tomcat:tomcat *
chmod -R 755 *
systemctl start tomcat9.service

Para Tomcat 10:

cd $DIR_TOMCAT10
chown -R tomcat:tomcat *
chmod -R 755 *
systemctl start tomcat10.service

11. Alguns clientes possuem o banco de dados do Quality Manager hospedado em outro servidor. Neste caso, será necessário copiar o arquivo qm.app.properties para o Tomcat atualizado utilizando o comando abaixo:

sudo cp $BKP_TOMCAT/lib/qm.app.properties $DIR_TOMCAT/lib/

12. Para instalações que possuem a configuração HTTPS habilitada e o certificado esteja hospedado dentro da pasta do Tomcat. O certificado deverá ser copiado para o Tomcat atualizado:

Exemplo: 

sudo cp $BKP_TOMCAT/conf/certificado.jks $DIR_TOMCAT/conf/