Pipelining de SSH y reutilización de conexiones
Reduzca la sobrecarga por tarea
Pipelining de SSH y reutilización de conexiones es una lección gratuita de DevOps Bootcamp en CoddyKit. Esta es la lección 3 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de DevOps Bootcamp, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de DevOps Bootcamp incluye 4 lecciones en total.
El coste adicional de SSH se acumula
Cada tarea puede implicar un inicio de sesión nuevo, una copia de archivos y una ejecución mediante SSH. Multiplique esto por muchas tareas y muchos hosts, y el coste adicional dominará la ejecución.
Cómo se ejecuta normalmente una tarea
De forma predeterminada, Ansible copia un módulo al host, lo ejecuta y después limpia los archivos temporales. Cada paso implica un viaje de ida y vuelta por SSH que a menudo puede evitarse.
Pipelining al rescate
Con pipelining, Ansible transmite el módulo a través de la sesión SSH existente en lugar de escribir primero un archivo temporal, reduciendo las conexiones por tarea.
[ssh_connection]
pipelining = TrueEl inconveniente de requiretty
Pipelining necesita sudo sin un TTY, por lo que sudoers en el equipo remoto no debe exigir requiretty. Las distribuciones modernas funcionan bien; algunas con medidas de seguridad reforzadas necesitan un ajuste.
Reutilice la conexión
OpenSSH ControlPersist mantiene abierta una conexión maestra y dirige las tareas posteriores a través de ella, evitando un nuevo proceso de conexión cada vez.
Ajuste ssh_args
Ansible habilita la reutilización de conexiones mediante ssh_args. El valor de ControlPersist determina cuánto tiempo permanece activo el socket compartido después de la última tarea.
[ssh_connection]
ssh_args = -o ControlMaster=auto -o ControlPersist=60sDónde se encuentran los sockets
La conexión compartida reside en un archivo de socket de control path. Mantenga esta ruta corta para evitar el límite del sistema operativo sobre la longitud del nombre del socket.
[ssh_connection]
control_path = %(directory)s/%%h-%%p-%%rPipelining frente a reutilización
Resuelven costes diferentes: pipelining reduce los viajes de ida y vuelta dentro de una tarea, mientras que ControlPersist reutiliza la sesión SSH entre muchas tareas.
Utilice ambos conjuntamente
Pipelining y las conexiones persistentes se combinan. Activar ambos es una de las mejoras de velocidad más importantes y con menor riesgo que puede aplicar a un playbook grande.
También puede acelerar la recopilación de datos
Si no necesita datos, establezca gather_facts: false para omitir el módulo de configuración. Esto elimina un paso costoso del inicio de cada play.
Mida la mejora
Active el callback profile_tasks para cronometrar cada tarea. Muestra exactamente dónde se emplean los segundos, para que pueda confirmar que el ajuste realmente ha ayudado.
Comprobación rápida
Quiere que cada tarea evite escribir un archivo temporal antes de ejecutarse mediante SSH.
Resumen
Active pipelining para reducir los viajes de ida y vuelta y ControlPersist para reutilizar las sesiones SSH. Juntos reducen drásticamente el coste de las conexiones en plays grandes. ⚡
Preguntas frecuentes
¿La lección «Pipelining de SSH y reutilización de conexiones» es gratis?
Sí — el texto completo de «Pipelining de SSH y reutilización de conexiones» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de DevOps Bootcamp, actualiza a CoddyKit PRO. El curso de DevOps Bootcamp incluye 4 lecciones en total.
¿Qué aprenderé en «Pipelining de SSH y reutilización de conexiones»?
Reduzca la sobrecarga por tarea Practicas DevOps Bootcamp con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.
¿Necesito experiencia previa para empezar DevOps Bootcamp?
No se requiere experiencia previa. DevOps Bootcamp en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 3 de 4.
¿Cuánto tiempo toma la lección «Pipelining de SSH y reutilización de conexiones»?
La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.
¿Puedo escribir y ejecutar código en esta lección de DevOps Bootcamp?
Sí. Cada lección de DevOps Bootcamp incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.
Todas las lecciones de este curso
- forks y ajuste del paralelismo
- Estrategias: linear, free y host_pinned
- Pipelining de SSH y reutilización de conexiones
- serial y ejecución por lotes progresivos