add VBS MAVEN

master
root 2026-03-23 13:02:30 -03:00
parent 37cea28ff7
commit 699cac973d
1 changed files with 152 additions and 20 deletions

View File

@ -21,49 +21,52 @@ case $service in
1|VentaBoletosServidor)
echo -e " "
echo -e "Opção \"1 - VentaBoletosServidor\" foi escolhida..."
echo -e " ^^^^^^^^^^^^^^^^^^^^^^^^^ "
sleep 2
echo -e " "
echo -e "Listando clientes neste server..."
echo -e "-------------------------------------------------"
echo -e "$listaclientes"
echo -e "-------------------------------------------------"
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..."
read -p "Informe o NÚMERO da NOVA versão do VentaBoletosServidor: " versaovta
echo -e " "
if [ "$versaovta" -ge 6500 ]; then
echo -e "Abaixo, informe seu usuario e senha do Jenkins Totalbus..."
echo -e " "
echo -e " ############################################ "
echo -e " https://jenkinstotalbus.rjconsultores.com.br "
echo -e " ############################################ "
echo -e " "
read -p "Digite seu USUÁRIO do Jenkins: " userj
read -p "Digite seu USUÁRIO do Jenkins Totalbus: " userj
echo -e " "
read -s -p "Digite sua SENHA do Jenkins: " passj
read -s -p "Digite sua SENHA do Jenkins Totalbus: " 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
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 " "
sleep 3
listvta=$(curl https://jenkinstotalbus.rjconsultores.com.br/job/SCO%20-%20VentaBoletosServidor/$versaovta/artifact/dist/ -su $userj:$passj | grep -oP '(?<=href=")[^"]+\.war(?=")')
@ -157,6 +160,135 @@ case $service in
echo -e " "
echo -e "##############F-I-N-A-L-I-Z-A-D-O!!!##################################"
exit 0
else
echo "A versão digitada foi "$versaovta"..."
echo " "
echo -e "###################"
echo -e "...versão do Maven "
echo -e "###################"
sleep 2
echo -e " "
echo -e "Abaixo, informe seu usuario e senha do Jenkins VENTA..."
echo -e " ^^^^^^^ ^^^^^ "
echo -e " "
sleep 1
echo -e "###########################################"
echo -e " https://jenkinsventa.rjconsultores.com.br "
echo -e "###########################################"
echo -e " "
read -p "Digite seu USUÁRIO do Jenkins VENTA: " userj
echo -e " "
read -s -p "Digite sua SENHA do Jenkins VENTA: " passj
echo -e " "
echo -e "Validando usuario e senha..."
validj=$(curl -s -w "%{http_code}" -su "$userj:$passj" -o /dev/null "https://jenkinsventa.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 " "
sleep 1
echo -e "Baixando VentaBoletosServidor do Maven versão "$versaovta" ..."
echo -e " "
# Codifica os colchetes na URL
JENKINS_API_URL="https://jenkinsventa.rjconsultores.com.br/job/Vendas/job/ServidorVendas/job/Totalbus-Servidor-Build/api/json?tree=builds%5Bnumber,description,displayName%5D"
# Baixa o JSON autenticado
RESPONSE=$(curl -u "$userj:$passj" -s "$JENKINS_API_URL")
[ ! -x "$(which jq)" ] && sudo apt install jq -y # JQ instalado?
# Usa 'test' para buscar displayName que contenha a versão (mais tolerante com aspas extras)
DESCRIPTION=$(echo "$RESPONSE" | jq -r \
--arg versaovta "$versaovta" \
'.builds[] | select(.displayName | test($versaovta)) | .description' | head -n1)
if [ -z "$DESCRIPTION" ] || [ "$DESCRIPTION" == "null" ]; then
echo "Versão '$versaovta' não encontrada no Jenkins."
exit 1
fi
# Extrai a URL do WAR do campo description
WAR_URL=$(echo "$DESCRIPTION" | grep -oP "a href='\K[^']+")
if [ -z "$WAR_URL" ]; then
echo "Link para o WAR não encontrado no campo description."
exit 1
fi
# Baixa o arquivo
ARQUIVO=$(basename "$WAR_URL")
#echo "Baixando WAR: $ARQUIVO"
curl -u "$userj:$passj" -L -o /tmp/"$ARQUIVO" "$WAR_URL"
echo -e " "
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 - MAVEN***
- Data/Hora: "$time"
- Atualizando cliente: "$cliente"
- Versão antiga: "$versaoatual"
- Versão NOVA: *** "$versaonova" - MAVEN ***
- 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 "- 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!!!##################################"
fi
exit 0
;;