GNU/Linux >> Tutoriels Linux >  >> Linux

Ssh - Équivalent Linux à la communication à distance "un-à-plusieurs" de Powershell ?

Venant de l'administration Windows, je veux creuser plus profondément dans Linux (Debian). -to-many" comme dans PowerShell pour Windows ?

Pour résumer à l'essentiel, je dirais :

Mon point de vue sur Linux :

  • Je peux me connecter en ssh à un serveur et taper ma commande
  • J'obtiens le résultat. Pour un environnement de 10 serveurs je devrais écrire un script (perl/python ?) envoyant la commande pour chacun d'eux ?

Mon expérience avec Windows :

  1. Je tape ma commande et avec "invoke-command", je peux "l'envoyer" à un tas de serveurs (peut-être à partir d'un fichier texte) pour qu'ils s'exécutent simultanément et récupèrent le résultat (en tant qu'objet pour un travail ultérieur).

  2. Je peux même établir plusieurs sessions, la connexion est maintenue en arrière-plan et envoyer sélectivement des commandes à ces sessions, et entrer et sortir à distance selon mes besoins.

(J'ai entendu parler de chef, de marionnette, etc. Est-ce quelque chose comme ça ?)

Update 2019:
Après avoir beaucoup essayé, je suggère Rex (voir ce commentaire ci-dessous) - configuration facile (en fait, il a juste besoin de ssh, rien d'autre) et utilisation (si vous connaissez un peu perl c'est encore mieux, mais c'est facultatif)
Avec Rex(ify) vous pouvez faire ad hoc commande et faites-la évoluer vers une véritable gestion de la configuration (… ce qui signifie :c'est un CM en premier lieu, mais agréable pour les tâches ad hoc aussi)
Le site Web semble obsolète, mais actuellement (à partir du 01/2019) il est en développement actif et le canal IRC est également actif .

Avec le nouvel opensh de Windows, il y a encore plus de possibilités

vous pouvez essayer :
rex -u user -p password -H 192.168.1.3 -e 'say run "hostname"'

Réponse acceptée :

Résumé

  • Ansible est un outil DevOps qui remplace PowerShell avec puissance
  • RunDeck en tant qu'interface graphique est pratique
  • Certaines personnes utilisent RunDeck+Ansible ensemble

clusterssh

Pour envoyer des commandes distantes à plusieurs serveurs, pour un débutant, je recommanderais clusterssh

Pour installer clusterssh dans Debian :

apt-get install clusterssh

Un autre tutoriel clusterssh :

ClusterSSH est un wrapper Tk/Perl autour d'outils Linux standard comme XTerm
et SSH. En tant que tel, il fonctionnera sur à peu près n'importe quel système d'exploitation compatible POSIX où
les bibliothèques existent - je l'ai exécuté sur Linux, Solaris et Mac OS X. Il
nécessite les bibliothèques Perl Tk ( perl-tk sur Debian ou Ubuntu) et
X11::Protocol (libx11-protocol-perl sur Debian ou Ubuntu), en plus
de xterm et OpenSSH.

Ansible

En tant que framework distant pour l'administration de plusieurs systèmes, Ansible est une alternative très intéressante à Puppet. Il est plus léger et n'a pas besoin d'agents distants dédiés car il fonctionne sur SSH (il a également été acheté par RedHat)

Les Playbooks sont plus élaborés que les options de ligne de commande.

Cependant, pour commencer à utiliser Ansible, vous avez besoin d'une installation simple et de configurer le fichier texte de la liste des clients.

Ensuite, pour lancer une commande sur tous les serveurs, c'est aussi simple que de faire :

ansible all -m command -a "uptime"

La sortie est également très bien formatée et séparée par règle/serveur, et lors de son exécution en arrière-plan, elle peut être redirigée vers un fichier et consultée ultérieurement.

Connexe :Comment condenser les sous-répertoires ?

Vous pouvez commencer avec des règles simples, et l'utilisation d'Ansible deviendra plus intéressante à mesure que vous grandissez sous Linux, et votre infrastructure devient plus grande. En tant que tel, il fera bien plus que PowerShell.

À titre d'exemple, un Playbook très simple pour mettre à niveau les serveurs Linux que j'ai écrit :

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

Il a également de nombreux modules définis qui vous permettent d'écrire facilement des politiques complètes.

Index des modules – Documentation Ansible

Il dispose également d'un intéressant hub officiel / réseau "social" de référentiels pour rechercher des politiques déjà rendues possibles par la communauté. Galaxie Ansible

Ansible est également largement utilisé, et vous trouverez de nombreux projets dans github, comme celui-ci de moi-même pour la configuration de FreeRadius.

Bien qu'Ansible soit un framework open source gratuit, il dispose également d'une interface de panneau Web payante, Ansible Tower, bien que la licence soit plutôt chère.

De nos jours, après l'achat de RedHat, tower a également la version open source connue sous le nom d'AWX.

En prime, Ansible est également capable d'administrer des serveurs Windows, même si je ne l'ai jamais utilisé pour cela.

Il est également capable d'administrer les équipements réseau (routeurs, commutateurs et pare-feu), ce qui en fait une solution très intéressante en tant que solution d'automatisation clé en main.

Comment installer Ansible

Rundeck

Encore une fois, pour un framework distant plus facile à utiliser, mais pas aussi puissant qu'Ansible, je recommande Rundeck.

Il s'agit d'une interface graphique multi-utilisateur/connexion très puissante dans laquelle vous pouvez automatiser une grande partie de vos tâches quotidiennes courantes, et même donner des vues édulcorées aux sysops ou aux personnes du service d'assistance.

Lors de l'exécution des commandes, il vous donne également des fenêtres avec la sortie ventilée par serveur/tâche.

Il peut exécuter plusieurs tâches en arrière-plan de manière transparente et vous permet de voir le rapport et la sortie ultérieurement.

Comment installer RunDeck

Veuillez noter que certaines personnes utilisent Ansible+RunDeck en tant qu'interface Web ; tous les cas ne sont pas appropriés pour cela.

Il va également sans dire que l'utilisation d'Ansible et/ou de RunDeck peut être interprétée comme une forme ou une partie de la documentation de l'infrastructure, et au fil du temps permet de répliquer et d'améliorer les actions/recettes/Playbooks.

Enfin, en parlant d'un serveur de commande central, j'en créerais un juste pour la tâche. En fait, le terme technique est une boîte de saut. Les "jump boxes" améliorent la sécurité, si vous les configurez correctement.


Linux
  1. Comment installer et tester Ansible sur Linux

  2. Top 25 des questions d'entretien Linux

  3. Comment changer le port SSH sous Linux

  4. Démystifier Ansible pour les administrateurs système Linux

  5. 8 étapes pour développer un rôle Ansible sous Linux

Utiliser l'équivalent du gestionnaire de tâches sous Linux

10 conseils de renforcement SSH exploitables pour sécuriser votre serveur Linux

Comment SSH au serveur via Linux

Comment installer Ansible sur Linux Mint 20

Existe-t-il un équivalent WinSCP pour Linux ?

Équivalent Linux à la communication à distance un à plusieurs de PowerShell