AtualizaTotalbus/atualiza_TotalBus.bash

367 lines
20 KiB
Bash
Executable File

#!/usr/bin/env bash
echo -e "####################################################"
echo -e "#Este script atualiza WILDFLY com: "
echo -e "# "
echo -e "# - VentaBoletosServidor"
echo -e "# - EventosExtrasServidor"
echo -e "# - TareasAgendadas"
echo -e "# - VentaBoletosClientes"
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 ou COPIE e COLE o que vai atualizar: " service
case $service in
VentaBoletosServidor)
echo -e "Opção "VentaBoletosServidor" foi escolhida..."
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)
echo -e "A porta da aplicação é: $portapp"
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 1
echo -e "Listando arquivos disponíveis da versão ***" $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(?=")')
echo -e "--------------------------------------------"
echo -e "$listvta"
echo -e "--------------------------------------------"
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)
echo -e "A porta da console é: $portconsole"
sleep 1
time=$(date +%Y-%m-%d-%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 "Atualização do cliente "$cliente" para versão "$versaovta" concluída!!! "
echo -e " "
echo -e "##############F-I-N-A-L-I-Z-A-D-O!!!##################################"
exit 0
;;
EventosExtrasServidor)
echo -e "Opção "EventosExtrasServidor" foi escolhida..."
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)
echo -e "A porta da aplicação é: $portapp"
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 1
echo -e "Listando arquivos disponíveis da versão ***" $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(?=")')
echo -e "--------------------------------------------"
echo -e "$listees"
echo -e "--------------------------------------------"
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)
echo -e "A porta da console é: $portconsole"
sleep 1
time=$(date +%Y-%m-%d-%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 " "
sleep 5
echo -e "Atualização do cliente "$cliente" para versão "$versaoees" concluída!!! "
echo -e " "
echo -e "##############F-I-N-A-L-I-Z-A-D-O!!!##################################"
exit 0
;;
TareasAgendadas)
echo -e "Opção "TareasAgendadas" foi escolhida..."
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)
echo -e "A porta da aplicação é: $portapp"
sleep 1
versaoatual=$(curl -L -s http://$IPPRIV:$portapp/TareasAgendadas | grep TAG)
echo -e " "
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 1
echo -e "Listando arquivos disponíveis da versão ***" $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(?=")')
echo -e "--------------------------------------------"
echo -e "$listtar"
echo -e "--------------------------------------------"
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 " "
portconf=$(cat /dados/$cliente/standalone/configuration/standalone.xml | grep "socket-binding-group name" | cut -d ":" -f 2 | tr -d '}">')
portconsole=$(expr $portconf + 9990)
echo -e "A porta da console é: $portconsole"
sleep 1
time=$(date +%Y-%m-%d-%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 "Atualização do cliente "$cliente" para versão "$versaotar" concluída!!! "
echo -e " "
echo -e "##############F-I-N-A-L-I-Z-A-D-O!!!##################################"
exit 0
;;
VentaBoletosClientes)
echo -e "Opção "VentaBoletosCliente" foi escolhida..."
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)
echo -e "A porta da aplicação é: $portapp"
sleep 1
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 1
echo -e "Listando arquivos disponíveis da versão ***" $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(?=")')
echo -e "--------------------------------------------"
echo -e "$listclient"
echo -e "--------------------------------------------"
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)
echo -e "A porta da console é: $portconsole"
sleep 1
time=$(date +%Y-%m-%d-%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 " "
systemctl restart $cliente
sleep 5
echo -e "Atualização do cliente "$cliente" para versão "$versaoclient" concluída!!! "
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