Tengo un pequeño clúster que consta de algunos nodos de Linux. Hay un NFS compartido y tengo la misma cuenta de usuario con claves SSH compartidas en todos los nodos, pero aparte de eso, cada nodo tiene su propio sistema de archivos y configuración.
Quiero poder controlar la configuración de todos los nodos desde un nodo central. Una configuración típica consta principalmente de archivos de configuración, tanto en el directorio de usuario como en /etc
o /opt
. De vez en cuando también necesito instalar los mismos paquetes en todos los nodos o ejecutar otros comandos de shell.
Se trata de un grupo pequeño que difícilmente justifica sistemas de automatización a nivel empresarial u otras instalaciones complejas. ¿Existe alguna forma diferente que haya probado y probado, preferiblemente liviana y de código abierto? ¿O incluso basado directamente en hacks de BASH/SSH? Gracias.
Respuesta1
Recomiendo ampliamente Saltstack. Es flexible, escalable, liviano y gratuito.
Respuesta2
ansibleDebería funcionar si los controlas desde Linux o Mac OS X con homebrew. Windows no es compatible con la máquina de control. Los nodos de Linux deben tener SSH y Python, pero como la mayoría de las distribuciones de Linux instalan Python de forma predeterminada, probablemente ya esté cubierto. Todo lo que necesitas hacer esinstalaransible en el maestro, lo cual debería ser fácil.
Mira los 23 minutosvídeo de inicio rápidopara tener una mejor idea. También recomiendo echar un vistazo aIntroducción a los comandos ad-hocsección de la documentación:
Ejecute el comando en todos los servidores de un grupo, en este caso, Atlanta, en 10 bifurcaciones paralelas:
$ ansible atlanta -a "/sbin/reboot" -f 10
Asegúrese de que haya un paquete instalado, pero no lo actualice:
$ ansible webservers -m yum -a "name=acme state=installed"
Para transferir un archivo directamente a muchos servidores diferentes:
$ ansible atlanta -m copy -a "src=/etc/hosts dest=/tmp/hosts"
Asegúrese de que se inicie un servicio en todos los servidores web:
$ ansible webservers -m service -a "name=httpd state=started"
También hay algunosejemplosde libros de jugadas.
Respuesta3
Para ejecutar comandos, puede utilizar una herramienta que puede ejecutar un comando en varios servidores SSH.
Hay algunos de ellos:
Ambos disponibles en Debian y Ubuntu.
Respuesta4
IntentarEsperarguiones. Son una excelente manera de automatizar la ejecución de las mismas tareas en varias máquinas.
Con los scripts esperados, no tendrá que iniciar sesión manualmente en cada máquina y realizar la misma tarea una y otra vez. Lo uso para cosas como cambiar las contraseñas de un usuario en todas las máquinas, ejecutar scripts de verificación en cada máquina, etc.