0Pricing
Ansible Academy · Lezione

Pipelining SSH e riutilizzo delle connessioni

Riduca l'overhead per attività

Pipelining SSH e riutilizzo delle connessioni è una lezione Ansible Academy gratuita su CoddyKit. Questa è la lezione 3 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Ansible Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Ansible Academy include 4 lezioni in totale.

Il sovraccarico di SSH si accumula

Ogni task può comportare un nuovo accesso, la copia di un file e l'esecuzione tramite SSH. Moltiplicando queste operazioni per molti task e molti host, il sovraccarico finisce per dominare l'esecuzione.

Come viene eseguito normalmente un task

Per impostazione predefinita, Ansible copia un modulo sull'host, lo esegue e poi rimuove i file temporanei. Ogni passaggio comporta un viaggio di andata e ritorno tramite SSH, che spesso può essere evitato.

Il pipelining viene in aiuto

Con il pipelining, Ansible trasmette il modulo attraverso la sessione SSH esistente invece di scrivere prima un file temporaneo, riducendo le connessioni per ogni task.

[ssh_connection]
pipelining = True

Il problema di requiretty

Il pipelining richiede sudo senza un TTY, quindi sudoers sul sistema remoto non deve imporre requiretty. Le distribuzioni moderne non hanno problemi; alcune con configurazioni più rigide richiedono una modifica.

Riutilizzare la connessione

ControlPersist di OpenSSH mantiene aperta una connessione principale e vi instrada i task successivi, evitando un nuovo handshake ogni volta.

Regolare ssh_args

Ansible abilita il riutilizzo delle connessioni tramite ssh_args. Il valore ControlPersist stabilisce per quanto tempo il socket condiviso resta attivo dopo l'ultimo task.

[ssh_connection]
ssh_args = -o ControlMaster=auto -o ControlPersist=60s

Dove si trovano i socket

La connessione condivisa risiede in un file socket del percorso di controllo. Mantenga breve questo percorso per evitare il limite del sistema operativo sulla lunghezza del nome del socket.

[ssh_connection]
control_path = %(directory)s/%%h-%%p-%%r

Pipelining e riutilizzo a confronto

Risolvono costi diversi: il pipelining riduce i viaggi di andata e ritorno all'interno di un task, mentre ControlPersist riutilizza la sessione SSH tra molti task.

Usarli insieme

Il pipelining e le connessioni persistenti si sommano. Attivare entrambi è uno dei miglioramenti delle prestazioni più significativi e a minor rischio che può applicare a un playbook di grandi dimensioni.

Velocizzare anche la raccolta dei facts

Se non le servono i facts, imposti gather_facts: false per ignorare il modulo di setup. In questo modo elimina un passaggio costoso dall'inizio di ogni play.

Misurare il miglioramento

Abiliti il callback profile_tasks per cronometrare ogni task. Mostra esattamente dove vengono impiegati i secondi, così può verificare che le ottimizzazioni abbiano davvero aiutato.

Verifica rapida

Vuole che ogni task eviti di scrivere un file temporaneo prima di essere eseguito tramite SSH.

Riepilogo

Attivi il pipelining per ridurre i viaggi di andata e ritorno e ControlPersist per riutilizzare le sessioni SSH. Insieme riducono drasticamente il sovraccarico delle connessioni nei play di grandi dimensioni. ⚡

Domande Frequenti

La lezione «Pipelining SSH e riutilizzo delle connessioni» è gratuita?

Sì — il testo completo di «Pipelining SSH e riutilizzo delle connessioni» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Ansible Academy, passa a CoddyKit PRO. Il corso Ansible Academy include 4 lezioni in totale.

Cosa imparerò in «Pipelining SSH e riutilizzo delle connessioni»?

Riduca l'overhead per attività Eserciti Ansible Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.

Ho bisogno di esperienza per iniziare Ansible Academy?

Non è richiesta alcuna esperienza precedente. Ansible Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 3 di 4.

Quanto tempo richiede la lezione «Pipelining SSH e riutilizzo delle connessioni»?

La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.

Posso scrivere ed eseguire codice in questa lezione Ansible Academy?

Sì. Ogni lezione Ansible Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.

Tutte le lezioni di questo corso

  1. forks e ottimizzazione del parallelismo
  2. Strategie: linear, free e host_pinned
  3. Pipelining SSH e riutilizzo delle connessioni
  4. serial ed esecuzione in batch progressivi
← Torna a Ansible Academy