Advertisement
Guest User

Untitled

a guest
Sep 5th, 2018
109
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 7.56 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. # Textos reutilizáveis
  4. AWS_REPO="615999049566.dkr.ecr.us-east-1.amazonaws.com"
  5. CMD_START="java -Djava.security.egd=file:/dev/./urandom -jar /app.jar --spring.datasource.url=jdbc:postgresql://192.168.0.201:5432"
  6.  
  7. # Lista das imagens configuradas
  8. IMAGENS=(
  9.     "localizacao"
  10.     "pessoa"
  11.     "tabela-generica"
  12.     "dbupdates"
  13.     "gestor-clientes"
  14.     "softmanager"
  15.     "apidocs"
  16.     "elvis"
  17.     "menu"
  18.     "cargo"
  19.     "filial"
  20.     "verba"
  21.     "rh-frontend"
  22.     "funcionario"
  23.     "evento"
  24.     "evento-funcionario"
  25.     "tabela-imposto"
  26. )
  27.  
  28. # Métodos defaults
  29. start(){
  30.     local CIDFILE=$1;
  31.     local IMAGE=$2;
  32.     local PORT=$3;
  33.     local CMD=$4;
  34.     local GATEWAY_HOST="gateway.hrinfo.com.br:192.168.0.201";
  35.    
  36.     # Executa uma string como . (Precisava ser uma string por causa dos pâmetros)
  37.     eval "docker run --rm -d --add-host $GATEWAY_HOST --cidfile $CIDFILE -p $PORT $IMAGE $CMD;"
  38.     eval "chmod 777 $CIDFILE;"
  39. }
  40.  
  41. stop(){
  42.     CIDFILE=$1;
  43.     docker kill $(cat $CIDFILE);
  44.     rm $CIDFILE;   
  45. }
  46.  
  47. showError(){
  48.     echo "Modo de usar: cloud.sh ( ação imagem )"
  49.     echo "ação:"
  50.     echo "    start - Inicia todos os containers da cloud e cria seus respectivos \".cid\" como arquivos temporários."
  51.     echo "    stop  - Termina todos os containers da cloud e limpa os arquivos \".cid\" gerados para cada container."
  52.     echo "imagem:"
  53.     echo "    Nome da imagem que será usada para executar a ação. Caso não seja informado a ação será executada em todas as imagens registradas "
  54.     echo "Obs: cid é o id do container usado para manipular os estados dos mesmos."
  55.     exit 1
  56. }
  57.  
  58. containsElement(){
  59.     local e match="$1"
  60.     shift
  61.     for e; do [[ "$e" == "$match" ]] && return 0; done
  62.     return 1
  63. }
  64.  
  65. # Métodos de cada imagem
  66. localizacao(){
  67.     # Informações do container
  68.     local CIDFILE="/opt/fakeCloud/cid/localizacao.cid";
  69.     local IMAGE=$AWS_REPO/localizacao:latest;
  70.     local PORT="9001:8080";
  71.     local CMD="$CMD_START/msLocalizacao --server.servlet.context-path=/localizacao";
  72.  
  73.     # O comando (start/stop) é o parâmetro $1
  74.     eval "$1 $CIDFILE $IMAGE $PORT \"$CMD\""
  75. }
  76. pessoa(){
  77.     # Informações do container
  78.     local CIDFILE="/opt/fakeCloud/cid/pessoa.cid";
  79.     local IMAGE=$AWS_REPO/pessoa:latest;
  80.     local PORT="9002:8080";
  81.     local CMD="$CMD_START/msPessoa --server.servlet.context-path=/pessoa";
  82.  
  83.     # O comando (start/stop) é o parâmetro $1
  84.     eval "$1 $CIDFILE $IMAGE $PORT \"$CMD\""
  85. }
  86. tabela-generica(){
  87.     # Informações do container
  88.     local CIDFILE="/opt/fakeCloud/cid/tabela-generica.cid";
  89.     local IMAGE=$AWS_REPO/tabela-generica:latest;
  90.     local PORT="9003:8080";
  91.     local CMD="$CMD_START/msTabelaGenerica --server.servlet.context-path=/tg";
  92.  
  93.     # O comando (start/stop) é o parâmetro $1
  94.     eval "$1 $CIDFILE $IMAGE $PORT \"$CMD\""
  95. }
  96. dbupdates(){
  97.     # Informações do container
  98.     local CIDFILE="/opt/fakeCloud/cid/dbupdates.cid";
  99.     local IMAGE=$AWS_REPO/dbupdates:latest;
  100.     local PORT="9004:8080";
  101.     local CMD="$CMD_START/dbupdates --server.servlet.context-path=/dbu";
  102.  
  103.     # O comando (start/stop) é o parâmetro $1
  104.     eval "$1 $CIDFILE $IMAGE $PORT \"$CMD\""
  105. }
  106. gestor-clientes(){
  107.     # Informações do container
  108.     local CIDFILE="/opt/fakeCloud/cid/gestor-clientes.cid";
  109.     local IMAGE=$AWS_REPO/gestor-clientes:latest;
  110.     local PORT="9005:8080";
  111.     local CMD="$CMD_START/gestorcliente --server.contextPath=/gc";
  112.  
  113.     # O comando (start/stop) é o parâmetro $1
  114.     eval "$1 $CIDFILE $IMAGE $PORT \"$CMD\""
  115. }
  116. softmanager(){
  117.     # Informações do container
  118.     local CIDFILE="/opt/fakeCloud/cid/softmanager.cid";
  119.     local IMAGE=$AWS_REPO/softmanager:latest;
  120.     local PORT="9006:8080";
  121.     local CMD="$CMD_START/softmanager --server.contextPath=/sm";
  122.  
  123.     # O comando (start/stop) é o parâmetro $1
  124.     eval "$1 $CIDFILE $IMAGE $PORT \"$CMD\""
  125. }
  126. apidocs(){
  127.     # Informações do container
  128.     local CIDFILE="/opt/fakeCloud/cid/apidocs.cid";
  129.     local IMAGE=$AWS_REPO/apidocs:latest;
  130.     local PORT="9007:80";
  131.  
  132.     # O comando (start/stop) é o parâmetro $1
  133.     eval "$1 $CIDFILE $IMAGE $PORT"
  134. }
  135. elvis(){
  136.     # Informações do container
  137.     local CIDFILE="/opt/fakeCloud/cid/elvis.cid";
  138.     local IMAGE=$AWS_REPO/elvis:latest;
  139.     local PORT="9008:80";
  140.  
  141.     # O comando (start/stop) é o parâmetro $1
  142.     eval "$1 $CIDFILE $IMAGE $PORT"
  143. }
  144. menu(){
  145.     # Informações do container
  146.     local CIDFILE="/opt/fakeCloud/cid/menu.cid";
  147.     local IMAGE=$AWS_REPO/menu:latest;
  148.     local PORT="9009:8080";
  149.     local CMD="$CMD_START/msMenu --server.servlet.context-path=/menu";
  150.  
  151.     # O comando (start/stop) é o parâmetro $1
  152.     eval "$1 $CIDFILE $IMAGE $PORT \"$CMD\""
  153. }
  154. cargo(){
  155.     # Informações do container
  156.     local CIDFILE="/opt/fakeCloud/cid/cargo.cid";
  157.     local IMAGE=$AWS_REPO/cargo:latest;
  158.     local PORT="9010:8080";
  159.     local CMD="$CMD_START/msCargo --server.servlet.context-path=/cargo";
  160.  
  161.     # O comando (start/stop) é o parâmetro $1
  162.     eval "$1 $CIDFILE $IMAGE $PORT \"$CMD\""
  163. }
  164. filial(){
  165.     # Informações do container
  166.     local CIDFILE="/opt/fakeCloud/cid/filial.cid";
  167.     local IMAGE=$AWS_REPO/filial:latest;
  168.     local PORT="9011:8080";
  169.     local CMD="$CMD_START/msFilial --server.servlet.context-path=/filial";
  170.  
  171.     # O comando (start/stop) é o parâmetro $1
  172.     eval "$1 $CIDFILE $IMAGE $PORT \"$CMD\""
  173. }
  174. verba(){
  175.     # Informações do container
  176.     local CIDFILE="/opt/fakeCloud/cid/verba.cid";
  177.     local IMAGE=$AWS_REPO/verba:latest;
  178.     local PORT="9012:8080";
  179.     local CMD="$CMD_START/msVerba --server.servlet.context-path=/verba";
  180.  
  181.     # O comando (start/stop) é o parâmetro $1
  182.     eval "$1 $CIDFILE $IMAGE $PORT \"$CMD\""
  183. }
  184. rh-frontend(){
  185.     # Informações do container
  186.     local CIDFILE="/opt/fakeCloud/cid/rh-frontend.cid";
  187.     local IMAGE=$AWS_REPO/rh-frontend:latest;
  188.     local PORT="9013:80";
  189.  
  190.     # O comando (start/stop) é o parâmetro $1
  191.     eval "$1 $CIDFILE $IMAGE $PORT"
  192. }
  193. funcionario(){
  194.     # Informações do container
  195.     local CIDFILE="/opt/fakeCloud/cid/funcionario.cid";
  196.     local IMAGE=$AWS_REPO/funcionario:latest;
  197.     local PORT="9014:8080";
  198.     local CMD="$CMD_START/msFuncionario --server.servlet.context-path=/funcionario";
  199.  
  200.     # O comando (start/stop) é o parâmetro $1
  201.     eval "$1 $CIDFILE $IMAGE $PORT \"$CMD\""
  202. }
  203. evento(){
  204.     # Informações do container
  205.     local CIDFILE="/opt/fakeCloud/cid/evento.cid";
  206.     local IMAGE=$AWS_REPO/evento:latest;
  207.     local PORT="9015:8080";
  208.     local CMD="$CMD_START/msEvento --server.servlet.context-path=/evento";
  209.  
  210.     # O comando (start/stop) é o parâmetro $1
  211.     eval "$1 $CIDFILE $IMAGE $PORT \"$CMD\""
  212. }
  213. evento-funcionario(){
  214.     # Informações do container
  215.     local CIDFILE="/opt/fakeCloud/cid/eventoFuncionario.cid";
  216.     local IMAGE=$AWS_REPO/eventofuncionario:latest;
  217.     local PORT="9016:8080";
  218.     local CMD="$CMD_START/msEventoFuncionario --server.servlet.context-path=/eventoFuncionario";
  219.  
  220.     # O comando (start/stop) é o parâmetro $1
  221.     eval "$1 $CIDFILE $IMAGE $PORT \"$CMD\""
  222. }
  223. tabela-imposto(){
  224.     # Informações do container
  225.     local CIDFILE="/opt/fakeCloud/cid/tabela-imposto.cid";
  226.     local IMAGE=$AWS_REPO/tabela-imposto:latest;
  227.     local PORT="9018:8080";
  228.     local CMD="$CMD_START/msTabelaImposto --server.servlet.context-path=/ti";
  229.  
  230.     # O comando (start/stop) é o parâmetro $1
  231.     eval "$1 $CIDFILE $IMAGE $PORT \"$CMD\""
  232. }
  233.  
  234. #  de execução
  235. if [ "$1" = "start" ] ; then
  236.     if [ -z "$2" ] ; then
  237.         for img in "${IMAGENS[@]}" ; do
  238.             eval "$img start";
  239.         done;
  240.         exit 0;
  241.     else
  242.         containsElement "$2" "${IMAGENS[@]}"
  243.         if [ $? = 0 ] ; then
  244.             eval "$2 start"
  245.         else
  246.             echo "$2 não foi configurada ainda."
  247.         fi
  248.     fi
  249. elif [ "$1" = "stop" ] ; then
  250.     if [ -z "$2" ] ; then
  251.         for img in "${IMAGENS[@]}" ; do
  252.             eval "$img stop";
  253.         done;
  254.     else
  255.         containsElement "$2" "${IMAGENS[@]}"
  256.         if [ $? = 0 ] ; then
  257.             eval "$2 stop"
  258.         else
  259.             echo "$2 não foi configurada ainda."
  260.         fi
  261.     fi
  262.     exit 0;
  263. else
  264.     showError
  265. fi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement