SSH-Pipelining und wiederverwendete Verbindungen
Reduzieren Sie den Overhead pro Task.
SSH-Pipelining und wiederverwendete Verbindungen ist eine kostenlose Ansible Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des Ansible Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der Ansible Academy-Kurs umfasst insgesamt 4 Lektionen.
Der SSH-Overhead summiert sich
Jede Aufgabe kann eine neue Anmeldung, eine Dateikopie und eine Ausführung über SSH bedeuten. Multiplizieren Sie das mit vielen Aufgaben und Hosts, und der Overhead bestimmt zunehmend die Laufzeit.
So läuft eine Aufgabe normalerweise ab
Standardmäßig kopiert Ansible ein Modul auf den Host, führt es aus und räumt anschließend auf. Jeder Schritt verursacht eine SSH-Hin-und-her-Kommunikation, die Sie oft vermeiden können.
Pipelining als Lösung
Mit Pipelining überträgt Ansible das Modul über die bestehende SSH-Sitzung, anstatt zunächst eine temporäre Datei zu schreiben. Dadurch werden Verbindungen pro Aufgabe eingespart.
[ssh_connection]
pipelining = TrueDie requiretty-Falle
Pipelining benötigt sudo ohne TTY. Die entfernte sudoers-Konfiguration darf daher requiretty nicht erzwingen. Moderne Distributionen sind unproblematisch, bei einigen gehärteten Systemen ist eine Anpassung erforderlich.
Die Verbindung wiederverwenden
OpenSSH hält mit ControlPersist eine Masterverbindung offen und leitet spätere Aufgaben darüber. So entfällt bei jeder Aufgabe ein vollständig neuer Verbindungsaufbau.
ssh_args anpassen
Ansible aktiviert die Wiederverwendung von Verbindungen über ssh_args. Der Wert von ControlPersist legt fest, wie lange der gemeinsam genutzte Socket nach der letzten Aufgabe aktiv bleibt.
[ssh_connection]
ssh_args = -o ControlMaster=auto -o ControlPersist=60sWo sich Sockets befinden
Die gemeinsam genutzte Verbindung liegt in einer Socket-Datei im Control-Path. Halten Sie diesen Pfad kurz, um das Betriebssystemlimit für die Länge von Socketnamen einzuhalten.
[ssh_connection]
control_path = %(directory)s/%%h-%%p-%%rPipelining oder Wiederverwendung
Beide Mechanismen reduzieren unterschiedliche Kosten: Pipelining verringert die Hin-und-her-Kommunikation innerhalb einer Aufgabe, während ControlPersist die SSH-Sitzung über viele Aufgaben hinweg wiederverwendet.
Beides zusammen verwenden
Pipelining und persistente Verbindungen ergänzen sich. Beide zu aktivieren, gehört zu den größten und risikoärmsten Beschleunigungen für ein großes Playbook.
Auch Facts schneller erfassen
Wenn Sie keine Facts benötigen, setzen Sie gather_facts: false, um das Setup-Modul zu überspringen. Damit entfällt ein aufwendiger Schritt am Anfang jedes Plays.
Den Erfolg messen
Aktivieren Sie den profile_tasks-Callback, um die Dauer jeder Aufgabe zu messen. Er zeigt genau, wo Sekunden vergehen, sodass Sie überprüfen können, ob Ihre Anpassungen tatsächlich geholfen haben.
Kurzer Check
Sie möchten, dass jede Aufgabe vor der Ausführung über SSH keine temporäre Datei schreibt.
Zusammenfassung
Aktivieren Sie Pipelining, um Hin-und-her-Kommunikation zu verringern, und ControlPersist, um SSH-Sitzungen wiederzuverwenden. Zusammen reduzieren sie den Verbindungs-Overhead bei großen Plays erheblich. ⚡
Häufig gestellte Fragen
Ist die Lektion „SSH-Pipelining und wiederverwendete Verbindungen“ kostenlos?
Ja — der vollständige Text von „SSH-Pipelining und wiederverwendete Verbindungen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des Ansible Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der Ansible Academy-Kurs umfasst insgesamt 4 Lektionen.
Was lerne ich in „SSH-Pipelining und wiederverwendete Verbindungen“?
Reduzieren Sie den Overhead pro Task. Du übst Ansible Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um Ansible Academy zu starten?
Keine Vorkenntnisse erforderlich. Ansible Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 4.
Wie lange dauert die Lektion „SSH-Pipelining und wiederverwendete Verbindungen“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser Ansible Academy-Lektion Code schreiben und ausführen?
Ja. Jede Ansible Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- forks und Parallelität abstimmen
- Strategien: linear, free und host_pinned
- SSH-Pipelining und wiederverwendete Verbindungen
- serial und schrittweise Batch-Ausführung