AtualizaTotalbus/atualiza_TotalBus.bash

896 lines
46 KiB
Bash
Executable File

#!/usr/bin/env bash
echo -e "####################################################"
echo -e "#Este script atualiza WILDFLY com: "
echo -e "# "
echo -e "# 1 - VentaBoletosServidor"
echo -e "# 2 - EventosExtrasServidor"
echo -e "# 3 - TareasAgendadas"
echo -e "# 4 - VentaBoletosClientes"
echo -e "# 5 - ADM "
echo -e "# 6 - Digitação"
echo -e "# "
echo -e "####################################################"
echo -e " "
sleep 1
IPPRIV=$(hostname -I | awk '{ print $1 }')
listaclientes=$(ls /etc/systemd/system/ | grep ^wild* | sort | cut -d "." -f 1)
read -p "DIGITE o NÚMERO ou COPIE e COLE o que vai atualizar: " service
sleep 1
case $service in
1|VentaBoletosServidor)
echo -e " "
echo -e "Opção \"1 - VentaBoletosServidor\" foi escolhida..."
sleep 2
echo -e " "
echo -e "Listando clientes neste server..."
echo -e "-------------------------------------------------"
echo -e "$listaclientes"
echo -e "-------------------------------------------------"
read -p "COPIE e COLE ou digite qual cliente será atualizado: " cliente
echo -e " "
portconf=$(cat /dados/$cliente/standalone/configuration/standalone.xml | grep "jboss.socket.binding.port-offset" | cut -d ":" -f 2 | tr -d '}">')
portapp=$(expr $portconf + 8080)
sleep 1
versaoatual=$(curl -L -s http://$IPPRIV:$portapp/VentaBoletosServidor | grep VBS)
echo -e " "
echo -e "A versão atual do VentaBoletosServidor de $cliente é: "
echo -e " "
echo -e "###############################"
echo -e "$versaoatual"
echo -e "###############################"
echo -e " "
echo -e "Abaixo, informe seu usuario e senha do Jenkins..."
echo -e " "
echo -e " https://jenkinstotalbus.rjconsultores.com.br "
echo -e " "
read -p "Digite seu USUÁRIO do Jenkins: " userj
echo -e " "
read -s -p "Digite sua SENHA do Jenkins: " passj
echo -e " "
echo -e "Validando usuario e senha..."
echo -e " "
validj=$(curl -s -w "%{http_code}" -su "$userj:$passj" -o /dev/null "https://jenkinstotalbus.rjconsultores.com.br" ; echo)
if [[ "$validj" -eq 200 ]]; then
echo "Usuário e senha validado com sucesso!"
elif [[ "$validj" -eq 401 ]]; then
echo -e "Usuário ou senha incorretos."
echo -e "Tente novamente..."
exit 0
else
echo "Erro ao tentar logar. Código HTTP: $validj"
echo -e "Finalizando script."
exit 1
fi
echo -e " "
read -p "Informe o NÚMERO da versão do VentaBoletosServidor: " versaovta
echo -e " "
sleep 3
listvta=$(curl https://jenkinstotalbus.rjconsultores.com.br/job/SCO%20-%20VentaBoletosServidor/$versaovta/artifact/dist/ -su $userj:$passj | grep -oP '(?<=href=")[^"]+\.war(?=")')
if [ -z "$listvta" ]; then
echo -e "A versão $versaovta do VentaBoletosServidor não está mais disponível para download."
echo -e "Verifique e execute novamente."
echo -e "Finalizado!!!"
exit 0
else
echo -e "Listando arquivos disponíveis da versão ***" $versaovta "***"
echo -e "--------------------------------------------"
echo -e "$listvta"
echo -e "--------------------------------------------"
fi
echo -e " "
read -p "COPIE e COLE ou digite qual arquivo listado vai ser utilizado: " vtaescolhido
echo -e " "
echo -e "Baixando $vtaescolhido versão $versaovta ..."
rm -rf /tmp/VentaBoletosServidor.war
curl -u $userj:$passj -o /tmp/$vtaescolhido https://jenkinstotalbus.rjconsultores.com.br/job/SCO%20-%20VentaBoletosServidor/$versaovta/artifact/dist/$vtaescolhido
echo -e " "
mv /tmp/$vtaescolhido /tmp/VentaBoletosServidor.war
echo -e " "
sleep 1
echo -e "***Iniciando backup do "VentaBoletosServidor.war" de " $cliente " ..."
echo -e " "
portconf=$(cat /dados/$cliente/standalone/configuration/standalone.xml | grep "socket-binding-group name" | cut -d ":" -f 2 | tr -d '}">')
portconsole=$(expr $portconf + 9990)
sleep 1
time=$(date +%d-%m-%Y-%H-%M)
mkdir -p /dados/bkp_VTA/$cliente-$time
bkp=/dados/bkp_VTA/$cliente-$time
export JAVA_HOME=/dados/jdk-11.0.5
/dados/$cliente/bin/jboss-cli.sh --user=admin --password=rjmaster09 --connect controller=localhost:$portconsole --commands="attachment save --operation=/deployment=VentaBoletosServidor.war:read-content() --file=$bkp/VentaBoletosServidor.war"
sleep 1
echo -e " "
echo -e "Iniciando atualização de "VentaBoletosServidor" do cliente "$cliente" para versão "$versaovta"..."
/dados/$cliente/bin/jboss-cli.sh --user=admin --password=rjmaster09 --connect controller=localhost:$portconsole --commands="deployment deploy-file --replace /tmp/VentaBoletosServidor.war"
echo -e " "
sleep 5
echo -e "reiniciando $cliente ... "
systemctl restart $cliente
echo -e " "
URL="http://$IPPRIV:$portapp"
while true; do
STATUS_CODE=$(curl -o /dev/null -s -w "%{http_code}" "$URL")
if [ "$STATUS_CODE" -eq 200 ]; then
echo -e "--------------------------------------------------"
echo -e "Restart finalizado!!! $cliente NO AR!!!"
echo -e "--------------------------------------------------"
break
else
echo -e "aguardando $cliente subir ..."
fi
sleep 5
done
echo -e " "
logt=$(date +%d-%m-%Y)
echo -e "Gravando log da atualização em "/dados/$cliente/standalone/log/atualizacao_$logt.log" ..."
feito=$(echo -e $userj | tr a-z A-Z)
versaonova=$(curl -L -s http://$IPPRIV:$portapp/VentaBoletosServidor | grep VBS)
echo -e " "
echo -e "Atualização do cliente "$cliente" para versão "$versaonova" concluída!!! "
echo -e " "
echo -e "
----------------------------------------------------------------------------------
- Atualização ***VentaBoletosServidor***
- Data/Hora: $time
- Atualizando cliente: $cliente
- Versão antiga: $versaoatual
- Versão NOVA: *** $versaonova ***
- Arquivo baixado: $vtaescolhido
- Backup salvo em "$bkp/VentaBoletosServidor.war"
- Endereço: $URL/VentaBoletosServidor
- Console: http://$IPPRIV:$portconsole
- Feito por: $feito
##################################################################################
#- Em caso de Rollback execute o comando abaixo:
export JAVA_HOME=/dados/jdk-11.0.5 && /dados/$cliente/bin/jboss-cli.sh --user=admin --password=rjmaster09 --connect controller=localhost:$portconsole --commands=\"deployment deploy-file --replace $bkp/VentaBoletosServidor.war\"
##################################################################################
----------------------------------------------------------------------------------" >> /dados/$cliente/standalone/log/atualizacao_$logt.log
echo -e " "
echo -e "- Versão antiga: $versaoatual"
echo -e " "
echo -e "- Nova Versão: $versaonova "
echo -e " "
echo -e "- Endereço: $URL/VentaBoletosServidor"
echo -e " "
echo -e "- Console: http://$IPPRIV:$portconsole"
echo -e " "
echo -e "##############F-I-N-A-L-I-Z-A-D-O!!!##################################"
exit 0
;;
2|EventosExtrasServidor)
echo -e " "
echo -e "Opção \"2 - EventosExtrasServidor\" foi escolhida..."
sleep 2
echo -e " "
echo -e "Listando clientes neste server..."
echo -e "-------------------------------------------------"
echo -e "$listaclientes"
echo -e "-------------------------------------------------"
read -p "COPIE e COLE ou digite qual cliente será atualizado: " cliente
echo -e " "
portconf=$(cat /dados/$cliente/standalone/configuration/standalone.xml | grep "jboss.socket.binding.port-offset" | cut -d ":" -f 2 | tr -d '}">')
portapp=$(expr $portconf + 8080)
sleep 1
versaoatual=$(curl -L -s http://$IPPRIV:$portapp/EventosExtrasServidor | grep EES)
echo -e " "
echo -e "A versão atual do EventosExtrasServidor de $cliente é: "
echo -e " "
echo -e "###############################"
echo -e " $versaoatual"
echo -e "###############################"
echo -e " "
echo -e "Abaixo, informe seu usuario e senha do Jenkins..."
echo -e " "
echo -e " https://jenkinstotalbus.rjconsultores.com.br "
echo -e " "
read -p "Digite seu USUÁRIO do Jenkins: " userj
echo -e " "
read -s -p "Digite sua SENHA do Jenkins: " passj
echo -e " "
echo -e "Validando usuario e senha..."
echo -e " "
validj=$(curl -s -w "%{http_code}" -su "$userj:$passj" -o /dev/null "https://jenkinstotalbus.rjconsultores.com.br" ; echo)
if [[ "$validj" -eq 200 ]]; then
echo "Usuário e senha validado com sucesso!"
elif [[ "$validj" -eq 401 ]]; then
echo -e "Usuário ou senha incorretos."
echo -e "Tente novamente..."
exit 0
else
echo "Erro ao tentar logar. Código HTTP: $validj"
echo -e "Finalizando script."
exit 1
fi
echo -e " "
read -p "Informe o NÚMERO da versão do EventosExtrasServidor: " versaoees
echo -e " "
sleep 3
listees=$(curl https://jenkinstotalbus.rjconsultores.com.br/job/SCO%20-%20EventosExtrasServidor/$versaoees/artifact/dist/ -su $userj:$passj | grep -oP '(?<=href=")[^"]+\.war(?=")')
if [ -z "$listees" ]; then
echo -e "A versão $versaoees do EventosExtrasServidor não está mais disponível para download."
echo -e "Verifique e execute novamente."
echo -e "Finalizado!!!"
exit 0
else
echo -e "Listando arquivos disponíveis da versão ***" $versaoees "***"
echo -e "--------------------------------------------"
echo -e "$listees"
echo -e "--------------------------------------------"
fi
echo -e " "
read -p "COPIE e COLE ou digite qual arquivo listado vai ser utilizado: " eesescolhido
echo -e " "
echo -e "Baixando $eesescolhido versão $versaoees ..."
rm -rf /tmp/EventosExtrasServidor.war
curl -u $userj:$passj -o /tmp/$eesescolhido https://jenkinstotalbus.rjconsultores.com.br/job/SCO%20-%20EventosExtrasServidor/$versaoees/artifact/dist/$eesescolhido
echo -e " "
mv /tmp/$eesescolhido /tmp/EventosExtrasServidor.war
echo -e " "
sleep 1
echo -e "***Iniciando backup do "EventosExtrasServidor.war" de " $cliente " ..."
echo -e " "
portconf=$(cat /dados/$cliente/standalone/configuration/standalone.xml | grep "socket-binding-group name" | cut -d ":" -f 2 | tr -d '}">')
portconsole=$(expr $portconf + 9990)
sleep 1
time=$(date +%d-%m-%Y-%H-%M)
mkdir -p /dados/bkp_EES/$cliente-$time
bkp=/dados/bkp_EES/$cliente-$time
export JAVA_HOME=/dados/jdk-11.0.5
/dados/$cliente/bin/jboss-cli.sh --user=admin --password=rjmaster09 --connect controller=localhost:$portconsole --commands="attachment save --operation=/deployment=EventosExtrasServidor.war:read-content() --file=$bkp/EventosExtrasServidor.war"
sleep 1
echo -e " "
echo -e "Iniciando atualização de "EventosExtrasServidor" do cliente "$cliente" para versão "$versaoees"..."
/dados/$cliente/bin/jboss-cli.sh --user=admin --password=rjmaster09 --connect controller=localhost:$portconsole --commands="deployment deploy-file --replace /tmp/EventosExtrasServidor.war"
echo -e " "
echo -e "reiniciando $cliente ... "
systemctl restart $cliente
echo -e " "
URL="http://$IPPRIV:$portapp"
while true; do
STATUS_CODE=$(curl -o /dev/null -s -w "%{http_code}" "$URL")
if [ "$STATUS_CODE" -eq 200 ]; then
echo -e "--------------------------------------------------"
echo -e "Restart finalizado!!! $cliente NO AR!!!"
echo -e "--------------------------------------------------"
break
else
echo -e "aguardando $cliente subir ..."
fi
sleep 5
done
echo -e " "
logt=$(date +%d-%m-%Y)
echo -e "Gravando log da atualização em "/dados/$cliente/standalone/log/atualizacao_$logt.log" ..."
feito=$(echo -e $userj | tr a-z A-Z)
versaonova=$(curl -L -s http://$IPPRIV:$portapp/EventosExtrasServidor | grep EES)
echo -e " "
echo -e "Atualização do cliente "$cliente" para versão "$versaonova" concluída!!! "
echo -e " "
echo -e "
----------------------------------------------------------------------------------
- Atualização ***EventosExtrasServidor***
- Data/Hora: $time
- Atualizando cliente: $cliente
- Versão antiga: $versaoatual
- Versão NOVA: *** $versaonova ***
- Arquivo baixado: $eesescolhido
- Backup salvo em "$bkp/EventosExtrasServidor.war"
- Endereço: $URL/EventosExtrasServidor
- Console: http://$IPPRIV:$portconsole
- Feito por: $feito
##################################################################################
#- Em caso de Rollback execute o comando abaixo:
export JAVA_HOME=/dados/jdk-11.0.5 && /dados/$cliente/bin/jboss-cli.sh --user=admin --password=rjmaster09 --connect controller=localhost:$portconsole --commands=\"deployment deploy-file --replace $bkp/EventosExtrasServidor.war\"
##################################################################################
----------------------------------------------------------------------------------" >> /dados/$cliente/standalone/log/atualizacao_$logt.log
echo -e " "
echo -e "- Versão antiga: $versaoatual"
echo -e " "
echo -e "- Nova Versão: $versaonova "
echo -e " "
echo -e "- Endereço: $URL/EventosExtrasServidor"
echo -e " "
echo -e "- Console: http://$IPPRIV:$portconsole"
echo -e " "
echo -e "##############F-I-N-A-L-I-Z-A-D-O!!!##################################"
exit 0
;;
3|TareasAgendadas)
echo -e " "
echo -e "Opção \"3 - TareasAgendadas\" foi escolhida..."
sleep 2
echo -e " "
echo -e "Listando clientes neste server..."
echo -e "-------------------------------------------------"
echo -e "$listaclientes"
echo -e "-------------------------------------------------"
read -p "COPIE e COLE ou digite qual cliente será atualizado: " cliente
echo -e " "
portconf=$(cat /dados/$cliente/standalone/configuration/standalone.xml | grep "jboss.socket.binding.port-offset" | cut -d ":" -f 2 | tr -d '}">')
portapp=$(expr $portconf + 8080)
portconsole=$(expr $portconf + 9990)
sleep 1
versaoatual=$(curl -L -s http://$IPPRIV:$portapp/TareasAgendadas | grep TAG)
echo -e " "
echo -e "Verificando se existe TAREAS em \"$cliente\" ..."
echo -e " "
sleep 1
export JAVA_HOME=/dados/jdk-11.0.5
TARCHECK=$(/dados/$cliente/bin/jboss-cli.sh --user=admin --password=rjmaster09 --connect controller=localhost:$portconsole --commands="deployment-info" | grep "Tareas")
if [[ -n "$TARCHECK" ]]; then
echo "Tareas encontrado!!!"
echo "Seguindo com a atualização..."
else
echo "Tareas NÃO ENCONTRADO!!!"
echo "Verifique em outro servidor..."
echo " "
echo "...finalizando esta atualização!"
exit 1
fi
sleep 1
echo " "
echo -e "A versão atual do TareasAgendadas de $cliente é: "
echo -e " "
echo -e "###############################"
echo -e " $versaoatual"
echo -e "###############################"
echo -e " "
echo -e "Abaixo, informe seu usuario e senha do Jenkins..."
echo -e " "
echo -e " https://jenkinstotalbus.rjconsultores.com.br "
echo -e " "
read -p "Digite seu USUÁRIO do Jenkins: " userj
echo -e " "
read -s -p "Digite sua SENHA do Jenkins: " passj
echo -e " "
echo -e "Validando usuario e senha..."
echo -e " "
validj=$(curl -s -w "%{http_code}" -su "$userj:$passj" -o /dev/null "https://jenkinstotalbus.rjconsultores.com.br" ; echo)
if [[ "$validj" -eq 200 ]]; then
echo "Usuário e senha validado com sucesso!"
elif [[ "$validj" -eq 401 ]]; then
echo -e "Usuário ou senha incorretos."
echo -e "Tente novamente..."
exit 0
else
echo "Erro ao tentar logar. Código HTTP: $validj"
echo -e "Finalizando script."
exit 1
fi
echo -e " "
read -p "Informe o NÚMERO da versão do TareasAgendadas: " versaotar
echo -e " "
sleep 3
listtar=$(curl https://jenkinstotalbus.rjconsultores.com.br/job/SCO%20-%20TareasAgendadas/$versaotar/artifact/dist/ -su $userj:$passj | grep -oP '(?<=href=")[^"]+\.war(?=")')
if [ -z "$listtar" ]; then
echo -e "A versão $versaotar do TareasAgendadas não está mais disponível para download."
echo -e "Verifique e execute novamente."
echo -e "Finalizado!!!"
exit 0
else
echo -e "Listando arquivos disponíveis da versão ***" $versaotar "***"
echo -e "--------------------------------------------"
echo -e "$listtar"
echo -e "--------------------------------------------"
fi
echo -e " "
read -p "COPIE e COLE ou digite qual arquivo listado vai ser utilizado: " tarescolhido
echo -e " "
echo -e "Baixando $tarescolhido versão $versaotar ..."
rm -rf /tmp/TareasAgendadas.war
curl -u $userj:$passj -o /tmp/$tarescolhido https://jenkinstotalbus.rjconsultores.com.br/job/SCO%20-%20TareasAgendadas/$versaotar/artifact/dist/$tarescolhido
echo -e " "
mv /tmp/$tarescolhido /tmp/TareasAgendadas.war
echo -e " "
sleep 1
echo -e "***Iniciando backup do "TareasAgendadas.war" de " $cliente " ..."
echo -e " "
sleep 1
time=$(date +%d-%m-%Y-%H-%M)
mkdir -p /dados/bkp_TAR/$cliente-$time
bkp=/dados/bkp_TAR/$cliente-$time
export JAVA_HOME=/dados/jdk-11.0.5
/dados/$cliente/bin/jboss-cli.sh --user=admin --password=rjmaster09 --connect controller=localhost:$portconsole --commands="attachment save --operation=/deployment=TareasAgendadas.war:read-content() --file=$bkp/TareasAgendadas.war"
sleep 1
echo -e " "
echo -e "Iniciando atualização de "TareasAgendadas" do cliente "$cliente" para versão "$versaotar"..."
/dados/$cliente/bin/jboss-cli.sh --user=admin --password=rjmaster09 --connect controller=localhost:$portconsole --commands="deployment deploy-file --replace /tmp/TareasAgendadas.war"
echo -e " "
sleep 5
echo -e "reiniciando $cliente ... "
systemctl restart $cliente
echo -e " "
URL="http://$IPPRIV:$portapp"
while true; do
STATUS_CODE=$(curl -o /dev/null -s -w "%{http_code}" "$URL")
if [ "$STATUS_CODE" -eq 200 ]; then
echo -e "--------------------------------------------------"
echo -e "Restart finalizado!!! $cliente NO AR!!!"
echo -e "--------------------------------------------------"
break
else
echo -e "aguardando $cliente subir ..."
fi
sleep 5
done
echo -e " "
logt=$(date +%d-%m-%Y)
echo -e "Gravando log da atualização em "/dados/$cliente/standalone/log/atualizacao_$logt.log" ..."
feito=$(echo -e $userj | tr a-z A-Z)
versaonova=$(curl -L -s http://$IPPRIV:$portapp/TareasAgendadas | grep TAG)
echo -e " "
echo -e "Atualização do cliente "$cliente" para versão "$versaonova" concluída!!! "
echo -e " "
echo -e "
----------------------------------------------------------------------------------
- Atualização ***TareasAgendadas***
- Data/Hora: $time
- Atualizando cliente: $cliente
- Versão antiga: $versaoatual
- Versão NOVA: *** $versaonova ***
- Arquivo baixado: $tarescolhido
- Backup salvo em "$bkp/TareasAgendadas.war"
- Endereço: $URL/TareasAgendadas
- Console: http://$IPPRIV:$portconsole
- Feito por: $feito
##################################################################################
#- Em caso de Rollback execute o comando abaixo:
export JAVA_HOME=/dados/jdk-11.0.5 && /dados/$cliente/bin/jboss-cli.sh --user=admin --password=rjmaster09 --connect controller=localhost:$portconsole --commands=\"deployment deploy-file --replace $bkp/TareasAgendadas.war\"
##################################################################################
----------------------------------------------------------------------------------" >> /dados/$cliente/standalone/log/atualizacao_$logt.log
echo -e " "
echo -e "- Versão antiga: $versaoatual"
echo -e " "
echo -e "- Nova Versão: $versaonova "
echo -e " "
echo -e "- Endereço: $URL/TareasAgendadas"
echo -e " "
echo -e "- Console: http://$IPPRIV:$portconsole"
echo -e " "
echo -e "##############F-I-N-A-L-I-Z-A-D-O!!!##################################"
exit 0
;;
4|VentaBoletosClientes)
echo -e " "
echo -e "Opção \"4 - VentaBoletosCliente\" foi escolhida..."
sleep 2
echo -e " "
echo -e "Listando clientes neste server..."
echo -e "-------------------------------------------------"
echo -e "$listaclientes"
echo -e "-------------------------------------------------"
read -p "COPIE e COLE ou digite qual cliente será atualizado: " cliente
echo -e " "
portconf=$(cat /dados/$cliente/standalone/configuration/standalone.xml | grep "jboss.socket.binding.port-offset" | cut -d ":" -f 2 | tr -d '}">')
portapp=$(expr $portconf + 8080)
sleep 1
echo -e "Verificando se VentaBoletosClientes está neste local para cliente \"$cliente\" ..."
echo -e " "
VALIDAVBC="/dados/$cliente/standalone/deployments/webstart.war/sco2/SCO.jar.pack.gz"
if [ ! -f "$VALIDAVBC" ]; then
echo -e "VentaBoletosClientes para $cliente não encontrado neste local."
echo -e "Verifique onde está instalado e execute novamente."
sleep 1
echo -e "Finalizado!"
exit 0
else
echo "VentaBoletosClientes encontrado neste local..."
echo -e "$VALIDAVBC"
echo -e "Continuando atualização..."
sleep 1
fi
echo -e " "
echo -e "Verificando a versão atual..."
[ ! -x "$(which unzip)" ] && echo "Instalando... " && sudo apt install unzip 1> /dev/null 2>&1 -y # unzip instalado?
mkdir -p /tmp/$cliente
cp -r /dados/$cliente/standalone/deployments/webstart.war/sco2/SCO.jar.pack.gz /tmp/$cliente
/dados/jdk-11.0.5/bin/unpack200 /tmp/$cliente/SCO.jar.pack.gz /tmp/$cliente/SCO.jar 1> /dev/null 2>&1
versaoatual=$(unzip -p /tmp/$cliente/SCO.jar versionVBC.info ; echo)
echo -e " "
echo -e "A versão atual é: $versaoatual"
echo -e " "
echo -e "Abaixo, informe seu usuario e senha do Jenkins..."
echo -e " "
echo -e " https://jenkinstotalbus.rjconsultores.com.br "
echo -e " "
read -p "Digite seu USUÁRIO do Jenkins: " userj
echo -e " "
read -s -p "Digite sua SENHA do Jenkins: " passj
echo -e " "
echo -e "Validando usuario e senha..."
echo -e " "
validj=$(curl -s -w "%{http_code}" -su "$userj:$passj" -o /dev/null "https://jenkinstotalbus.rjconsultores.com.br" ; echo)
if [[ "$validj" -eq 200 ]]; then
echo "Usuário e senha validado com sucesso!"
elif [[ "$validj" -eq 401 ]]; then
echo -e "Usuário ou senha incorretos."
echo -e "Tente novamente..."
exit 0
else
echo "Erro ao tentar logar. Código HTTP: $validj"
echo -e "Finalizando script."
exit 1
fi
echo -e " "
read -p "Informe o NÚMERO da versão do VentaBoletosCliente: " versaoclient
echo -e " "
sleep 3
listclient=$(curl https://jenkinstotalbus.rjconsultores.com.br/job/SCO%20-%20VentaBoletosCliente/$versaoclient/artifact/dist/ -su $userj:$passj | grep -oP '(?<=href=")[^"]+\.gz(?=")')
if [ -z "$listclient" ]; then
echo -e "A versão $versaoclient do VentaBoletosClientes não está mais disponível para download."
echo -e "Verifique e execute novamente."
echo -e "Finalizado!!!"
exit 0
else
echo -e "Listando arquivos disponíveis da versão ***" $versaoclient "***"
echo -e "--------------------------------------------"
echo -e "$listclient"
echo -e "--------------------------------------------"
fi
echo -e " "
read -p "COPIE e COLE ou digite qual arquivo listado vai ser utilizado: " clientescolhido
echo -e " "
echo -e "Baixando $clientescolhido versão $versaoclient ..."
rm -rf /tmp/SCO.jar.pack.gz
curl -u $userj:$passj -o /tmp/$clientescolhido https://jenkinstotalbus.rjconsultores.com.br/job/SCO%20-%20VentaBoletosCliente/$versaoclient/artifact/dist/$clientescolhido
echo -e " "
mv /tmp/$clientescolhido /tmp/SCO.jar.pack.gz
echo -e " "
sleep 1
echo -e "***Iniciando backup do "SCO.jar.pack.gz" de " $cliente " ..."
echo -e " "
portconf=$(cat /dados/$cliente/standalone/configuration/standalone.xml | grep "socket-binding-group name" | cut -d ":" -f 2 | tr -d '}">')
portconsole=$(expr $portconf + 9990)
sleep 1
time=$(date +%d-%m-%Y-%H-%M)
mkdir -p /dados/bkp_VBC/$cliente-$time
bkp=/dados/bkp_VBC/$cliente-$time
cp -rv /dados/$cliente/standalone/deployments/webstart.war/sco2/SCO.jar.pack.gz $bkp/SCO.jar.pack.gz
rm -rf /dados/$cliente/standalone/deployments/webstart.war/sco2/SCO.jar.pack.gz*
rm -rf /dados/$cliente/standalone/deployments/webstart.war/sco2/scopaf.conf*
sleep 1
echo -e " "
echo -e "Iniciando atualização de "VentaBoletosCliente" do cliente "$cliente" para versão "$versaoclient"..."
cp -rv /tmp/SCO.jar.pack.gz /dados/$cliente/standalone/deployments/webstart.war/sco2/
chown -Rf $cliente:$cliente /dados/$cliente/standalone/deployments/webstart.war/sco2/
echo -e " "
sleep 5
echo -e "Verificando nova versão..."
/dados/jdk-11.0.5/bin/unpack200 /tmp/SCO.jar.pack.gz /tmp/SCO.jar 1> /dev/null 2>&1
versaonova=$(unzip -p /tmp/SCO.jar versionVBC.info ; echo)
logt=$(date +%d-%m-%Y)
echo -e "Gravando log da atualização em "/dados/$cliente/standalone/log/atualizacao_$logt.log" ..."
feito=$(echo -e $userj | tr a-z A-Z)
echo -e " "
echo -e "Atualização do cliente "$cliente" para versão "$versaonova" concluída!!! "
echo -e " "
echo -e "
----------------------------------------------------------------------------------
- Atualização ***VentaBoletosClientes***
- Data/Hora: $time
- Atualizando cliente: $cliente
- Versão antiga: $versaoatual
- Versão NOVA: *** $versaonova ***
- Arquivo baixado: $clientescolhido
- Backup salvo em "$bkp/SCO.jar.pack.gz"
- Console: http://$IPPRIV:$portconsole
- Feito por: $feito
################################################################################################################
#- Em caso de Rollback execute os comandos abaixo:
mv /dados/$cliente/standalone/deployments/webstart.war/sco2/SCO.jar.pack.gz /tmp/SCO.jar.pack.gz_RB
rm -rf /dados/$cliente/standalone/deployments/webstart.war/sco2/scopaf.conf*
cp -r $bkp/SCO.jar.pack.gz /dados/$cliente/standalone/deployments/webstart.war/sco2/SCO.jar.pack.gz
chown -Rf $cliente:$cliente /dados/$cliente/standalone/deployments/webstart.war/sco2/
################################################################################################################
----------------------------------------------------------------------------------" >> /dados/$cliente/standalone/log/atualizacao_$logt.log
rm -rf /tmp/SCO*
rm -rf /tmp/$cliente
echo -e " "
echo -e "- Versão antiga: $versaoatual"
echo -e " "
echo -e "- Nova Versão: $versaonova "
echo -e " "
echo -e "- Console: http://$IPPRIV:$portconsole"
echo -e " "
echo -e "##############F-I-N-A-L-I-Z-A-D-O!!!##################################"
exit 0
;;
5|ADM)
echo -e " "
echo -e "Opção \"5 - ADM foi escolhida...\""
sleep 2
echo -e " "
adms=$(ls /etc/systemd/system/ | grep ^wild* | sort | cut -d "." -f 1)
echo -e "####################################################"
echo -e "##### Listando ADMs que rodam neste servidor: #####"
echo -e "####################################################"
echo -e "----------------------------------------------------"
echo -e "$adms"
echo -e "----------------------------------------------------"
read -p "***COPIE e COLE*** ADM listado que deseja atualizar: " adm
echo -e " "
echo -e "Você COPIOU e COLOU >>>>>>> $adm <<<<<<<<"
echo -e " "
portconf=$(cat /dados/$adm/standalone/configuration/standalone.xml | grep "socket-binding-group name" | cut -d ":" -f 2 | tr -d '}">')
portconsole=$(expr $portconf + 9990)
sleep 1
echo -e " "
echo -e "Verificando se existe "ventaboletosadm" em \"$adm\" ..."
export JAVA_HOME=/dados/jdk-11.0.5
ADMCHECK=$(/dados/$adm/bin/jboss-cli.sh --user=admin --password=rjmaster09 --connect controller=localhost:$portconsole --commands="deployment-info" | grep "ventaboletosadm")
if [[ -n "$ADMCHECK" ]]; then
echo "ADM encontrado!!!"
echo "Seguindo com a atualização..."
else
echo "ADM NÃO ENCONTRADO!!!"
echo "Verifique em outro servidor..."
echo " "
echo "...finalizando esta atualização!"
exit 1
fi
echo -e " "
sleep 1
echo -e "Será feito o download da versão que você digitar abaixo: "
echo -e "####################################################"
read -p "Digite a versão do adm: " versaoadm
echo -e " "
echo -e "Baixando ADM versão --> $versaoadm <-- para atualização."
rm -rf /tmp/ventaboletosadm.war
curl -O http://52.5.53.15:8081/nexus/content/repositories/releases/br/com/rjconsultores/ventaboletosadm/$versaoadm/ventaboletosadm-$versaoadm.war
mv ventaboletosadm-$versaoadm.war /tmp/ventaboletosadm.war
sleep 2
echo -e " "
echo -e "#############################################################################################"
echo -e "Apagando backups antigos com mais de 14 dias..."
find "/dados/" -type d -name 'bkp_ADM_*' -mtime +14 -exec rm -rf {} \;
echo -e " "
echo -e "#############################################################################################"
echo -e "Apagando backups antigos com mais de 14 dias..."
find "/dados/bkp_ADM/" -type d -name '*' -mtime +14 -exec rm -rf {} \;
VER="/dados/$adm/standalone/deployments/ventaboletosadm*"
if [ -e $VER ]; then
mv $VER /opt/
else
echo -e "***Iniciando backup do "ventaboletosadm.war" de " $adm " ..."
fi
echo -e " "
time=$(date +%d-%m-%Y-%H-%M)
mkdir -p /dados/bkp_ADM/$adm-$time
bkp=/dados/bkp_ADM/$adm-$time
export JAVA_HOME=/dados/jdk-11.0.5
/dados/$adm/bin/jboss-cli.sh --user=admin --password=rjmaster09 --connect controller=localhost:$portconsole --commands="attachment save --operation=/deployment=ventaboletosadm.war:read-content() --file=$bkp/ventaboletosadm.war"
sleep 2
echo -e " "
echo "################################################################################################"
echo -e "Iniciando Atualização do ADM de $adm ..."
echo -e " "
sleep 2
echo -e "***Você pode duplicar este terminal e acompanhar o log com o comando abaixo: ***"
echo -e " "
echo -e "tail -f /dados/$adm/standalone/log/server.log"
export JAVA_HOME=/dados/jdk-11.0.5
/dados/$adm/bin/jboss-cli.sh --user=admin --password=rjmaster09 --connect controller=localhost:$portconsole --commands="deployment deploy-file --replace /tmp/ventaboletosadm.war"
echo -e "***********************************************************************"
bkpok="$bkp/ventaboletosadm.war"
echo -e "Backup salvo em: $bkpok "
echo -e "***********************************************************************"
echo -e "Favor acessar ADM via browser e validar. *****"
echo -e " "
portconf=$(cat /dados/$adm/standalone/configuration/standalone.xml | grep "jboss.socket.binding.port-offset" | cut -d ":" -f 2 | tr -d '}">')
portapp=$(expr $portconf + 8080)
[ ! -x "$(which unzip)" ] && echo "Instalando... " && sudo apt install unzip 1> /dev/null 2>&1 -y # unzip instalado?
versaonova=$(unzip -p /tmp/ventaboletosadm.war WEB-INF/classes/versionADM.info ; echo)
versaoantiga=$(unzip -p $bkp/ventaboletosadm.war WEB-INF/classes/versionADM.info ; echo)
echo -e "reiniciando $adm ... "
systemctl restart $adm
echo -e " "
URL="http://$IPPRIV:$portapp"
while true; do
STATUS_CODE=$(curl -o /dev/null -s -w "%{http_code}" "$URL")
if [ "$STATUS_CODE" -eq 200 ]; then
echo -e "--------------------------------------------------"
echo -e "Restart finalizado!!! $adm NO AR!!!"
echo -e "--------------------------------------------------"
break
else
echo -e "aguardando $adm subir ..."
fi
sleep 5
done
echo -e " "
logt=$(date +%d-%m-%Y)
echo -e "Gravando log da atualização em "/dados/$adm/standalone/log/atualizacao_$logt.log" ..."
feito=$(who | awk '{print $1}' | head -n 1 | tr a-z A-Z)
echo -e "
----------------------------------------------------------------------------------
- Atualização >>>ADM<<<
- Data/Hora: $time
- Atualizando cliente: $adm
- Versão antiga: $versaoantiga
- Versão NOVA: *** $versaonova ***
- Backup salvo em "$bkp/ventaboletosadm.war"
- Endereço: $URL/ventaboletosadm
- Console: http://$IPPRIV:$portconsole
- Feito por: $feito
##################################################################################
#- Em caso de Rollback execute o comando abaixo:
export JAVA_HOME=/dados/jdk-11.0.5 && /dados/$adm/bin/jboss-cli.sh --user=admin --password=rjmaster09 --connect controller=localhost:$portconsole --commands=\"deployment deploy-file --replace $bkp/ventaboletosadm.war\"
##################################################################################
----------------------------------------------------------------------------------" >> /dados/$adm/standalone/log/atualizacao_$logt.log
echo -e " "
echo -e "- Versão antiga: $versaoantiga"
echo -e " "
echo -e "- Versão NOVA: *** $versaonova ***"
echo -e " "
echo -e "- Endereço: $URL/ventaboletosadm"
echo -e " "
echo -e "- Console: http://$IPPRIV:$portconsole"
echo -e " "
sleep 1
echo -e "***********************************************************************"
echo -e "*****Atualização do " $adm " para a $versaonova finalizada!!!****"
echo -e "***********************************************************************"
rm -rf /tmp/ventaboletosadm.war
;;
6|Digitação)
echo -e " "
echo -e "Opção \"6 - Digitação\" foi escolhida..."
sleep 2
echo -e " "
echo -e "Listando clientes neste server..."
echo -e "-------------------------------------------------"
echo -e "$listaclientes"
echo -e "-------------------------------------------------"
read -p "COPIE e COLE ou digite qual cliente será atualizado: " cliente
echo -e " "
portconf=$(cat /dados/$cliente/standalone/configuration/standalone.xml | grep "jboss.socket.binding.port-offset" | cut -d ":" -f 2 | tr -d '}">')
portapp=$(expr $portconf + 8080)
sleep 1
echo -e "Verificando se existe DIGITAÇÃO neste local para cliente \"$cliente\" ..."
echo -e " "
sleep 1
DIGITA="/dados/$cliente/standalone/deployments/webstart.war/sco2/digitacao.jar.pack.gz"
if [ ! -f "$DIGITA" ]; then
echo -e "DIGITAÇÃO para $cliente não encontrado neste local."
echo -e "Verifique onde está instalado e execute novamente."
sleep 1
echo -e "Finalizado!"
exit 0
else
echo "DIGITAÇÃO encontrado neste local..."
echo -e "$DIGITA"
echo -e "Continuando atualização..."
sleep 1
fi
echo -e " "
echo -e "Verificando a versão atual..."
[ ! -x "$(which unzip)" ] && echo "Instalando... " && sudo apt install unzip 1> /dev/null 2>&1 -y # unzip instalado?
mkdir -p /tmp/$cliente
cp -r /dados/$cliente/standalone/deployments/webstart.war/sco2/digitacao.jar.pack.gz /tmp/$cliente
/dados/jdk-11.0.5/bin/unpack200 /tmp/$cliente/digitacao.jar.pack.gz /tmp/$cliente/digitacao.jar 1> /dev/null 2>&1
versaoatual=$(unzip -p /tmp/$cliente/digitacao.jar version.properties | awk -F= '/^version=/ {print $2}')
echo -e " "
echo -e "A versão atual é: \"$versaoatual\""
echo -e " "
echo -e "Abaixo, informe seu usuario e senha do Jenkins..."
echo -e " "
echo -e " https://jenkinstotalbus.rjconsultores.com.br "
echo -e " "
read -p "Digite seu USUÁRIO do Jenkins: " userj
echo -e " "
read -s -p "Digite sua SENHA do Jenkins: " passj
echo -e " "
echo -e "Validando usuario e senha..."
echo -e " "
validj=$(curl -s -w "%{http_code}" -su "$userj:$passj" -o /dev/null "https://jenkinstotalbus.rjconsultores.com.br" ; echo)
if [[ "$validj" -eq 200 ]]; then
echo "Usuário e senha validado com sucesso!"
elif [[ "$validj" -eq 401 ]]; then
echo -e "Usuário ou senha incorretos."
echo -e "Tente novamente..."
exit 0
else
echo "Erro ao tentar logar. Código HTTP: $validj"
echo -e "Finalizando script."
exit 1
fi
echo -e " "
read -p "Informe o NÚMERO da versão do Digitação: " versaodig
echo -e " "
sleep 3
listclient=$(curl https://jenkinstotalbus.rjconsultores.com.br/job/SCO%20-%20Digitacao/$versaodig/artifact/firmar/ -su "$userj:$passj" | grep -oP '<a href="\K[^"]+(?=")' | grep -vE '^(/|#|\?|http://|\.)' | grep -v '/$')
if [ -z "$listclient" ]; then
echo -e "A versão $versaodig do Digitação não está disponível para download."
echo -e "Verifique e execute novamente."
echo -e "Finalizado!!!"
exit 0
else
echo -e "Listando clientes disponíveis para versão ***" $versaodig "***"
echo -e "--------------------------------------------"
echo -e "$listclient"
echo -e "--------------------------------------------"
fi
echo -e " "
read -p "COPIE e COLE ou digite qual cliente será utilizado: " digescolhido
echo -e " "
echo -e "Baixando $digescolhido versão $versaodig ..."
rm -rf /tmp/digitacao.jar.pack.gz
filedig=$(curl -u $userj:$passj -o /tmp/digitacao.jar.pack.gz https://jenkinstotalbus.rjconsultores.com.br/job/SCO%20-%20Digitacao/$versaodig/artifact/firmar/$digescolhido/digitacao.jar.pack.gz)
echo -e " "
sleep 1
echo -e "***Iniciando backup do \"digitacao.jar.pack.gz\" de \" $cliente \" ..."
echo -e " "
portconf=$(cat /dados/$cliente/standalone/configuration/standalone.xml | grep "socket-binding-group name" | cut -d ":" -f 2 | tr -d '}">')
portconsole=$(expr $portconf + 9990)
sleep 1
time=$(date +%d-%m-%Y-%H-%M)
mkdir -p /dados/bkp_DIG/$cliente-$time
bkp=/dados/bkp_DIG/$cliente-$time
cp -rv /dados/$cliente/standalone/deployments/webstart.war/sco2/digitacao.jar.pack.gz $bkp/digitacao.jar.pack.gz
rm -rf /dados/$cliente/standalone/deployments/webstart.war/sco2/digitacao.jar.pack.gz*
rm -rf /dados/$cliente/standalone/deployments/webstart.war/sco2/scopaf.conf*
sleep 1
echo -e " "
echo -e "Iniciando atualização do \"Digitação\" do cliente \"$cliente\" para versão \"$versaodig\"..."
cp -rv /tmp/digitacao.jar.pack.gz /dados/$cliente/standalone/deployments/webstart.war/sco2/
chown -Rf $cliente:$cliente /dados/$cliente/standalone/deployments/webstart.war/sco2/
echo -e " "
sleep 5
echo -e "Verificando nova versão..."
echo -e " "
/dados/jdk-11.0.5/bin/unpack200 /tmp/digitacao.jar.pack.gz /tmp/digitacao.jar 1> /dev/null 2>&1
versaonova=$(unzip -p /tmp/digitacao.jar version.properties | awk -F= '/^version=/ {print $2}')
logt=$(date +%d-%m-%Y)
echo -e "Gravando log da atualização em \"/dados/$cliente/standalone/log/atualizacao_$logt.log\" ..."
feito=$(echo -e $userj | tr a-z A-Z)
echo -e " "
echo -e "Atualização do Digitação "$cliente" para versão "$versaonova" concluída!!! "
echo -e " "
echo -e "
----------------------------------------------------------------------------------
- Atualização ***Digitação***
- Data/Hora: $time
- Atualizando cliente: $cliente
- Versão antiga: $versaoatual
- Versão NOVA: *** $versaonova ***
- Arquivo baixado: $filedig
- Backup salvo em \"$bkp/digitacao.jar.pack.gz\"
- Console: http://$IPPRIV:$portconsole
- Feito por: $feito
################################################################################################################
#- Em caso de Rollback execute os comandos abaixo:
mv /dados/$cliente/standalone/deployments/webstart.war/sco2/digitacao.jar.pack.gz /tmp/digitacao.jar.pack.gz_RB
rm -rf /dados/$cliente/standalone/deployments/webstart.war/sco2/scopaf.conf*
cp -r $bkp/digitacao.jar.pack.gz /dados/$cliente/standalone/deployments/webstart.war/sco2/digitacao.jar.pack.gz
chown -Rf $cliente:$cliente /dados/$cliente/standalone/deployments/webstart.war/sco2/
################################################################################################################
----------------------------------------------------------------------------------" >> /dados/$cliente/standalone/log/atualizacao_$logt.log
rm -rf /tmp/digitacao*
rm -rf /tmp/$cliente
echo -e " "
echo -e "- Versão antiga: $versaoatual"
echo -e " "
echo -e "- Nova Versão: $versaonova "
echo -e " "
echo -e "##############F-I-N-A-L-I-Z-A-D-O!!!##################################"
exit 0
;;
*)
echo "Opção inválida, tente novamente."
exit 1 ;;
esac