0Pricing
DevOps Bootcamp · Lektion

SSH-Pipelining und wiederverwendete Verbindungen

Reduzieren Sie den Overhead pro Task.

SSH-Pipelining und wiederverwendete Verbindungen ist eine kostenlose DevOps Bootcamp-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 DevOps Bootcamp-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der DevOps Bootcamp-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 = True

Die 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=60s

Wo 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-%%r

Pipelining 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 DevOps Bootcamp-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der DevOps Bootcamp-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „SSH-Pipelining und wiederverwendete Verbindungen“?

Reduzieren Sie den Overhead pro Task. Du übst DevOps Bootcamp 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 DevOps Bootcamp zu starten?

Keine Vorkenntnisse erforderlich. DevOps Bootcamp 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 DevOps Bootcamp-Lektion Code schreiben und ausführen?

Ja. Jede DevOps Bootcamp-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

  1. forks und Parallelität abstimmen
  2. Strategien: linear, free und host_pinned
  3. SSH-Pipelining und wiederverwendete Verbindungen
  4. serial und schrittweise Batch-Ausführung
← Zurück zu DevOps Bootcamp