GNU/Linux >> Tutoriales Linux >  >> Linux

Ssh:¿Linux equivalente a la comunicación remota "uno a muchos" de Powershell?

Viniendo de la administración de Windows, quiero profundizar en Linux (Debian).
Una de mis preguntas candentes que no pude responder buscando en la web (no la encontré) es:¿cómo puedo lograr el llamado "uno -to-many” remoto como en PowerShell para Windows?

Para desglosarlo en lo básico, diría:

Mi opinión sobre Linux:

  • Puedo acceder a un servidor y escribir mi comando
  • Obtengo el resultado. Para un entorno de 10 servidores, tendría que escribir un script (¿perl/python?) enviando el comando para cada uno de ellos?

Mi experiencia con Windows:

  1. Escribo mi comando y con "invoke-command" puedo "enviar" esto a un grupo de servidores (quizás desde un archivo de texto) para ejecutarlo simultáneamente y recuperar el resultado (como un objeto para seguir trabajando).

  2. Incluso puedo establecer varias sesiones, la conexión se mantiene en segundo plano y enviar comandos de forma selectiva a estas sesiones, y entrar y salir de forma remota según lo necesite.

(Escuché sobre chef, títere, etc. ¿Es esto algo así?)

Update 2019:
Después de probar mucho, sugiero Rex (vea este comentario a continuación):fácil configuración (efectivamente, solo necesita ssh, nada más) y uso (si sabe un poco de perl es incluso mejor, pero es opcional)
Con Rex(ify) puedes hacer adhoc comando y avance a una verdadera gestión de configuración (... lo que significa:es un CM en primer lugar, pero también es bueno para tareas ad hoc)
El sitio web parece desactualizado, pero actualmente (a partir del 01/2019) está en desarrollo activo y el IRC-Channel también está activo .

Con el nuevo Opensh de Windows hay aún más posibilidades

puedes probar:
rex -u user -p password -H 192.168.1.3 -e 'say run "hostname"'

Respuesta aceptada:

Resumen

  • Ansible es una herramienta DevOps que reemplaza poderosamente a PowerShell
  • RunDeck como interfaz gráfica es útil
  • Algunas personas ejecutan RunDeck+Ansible juntos

grupossh

Para enviar comandos remotos a varios servidores, para un principiante, recomendaría clusterssh

Para instalar clusterssh en Debian:

apt-get install clusterssh

Otro tutorial de clusterssh:

ClusterSSH es un contenedor Tk/Perl 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
X11::Protocol (libx11-protocol-perl en Debian o Ubuntu), además
de xterm y OpenSSH.

Ansible

En cuanto a un marco remoto para la administración de múltiples sistemas, Ansible es una alternativa muy interesante a Puppet. Es más ágil y no necesita agentes remotos dedicados ya que funciona sobre SSH (también lo ha comprado RedHat)

Los Playbooks son más elaborados que las opciones de la línea de comandos.

Sin embargo, para comenzar a usar Ansible, necesita una instalación simple y configurar el archivo de texto de la lista de clientes.

Luego, para ejecutar un comando en todos los servidores, es tan simple como hacer:

ansible all -m command -a "uptime"

La salida también está muy bien formateada y separada por regla/servidor, y mientras se ejecuta en segundo plano se puede redirigir a un archivo y consultarla más tarde.

Relacionado:¿Cómo condensar subdirectorios?

Puede comenzar con reglas simples y el uso de Ansible se volverá más interesante a medida que crezca en Linux y su infraestructura se vuelva más grande. Como tal, hará mucho más que PowerShell.

Como ejemplo, un Playbook muy simple para actualizar servidores Linux que escribí:

---
- hosts: all
  become: yes
  gather_facts: False
  tasks:
   - name: updates a server
     apt: update_cache=yes
   - name: upgrade a server
     apt: upgrade=full

También tiene muchos módulos definidos que le permiten escribir fácilmente políticas integrales.

Índice de módulos:documentación de Ansible

También tiene un interesante hub oficial/red “social” de repositorios para buscar políticas de ansible ya creadas por la comunidad. Galaxia ansible

Ansible también se usa ampliamente, y encontrará muchos proyectos en github, como este de mí mismo para la configuración de FreeRadius.

Si bien Ansible es un marco de código abierto gratuito, también tiene una interfaz de panel web paga, Ansible Tower, aunque la licencia es bastante costosa.

Actualmente, luego de que RedHat lo comprara, tower también tiene la versión de código abierto conocida como AWX.

Como beneficio adicional, Ansible también es capaz de administrar servidores Windows, aunque nunca lo he usado para eso.

También es capaz de administrar equipos de red (routers, switches y firewall), lo que lo convierte en una solución muy interesante como solución de automatización llave en mano.

Cómo instalar Ansible

Cubierta

Una vez más, para un marco remoto más fácil de usar, pero no tan potente como Ansible, recomiendo Rundeck.

Es una interfaz gráfica multiusuario/de inicio de sesión muy poderosa en la que puede automatizar gran parte de sus tareas cotidianas comunes e incluso brindar vistas diluidas a los operadores del sistema o al personal del servicio de asistencia.

Al ejecutar los comandos, también le brinda ventanas con la salida desglosada por servidor/tarea.

Puede ejecutar varios trabajos en segundo plano sin problemas y le permite ver el informe y la salida más adelante.

Cómo instalar RunDeck

Tenga en cuenta que hay personas que ejecutan Ansible+RunDeck como interfaz web; no todos los casos son apropiados para eso.

También es evidente que el uso de Ansible y/o RunDeck puede interpretarse como una forma o parte de la documentación de la infraestructura y, con el tiempo, permite replicar y mejorar las acciones/recetas/libros de jugadas.

Por último, hablando de un servidor de comando central, crearía uno justo para la tarea. En realidad, el término técnico es una caja de salto. Las "cajas de salto" mejoran la seguridad, si las configuras correctamente.


Linux
  1. Cómo instalar y probar Ansible en Linux

  2. Las 25 preguntas principales de la entrevista de Linux

  3. Cómo cambiar el puerto SSH en Linux

  4. Automatización de contraseñas SSH en Linux con sshpass

  5. Cómo instalar Ansible en Oracle Linux 8

Usar el equivalente del Administrador de tareas en Linux

10 consejos prácticos de fortalecimiento de SSH para proteger su servidor Linux

Cómo SSH al servidor a través de Linux

Cómo instalar Ansible en Linux Mint 20

¿Hay algún equivalente de WinSCP para Linux?

Linux equivalente a la comunicación remota de uno a muchos de PowerShell