9. El problema crece
Te avisan que cayó un contrato / fuiste agraciado,
etc.
Y ahora tienes que soportar adicionalmente otra
aplicación igual o más compleja que la actual
10. Lista de servidores y tags
●
~/serverlist.txt
fll4023 apli1 web arm1 lb
fll4024 apli1 web arm1 lb
fll4025 apli1 web arm2 lb
fll4026 apli1 web arm2 lb
fll4186 apli1 app arm1 wl
fll4187 apli1 app arm1 wl
fll4188 apli1 app arm1 jboss
fll4189 apli1 nfs arm1
fll4190 apli1 db arm1 oracle
fll4186 apli1 app arm2 wl
fll4187 apli1 app arm2 wl
fll4188 apli1 app arm2 jboss
fll4189 apli1 nfs arm2 wl
fll4190 apli1 db arm2 oracle
fll4191 apli1 web
fll4195 apli2 web arm1 tomcat
fll4199 apli2 web arm2 tomcat
fll4204 apli2 job tomcat
fll4205 apli2 web jboss
Cuidado con los tags, que no se
repitan o será un problema
11. Ahora podemos buscar
●
Encuentra los app servers:
grep app server2-list.txt
●
Encuentra app servers, brazo2, que usan weblogic
grep app server2-list.txt | grep arm2 | grep wl
12. Que tal un comando para hacerlo fácil?
#/bin/bash
# buscar las etiquetas y mostrar los servers
tmp1=/tmp/servers-list.tmp.1
tmp2=/tmp/servers-list.tmp.2
cp ~/servers-list.txt $tmp1
for filtro in $@;do
grep “$filtro” $tmp1 > $tmp2
mv $tmp2 $tmp1
done
cut -d -f1 $tmp1
# echo $(cut -d
rm -f $tmp1
-f1 $tmp1) mejor así!
14. SSH
●
Puedes ejecutar algo en el servidor remoto con solo añadirlo al
final de la linea de ssh
ssh usuario@servidor “comando”
La salida de ese comando se manda a tu pantalla local.
●
●
Para automatizar, hay que evitar que te pida password al
conectarte (usando llaves)
Si hay usuarios/cosas diferentes por server, puedes usar
~/.ssh/config
15. Ir a ejecutar a todos los servers
●
Obtiene mi id en todos los servers
for server in $(busca.sh app arm1 wl);do ssh
$server “id”;done
●
Obtiene el uptime en TODA la plataforma
●
Cual server le falta RAM?
●
Cual server está más cargado?
●
Cual modelo de cpu tiene cada server?
16. Ok y qué más puedo hacer?
●
●
●
Otro comandito que le digas el comando y no tengas que
teclear el “for server in....do.... done
Otro comandito que haga un scp a todos los servers, del mismo
archivo
Todos usando el busca.sh como base. Esto quiere decir que si
añades un nuevo servidor, o cambias la función de algún server,
ya los demás comandos lo saben.
17. Problemas de esta solución
●
●
●
●
Uso de listas “especiales” de servidores, hay que añadirlo al
script. (aunque esto es sencillo)
En algunos servers tu usuario es diferente, y hacer un sólo
script se vuelve dificil
Algunos servers tienen el ssh en puertos diferentes
Al usar ssh para ejecutar comandos, las variables que se cargan
en una sesión normal, no se cargan (ssh “comando” no hace un
“login” y no se carga el .bash_profile)
18. Bienvenido al ~/.ssh/config
●
Puedes definir un server como desees:
host myapp-pro-web
HostName fll4023.florida.fsl.com
Port 2222
User sistemas
LocalForward 3129 127.0.0.1:3128
Compression no
ForwardX11 yes
ServerAliveInterval 30
ServerAliveCountMax 120