Una GitHub Action para ejecutar comandos en servidores remotos por SSH desde tus flujos de CI/CD.
pyinfra-dev/pyinfra
Una herramienta de automatización de infraestructura que ejecuta operaciones definidas en Python y comandos de shell en servidores SSH, máquinas locales y contenedores Docker.
Alternativa open source a:Ansible
- Estrellas
- 6,044
- Forks
- 558
- Issues abiertos
- 166
- Último commit
- hace 7 días
¿Qué es?
pyinfra es una herramienta de automatización de infraestructura que permite escribir en Python la configuración de servidores y la lógica de despliegue, en lugar de usar YAML. Puedes ejecutar comandos de shell puntuales en muchos hosts o definir operaciones declarativas, como instalar paquetes o gestionar archivos; pyinfra las convierte en comandos de shell y las ejecuta en los destinos.
Los destinos pueden ser servidores remotos accesibles por SSH, la máquina local o contenedores Docker. Las operaciones son idempotentes, por lo que puedes revisar los cambios con diffs y ejecuciones en seco antes de aplicarlos. Para depurar, puedes consultar en tiempo real la entrada estándar (stdin) y las salidas estándar y de error (stdout y stderr), con niveles de detalle cada vez mayores.
Como es Python estándar, puedes usar el ecosistema de paquetes de Python en tus scripts de despliegue. El proyecto no requiere agentes: solo necesita acceso al shell del destino e incluye conectores para Docker, Terraform y Vagrant.
Funciones clave
- 01Escribe la lógica de despliegue en Python en lugar de YAML.
- 02Ejecuta comandos puntuales u operaciones declarativas en hosts accesibles por SSH, la máquina local y contenedores Docker.
- 03Las operaciones idempotentes admiten diffs y ejecuciones en seco antes de aplicar los cambios.
- 04La salida de los comandos en tiempo real facilita la depuración de los pasos que fallan.
- 05No requiere agentes: solo se necesita acceso al shell del destino.
- 06Conectores para inventarios de Docker, Terraform y Vagrant.
Casos de uso
- Configurar y desplegar un conjunto de servidores desde una única base de código Python.
- Ejecutar el mismo comando de shell en muchos hosts a la vez.
- Probar la configuración de servidores en contenedores Docker locales antes de intervenir en producción.
- Equipos que buscan una automatización al estilo de Ansible, pero con Python en lugar de YAML.
Inicio rápido
- 1
Instalar pyinfra con uv
uv tool install pyinfra - 2
Ejecutar un comando en un servidor SSH
pyinfra my-server.net exec -- echo "hello world" - 3
Ejecutar un comando en un contenedor Docker
pyinfra @docker/ubuntu exec -- echo "Hello world"
Temas
Preguntas frecuentes
- ¿Qué es pyinfra?
- Una herramienta de automatización de infraestructura que ejecuta operaciones definidas en Python y comandos de shell en servidores SSH, máquinas locales y contenedores Docker. pyinfra es una herramienta de automatización de infraestructura que permite escribir en Python la configuración de servidores y la lógica de despliegue, en lugar de usar YAML. Puedes ejecutar comandos de shell puntuales en muchos hosts o definir operaciones declarativas, como instalar paquetes o gestionar archivos; pyinfra las convierte en comandos de shell y las ejecuta en los destinos.
- ¿pyinfra es gratuito? ¿Qué licencia tiene?
- pyinfra es open source bajo la licencia MIT. Revisa los términos de la licencia antes de usarlo en productos comerciales.
- ¿pyinfra sigue mantenido?
- Mantenimiento activo. El último commit de pyinfra fue el 15 oct 2026.
- ¿Para qué puedo usar pyinfra?
- Configurar y desplegar un conjunto de servidores desde una única base de código Python. Ejecutar el mismo comando de shell en muchos hosts a la vez. Probar la configuración de servidores en contenedores Docker locales antes de intervenir en producción. Equipos que buscan una automatización al estilo de Ansible, pero con Python en lugar de YAML.
- ¿Cómo se instala pyinfra?
- Instalar pyinfra con uv: uv tool install pyinfra Ejecutar un comando en un servidor SSH: pyinfra my-server.net exec -- echo "hello world" Ejecutar un comando en un contenedor Docker: pyinfra @docker/ubuntu exec -- echo "Hello world"
- ¿Dónde consigo pyinfra?
- El código fuente y las instrucciones de instalación están en GitHub: https://github.com/pyinfra-dev/pyinfra
Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.
Proyectos relacionados
CLI de infraestructura como código que planifica y aplica archivos de configuración declarativos para crear, modificar y versionar recursos de servicios y en la nube.
Interfaz oficial de línea de comandos de OVHcloud para gestionar servicios, cuentas y recursos de Public Cloud desde la terminal.
Una biblioteca cliente de Python para Kubernetes con una API basada en kubectl e interfaces síncronas y asíncronas (asyncio/trio).
Ejecutor basado en shell para los kernels proxy de Clash / Mihomo en Linux, con gestión de suscripciones, selección de nodos, modo Tun y un comando doctor integrado.
Sistema de código abierto para ejecutar, gestionar y escalar cargas de trabajo de IA en Kubernetes, Slurm y más de 20 nubes o proveedores de GPU desde una sola interfaz.