GNU/Linux >> Linux Esercitazione >  >> Linux

Ssh - Linux equivalente al telecomando "uno-a-molti" di Powershell?

Venendo dall'amministrazione Windows, voglio approfondire Linux (Debian).
Una delle mie domande più scottanti a cui non ho potuto rispondere cercando sul web (non l'ho trovata) è:come posso ottenere il cosiddetto "one -to-many” come in PowerShell per Windows?

Per scomporlo alle basi direi:

La mia opinione su Linux:

  • Posso entrare in un server e digitare il mio comando
  • Ottengo il risultato. Per un ambiente di 10 server dovrei scrivere uno script (perl/python?) inviando il comando per ciascuno di essi?

La mia esperienza da Windows:

  1. Digito il mio comando e con "invoke-command" posso "inviarlo" a un gruppo di server (magari da un file di testo) per eseguirlo contemporaneamente e recuperare il risultato (come oggetto per ulteriori lavori).

  2. Posso anche stabilire più sessioni, la connessione viene mantenuta in background e inviare selettivamente comandi a queste sessioni e entrare e uscire da remoto come mi occorre.

(Ho sentito parlare di chef, burattino, ecc. È qualcosa del genere?)

Update 2019:
Dopo aver provato molto, suggerisco Rex (vedi questo commento sotto) – configurazione semplice (in effetti ha solo bisogno di ssh, nient'altro) e usa (se conosci solo un po' perl è ancora meglio, ma è facoltativo)
Con Rex(ify) puoi fare ad hoc comanda e avanza a una vera e propria gestione della configurazione (...significato:in primo luogo è un CM, ma adatto anche per attività ad hoc)
Il sito Web sembra obsoleto, ma attualmente (a partire dal 01/2019) è in fase di sviluppo attivo e anche il canale IRC è attivo .

Con il nuovo openssh di Windows ci sono ancora più possibilità

puoi provare:
rex -u user -p password -H 192.168.1.3 -e 'say run "hostname"'

Risposta accettata:

Riepilogo

  • Ansible è uno strumento DevOps che è un potente sostituto di PowerShell
  • RunDeck come interfaccia grafica è utile
  • Alcune persone eseguono RunDeck+Ansible insieme

clustersh

Per inviare comandi remoti a più server, per un principiante consiglierei clusterssh

Per installare clusterssh in Debian:

apt-get install clusterssh

Un altro tutorial su clusters:

ClusterSSH è un wrapper Tk/Perl attorno a strumenti Linux standard come XTerm
e SSH. In quanto tale, funzionerà su quasi tutti i sistemi operativi compatibili con POSIX in cui
esistono le librerie:l'ho eseguito su Linux, Solaris e Mac OS X.
richiede le librerie Perl Tk ( perl-tk su Debian o Ubuntu) e
X11::Protocol (libx11-protocol-perl su Debian o Ubuntu), oltre
a xterm e OpenSSH.

Abile

Per quanto riguarda un framework remoto per l'amministrazione di più sistemi, Ansible è un'alternativa molto interessante a Puppet. È più snello e non necessita di agenti remoti dedicati poiché funziona su SSH (è stato acquistato anche da RedHat)

I Playbook sono più elaborati delle opzioni della riga di comando.

Tuttavia, per iniziare a utilizzare Ansible è necessaria una semplice installazione e impostare il file di testo dell'elenco dei client.

Successivamente, per eseguire un comando su tutti i server, è semplice come fare:

ansible all -m command -a "uptime"

Anche l'output è molto ben formattato e separato per regola/server e durante l'esecuzione in background può essere reindirizzato a un file e consultato in seguito.

Correlati:come condensare le sottodirectory?

Puoi iniziare con regole semplici e l'utilizzo di Ansible diventerà più interessante man mano che cresci in Linux e la tua infrastruttura diventa più grande. In quanto tale, farà molto di più di PowerShell.

Ad esempio, un Playbook molto semplice per aggiornare i server Linux che ho scritto:

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

Ha anche molti moduli definiti che ti consentono di scrivere facilmente politiche complete.

Indice del modulo – Documentazione Ansible

Dispone inoltre di un'interessante rete ufficiale hub/”social” di repository per la ricerca di politiche già rese disponibili dalla comunità. Galassia Ansible

Anche Ansible è ampiamente utilizzato e troverai molti progetti in github, come questo di me per l'installazione di FreeRadius.

Sebbene Ansible sia un framework open source gratuito, ha anche un'interfaccia del pannello Web a pagamento, Ansible Tower, sebbene la licenza sia piuttosto costosa.

Al giorno d'oggi, dopo che RedHat l'ha acquistato, tower ha anche la versione open source nota come AWX.

Come bonus, Ansible è anche in grado di amministrare server Windows, anche se non l'ho mai usato per questo.

È anche in grado di amministrare apparecchiature di rete (router, switch e firewall), il che la rende una soluzione molto interessante come soluzione chiavi in ​​mano per l'automazione.

Come installare Ansible

Passerella

Ancora una volta, per un framework remoto più facile da usare, ma non così potente come Ansible, consiglio Rundeck.

È un'interfaccia grafica multiutente/accesso molto potente in cui puoi automatizzare gran parte delle tue attività quotidiane comuni e persino fornire visualizzazioni annacquate a sysops o persone dell'helpdesk.

Quando si eseguono i comandi, vengono visualizzate anche finestre con l'output suddiviso per server/attività.

Può eseguire più lavori in background senza interruzioni e ti consente di vedere il rapporto e l'output in un secondo momento.

Come installare RunDeck

Tieni presente che ci sono persone che eseguono Ansible+RunDeck come interfaccia web; non tutti i casi sono appropriati per questo.

Va da sé, inoltre, che l'utilizzo di Ansible e/o RunDeck può essere interpretato come una forma o parte della documentazione dell'infrastruttura, e permette nel tempo di replicare e migliorare le azioni/ricette/Playbook.

Infine, parlando di un server di comando centrale, ne creerei uno adatto all'attività. In realtà il termine tecnico è un jump box. Le "scatole di emergenza" migliorano la sicurezza, se le imposti correttamente.


Linux
  1. Come installare e testare Ansible su Linux

  2. Le 25 principali domande sull'intervista su Linux

  3. Come modificare la porta SSH in Linux

  4. Automazione password SSH in Linux con sshpass

  5. Impossibile eseguire applicazioni X tramite SSH in Linux

Usa l'equivalente di Task Manager in Linux

10 suggerimenti utili per il rafforzamento SSH per proteggere il tuo server Linux

Come eseguire l'SSH sul server tramite Linux

Come installare Ansible su Linux Mint 20

Esiste un equivalente WinSCP per Linux?

Linux equivalente al servizio remoto uno-a-molti di PowerShell