Retour au cours

automation non-interactive

Automatisez des tâches avec SSH sans interrompre pour des prompts.

objectifs d’apprentissage

  • BatchMode yes.
  • Gestion des exit codes.
  • Timeouts et KeepAlive.

prérequis

  • Clés en place.
  • Pas de mot de passe requis.

notions clés

  • BatchMode.
  • Exit code.
  • ConnectTimeout, ServerAliveInterval.

démonstration guidée

étape 1

Exécuter une commande distante en mode batch.

ssh -o BatchMode=yes -o ConnectTimeout=5 user@203.0.113.10 'uptime'

étape 2

Utiliser ControlMaster pour des jobs multiples.

ssh -MNf -o ControlMaster=yes -o ControlPath=~/.ssh/cm-%r@%h:%p.sock user@203.0.113.10
ssh -o ControlPath=~/.ssh/cm-%r@%h:%p.sock user@203.0.113.10 'hostname'

exercice

Ecrivez une boucle qui exécute ‘hostname’ sur 3 serveurs en parallèle (xargs -P).

correction

Parallelisme simple.

printf "203.0.113.10\n203.0.113.11\n203.0.113.12\n" | xargs -I{} -P3 ssh -o BatchMode=yes user@{} 'hostname'

quiz éclair

  1. Quelle option interdit tout prompt pour mot de passe ?
  • a) BatchMode yes
  • b) ForwardAgent yes
  • c) StrictHostKeyChecking no

ressources

Sujets abordés