apt-fast y DSH

En esta entrada del blog voy a hablaros de una herramienta muy útil a la hora de gestionar y administrar remotamente uno o varios grupos de equipos. El programa en cuestión se llama ‘Distributed Shell (DSH)’ y nos permite ejecutar un comando en varios hosts a la vez.
Nos ayudaremos para la instalación de otra herramienta que acelera las descargas de manera considerable. Se llama apt-fast, y su funcionamiento es similar a apt-get, con la diferencia de que cuando un programa se descarga a una velocidad de 32 kb/s con apt-get, apt-fast puede alcanzar los 850 kb/s gracias al uso de gestores de descarga como aria2c. Los parámetros que podemos utilizar son los mismos que con apt-get.
La descarga de apt-fast la haremos de la siguiente forma para versiones de Ubuntu 14.04 y posteriores:
add-apt-repository ppa:saiarcot895/myppa
apt-get update
apt-get –y install apt-fast (el parámetro ‘-y’ lo añadimos para que asuma ‘sí’ a cualquier pregunta sobre la instalación)
A partir de aquí, el propio programa tiene un entorno de configuración gráfico para dejarlo todo a punto para su uso:
Gestor de paquetes por defecto:
aptfast01
Número máximo de conexiones para la descarga:
aptfast02
En el siguiente cuadro, respondiendo sí, evitamos un diálogo de confirmación en cada descarga que hagamos con apt-fast
aptfast03
Si quisiéramos reconfigurar alguno de los parámetros anteriores podríamos utilizar el comando:
dpkg-reconfigure apt-fast
DSH:
Para su instalación empleamos nuestro recién estrenado apt-fast:
apt-fast install dsh
En breve tendremos listo nuestro programa. Solo hemos de configurar algunos archivos antes de trabajar con él:
El primero de ellos será /etc/dsh/dsh.conf el cual cambiaremos a un Shell más seguro: Como se muestra en la imagen, de rsh a ssh.
dsh01
A continuación, añadiremos la lista de los hosts a los que mandaremos los comandos remotamente. Este archivo es /etc/dsh/machines.list, añadiendo una por línea, ya sea la ip de la misma o su nombre.
dsh02
Tambien incluye un directorio llamado group en el cual podemos hacer grupos de equipos a los que llamamos con el parámetro –group o -g
Como ya vimos en una entrada anterior en el blog, es recomendable o más cómodo, para trabajar remotamente con diferentes equipos, transferir nuestra llave pública a los mismos:  https://blog.iesvjp.com/pssh-parallel-ssh-tools/
Una vez hecho esto ya podemos trabajar con ellos.
Con -a nos referimos a todos los equipos, -m para uno en concreto o -g para un grupo de ellos.
Si quisiéramos conocer el nombre de todos los hosts utilizaríamos el siguiente comando:
dsh03
Con el parámetro -a nos referimos a todos los host. Si solo quisieramos el de uno utilizariamos -m, seguido de la ip o nombre del equipo en cuestión.
Podremos redireccionar la salida del comando de cada uno de los equipos, por ejemplo, a un archivo local.
dsh04
E incluso ver los usuarios con sesión iniciada, con dsh -a w:
dsh05
Existen muchos más parámetros que pueden verse en la ayuda de dsh.
man dsh