Administrar varios servidores Linux con ClusterSSH

Si es administrador de sistemas Linux, es probable que tenga más de una máquina de la que es responsable diariamente. Incluso puede tener un banco de máquinas que mantiene que son similares, una granja de servidores web, por ejemplo. Si necesita escribir el mismo comando en varias máquinas a la vez, puede iniciar sesión en cada una de ellas con SSH y hacerlo en serie, o puede ahorrarse mucho tiempo y esfuerzo y usar una herramienta como ClusterSSH.

ClusterSSH es un envoltorio Tk / Perl alrededor de herramientas estándar de Linux como XTerm y SSH. Como tal, se ejecutará en casi cualquier sistema operativo compatible con POSIX donde existan las bibliotecas, lo he ejecutado en Linux, Solaris y Mac OS X. Requiere las bibliotecas Perl Tk (perl-tk en Debian o Ubuntu) y el Protocolo X11:: (libx11-protocol-perl en Debian o Ubuntu), además de xterm y OpenSSH.

Instalación

Instalar ClusterSSH en un sistema Debian o Ubuntu es trivial – un simple sudo apt-get install clusterssh lo instalará y sus dependencias. También está empaquetado para su uso con Fedora, y se puede instalar a través del sistema de ports en FreeBSD. También hay una versión para MacPorts para usar con Mac OS X, si usa una máquina Apple. Por supuesto, también se puede compilar a partir del código fuente.

Configuración

ClusterSSH se puede configurar a través de su archivo de configuración global — /etc/clusters, o a través de un archivo en el directorio personal del usuario llamado .csshrc. Tiendo a favorecer la configuración a nivel de usuario, ya que permite a varias personas en el mismo sistema configurar su cliente ClusterSSH como elijan. La configuración es sencilla en cualquier caso, ya que el formato de archivo es el mismo. ClusterSSH define un «clúster» como un grupo de máquinas que desea controlar a través de una interfaz. Con esto en mente, enumere los clústeres en la parte superior del archivo en un bloque de «clústeres» y, a continuación, describa cada clúster en una sección separada a continuación.

Por ejemplo, digamos que tengo dos clústeres, cada uno formado por dos máquinas. «Cluster1» tiene las máquinas «Prueba1» y «Test2» en ella, y «Cluster2» tiene las máquinas «Test3» y «Test4» en ella. El archivo de control ~.csshrc (o /etc/clusters) se vería así:

clusters = cluster1 cluster2

cluster1 = test1 test2
cluster2 = test3 test4

También puede hacer meta-clústeres: clústeres que se refieran a clústeres. Si desea crear un clúster llamado «todo» que abarque todas las máquinas, puede definirlo de dos maneras. En primer lugar, simplemente puede crear un clúster que contenga todas las máquinas, como el siguiente:

clusters = cluster1 cluster2 all

cluster1 = test1 test2
cluster2 = test3 test4
all = test1 test2 test3 test4

Sin embargo, mi método preferido es usar un meta-clúster que abarque los otros clústeres:

clusters = cluster1 cluster2 all

cluster1 = test1 test2
cluster2 = test3 test4
all = cluster1 cluster2

Al llamar al clúster «todo» como que contiene cluster1 y cluster2, si alguno de esos clústeres cambia alguna vez, el cambio se captura automáticamente para que no tenga que actualizar la definición de «todo». Esto le ahorrará tiempo y dolor de cabeza si su .el archivo csshrc crece en tamaño.

Usar ClusterSSH

Usar ClusterSSH es similar al lanzamiento de SSH por sí mismo. Simplemente ejecutando cssh -l <username> <clustername> se iniciará ClusterSSH y se iniciará la sesión como el usuario deseado en ese clúster. En la siguiente figura, puedes ver que he iniciado sesión en» cluster1 » como yo mismo. La pequeña ventana etiquetada como «CSSH» es la ventana de consola SSH del clúster. Cualquier cosa que escriba en esa pequeña ventana se repite en todas las máquinas del clúster, en este caso, las máquinas «test1» y «test2». En un apuro, también puede iniciar sesión en máquinas que no están en su .archivo csshrc, simplemente ejecutando cssh -l <username> <machinename1> <machinename2> <machinename3>.

Si quiero enviar algo a uno de los terminales, simplemente puedo cambiar de enfoque haciendo clic en el XTerm deseado y simplemente escribir en esa ventana como lo haría normalmente. ClusterSSH tiene algunos elementos de menú que realmente ayudan cuando se trata de una mezcla de máquinas. Según la figura a continuación, en el menú «Hosts» de la consola ClusterSSH hay varias opciones que son útiles.

«Retile Windows» hace precisamente eso si ha cambiado de tamaño o movido algo manualmente. «Agregar host(s) o clúster(s)» es excelente si desea agregar otro conjunto de máquinas u otro clúster a la sesión ClusterSSH en ejecución. Finalmente, verá cada host listado en la parte inferior del menú» Hosts». Al marcar o desmarcar las casillas junto a cada nombre de host, puede seleccionar a qué hosts la consola ClusterSSH hará eco de los comandos. Esto es útil si desea excluir un host o dos por una razón única o particular. La última opción de menú que es agradable tener está bajo el menú «Enviar», llamado»Nombre de host». Esto simplemente hace eco del nombre de host de cada máquina a la línea de comandos, lo que puede ser útil si está construyendo algo específico de host en su clúster.

Advertencias con ClusterSSH

Al igual que muchas herramientas UNIX, ClusterSSH tiene el potencial de salir terriblemente mal si no se tiene mucho cuidado con su uso. He visto errores de ClusterSSH eliminar un nivel completo de servidores web simplemente propagando un error tipográfico en una configuración de Apache. Tener acceso a varias máquinas a la vez, posiblemente como usuario privilegiado, significa que los errores tienen un gran costo. Tenga cuidado y verifique dos veces lo que está haciendo antes de golpear la tecla Enter.

Conclusión

ClusterSSH no es un reemplazo para tener un sistema de administración de configuración o cualquiera de las otras prácticas recomendadas al administrar varias máquinas. Sin embargo, si necesita hacer algo en un apuro fuera de su conjunto de herramientas o proceso habitual, o si está haciendo trabajo de prototipo, ClusterSSH es indispensable. Puede ahorrar mucho tiempo al realizar tareas que deben realizarse en más de una máquina, pero como cualquier herramienta eléctrica, puede causar muchos daños si se usa de forma desordenada.

You might also like

Deja una respuesta

Tu dirección de correo electrónico no será publicada.