Administrar máquinas con Linux a través de la interfaz de comandos tiene la ventaja de poder replicar las tareas y llevarlas a cabo en varias máquinas sin mucha intervención humana, es decir, se puede automatizar en cierta medida; en este documento se ofrecerán scripts a partir de los cuáles se puede hacer administración remota de máquinas de forma ágil.
Si usted ha usado alguna vez apt-get en una sola máquina para instalar o eliminar paquetes de Debian, puede emplear la misma técnica para instalar en otro equipo a través de ssh.
Si usted genera sus llaves pública y privada de ssh, podrá ingresar a otras máquinas a través de ssh sin tener que escribir la clave cada vez, así mismo, si va a emplear scp.
Una vez haya configurado su par de llaves, podrá probar hacer en cierta máquina :
- ssh mimaquina "date"
que debería mostrar la hora en el equipo remoto sin solicitarle clave. Si esto es funcional, pase al siguiente nivel.
Obtención de scripts
Los scripts referenciados a continuación almacénelos en su carpeta bin, por otra parte si usa la interfaz de órdenes, al copiar y pegar, lo siguiente lo hará por usted. Por favor, sea muy cuidados@ con los scripts que recibe de otras personas, estúdielos y revise si le son funcionales o no antes de ejecutarlos :
mkdir -f ~/bin ; cd ~/bin wget https://ikks.no-ip.info/~igor/scripts/hagaentodos.sh wget https://ikks.no-ip.info/~igor/scripts/copiamasiva.sh chmod 700 hagaentodos.sh copiamasiva.sh
Ejecución remota de comandos
Con este script podrá ejecutar comandos en otras máquinas, la idea es muy sencilla, hacer que una variable de ambiente tenga los nombres de las máquinas que va a administrar o en las que quiere ejecutar una orden y correr el script enviando como parámetro la orden en cuestión.
Por ejemplo, si desea instalar Guido Van Robot en las máquinas maquina1, maquina2, maquina3, maquina4 haría :
export a="maquina1 maquina2 maquina3 maquina4" bin/hagaentodos.sh "apt-get install gvr"
Si usted cuenta con una red de computadores con caja ATX, podría apagar la red completa con comandos como los siguientes :
- export a="compu1 compu2 compu3 compu4 compu5 compu6 compu7 compu8 compu9 compu10" bin/hagaentodos.sh "/sbin/halt"
Una labor rutinaria es hacer apt-get update; apt-get upgrade, y esta labor es sencilla de llevar a cabo siguiendo las recomendaciones de esta página.
Copia de archivos a varias máquinas
Con este otro script podrá copiar archivos de la máquina local a varias máquinas y de esta forma configurar algunos servicios, por ejemplo, si configuró /etc/gdm/gdm.conf y desea que el login manager de gnome aparezca uniformemente en todas las máquinas que desea, podría hacer algo como lo siguiente :
export a="est1 est2 est3 est4 est5" bin/copiamasiva.sh /etc/gdm/gdm.conf /etc/gdm
Para ver sus cambios desde el mismo sitio desde el cuál exportó su variable de ambiente podría aplicar
- bin/hagaentodos.sh "/etc/init.d/gdm restart"
que reiniciaría el login manager con su nueva configuración.
Encender máquinas que estén apagadas
Aquellas máquinas que tienen integrada en la board la tarjeta de red, generalmente tienen la opción de encenderse por la red, asegúrese de habilitar esto en la bios, posteriormente emplearía wakeonlan o etherwake para encender la máquina una vez tenga la MAC address, por ejemplo :
- wakeonlan 00:48:54:83:02:39
Ejercicios
Qué harían las siguientes órdenes en la línea de comandos?
wget http://www.geocities.com/arhuaco/dfd.zip export a="alu1 alu2 alu3 alu4 alu5" bin/hagaentodos.sh "apt-get install -y unzip wine;mkdir /opt/" bin/copiamasiva.sh dfd.zip /opt bin/hagaentodos.sh "cd /opt ; unzip dfd.zip ; rm dfd.zip"
Modifique los scripts para que en lugar de recibir nombres de máquinas, reciban una ip inicial y una ip final para aplicar los comandos a las máquinas o haga las copias a las máquinas respectivas.
Modifique los scripts para encender todas las máquinas dada una variable de ambiente con las mac address.
Gráficamente o ncurses
Si usted depende de synaptic o de aptitude para instalar o desinstalar paquetes, esta recomendación no es para usted, considere emplear vnc, seguramente usted tardará horas mientras que una persona que aplique lo que en esta página dice puede tardar minutos. Tiempo valioso que podría emplear para programar con python, o escribir documentación ;).
Bibliografía
Llaves públicas y privadas : Guías para aprender a aprender linux.
CategoriaAyudas CategoriaDocumentosyExplicaciones CategoriaDebian

