Da un nombre claro a cada servidor
Un esquema coherente de alias ahorra tiempo y reduce los errores. En ~/.ssh/config, guarda la dirección, el usuario, el puerto y la clave de cada servidor bajo un mismo nombre e incluye en él la función y el entorno, para reconocer los servidores de producción de un vistazo. Las opciones que no establezcas para un host concreto se toman del bloque Host *.
Host prod-web-1
HostName 203.0.113.10
User admin
IdentityFile ~/.ssh/id_ed25519_prod
IdentitiesOnly yes
Host test-web-1
HostName 203.0.113.20
User adminEvita el servidor equivocado
Al trabajar en varios servidores, es fácil escribir un comando en la ventana equivocada. Muestra el nombre del host en el indicador de la línea de comandos, usa un color distinto para el indicador en producción y comprueba dónde estás antes de cualquier acción destructiva. Reserva los pasos más peligrosos para un momento en el que solo haya un terminal abierto.
hostname -f; whoami; pwdMantén en marcha las tareas largas
Cuando se pierde la conexión, normalmente se cierran el intérprete de comandos y los comandos que se están ejecutando en él. Ejecuta las tareas largas dentro de tmux o screen en el servidor, para que continúen y puedas volver a conectarte a ellas. El keepalive del cliente detecta antes una conexión que ha dejado de funcionar, pero por sí solo no mantiene la tarea en ejecución.
tmux new -s upgrade
tmux attach -t upgradeComprueba qué servidores responden
Antes de empezar a trabajar en varios servidores, comprueba que sus puertos SSH responden. Un puerto cerrado no siempre significa que un servidor esté caído: puede que el servicio se haya detenido o que un cortafuegos esté bloqueando tu red.
for host in prod-web-1 test-web-1; do
ssh -o ConnectTimeout=5 "$host" 'hostname; uptime' || echo "$host: no connection"
doneVarios servidores en CH-J Server Manager
Los perfiles de servidor se guardan en una bóveda local cifrada y se pueden abrir varias sesiones SSH a la vez. En Alpha 0.1.1 hay dos terminales en paralelo o uno encima del otro, en uno o dos servidores, y ocultar un terminal no cierra su sesión. Los módulos usan automáticamente la conexión si solo hay una y preguntan cuando hay varias abiertas, por lo que un módulo nunca cambia de servidor por su cuenta. Bloquear la bóveda desconecta las sesiones SSH, así que termina primero las tareas en ejecución o mantenlas en tmux.
Disponibilidad de un vistazo
En Alpha 0.1.1, el monitor de disponibilidad comprueba los servidores guardados en segundo plano mediante una conexión TCP al puerto SSH, de forma predeterminada cada 12 segundos y sin iniciar sesión. El estado sin conexión significa entonces que el puerto SSH no es accesible desde tu red; el servidor en sí puede seguir funcionando.