一个 GitHub Action,可在 CI/CD 工作流中通过 SSH 在远程服务器上执行命令。
- Star
- 6,044
- Fork
- 558
- 未关闭 Issue
- 166
- 最近提交
- 7天前
这是什么?
pyinfra 是一款基础设施自动化工具,让你用 Python 而不是 YAML 编写服务器配置和部署逻辑。它既可以在多台主机上批量执行临时 shell 命令,也可以定义声明式操作(如安装软件包、管理文件),并将其转换为 shell 命令在目标机器上执行。
目标可以是通过 SSH 连接的远程服务器、本地机器或 Docker 容器。操作具备幂等性,因此在真正生效前可以先通过 diff 和 dry run 预览变更。调试时可实时查看标准输入、输出和错误流,并通过增加 -v 参数提升输出详细程度。
由于就是普通的 Python 代码,部署脚本中可以直接使用整个 Python 包生态。项目无需在目标机器上安装 agent,只要求具备 shell 访问权限,并提供 Docker、Terraform、Vagrant 等连接器。
核心功能
- 01用 Python 代码而非 YAML 编写部署逻辑。
- 02可在 SSH 主机、本地机器和 Docker 容器上执行临时命令或声明式操作。
- 03操作具备幂等性,支持变更前的 diff 和 dry run 预览。
- 04实时输出命令的标准输入、输出和错误信息,便于排查故障。
- 05无需 agent,目标机器只需具备 shell 访问权限。
- 06提供 Docker、Terraform、Vagrant 等连接器。
适用场景
- 用同一套 Python 代码配置和部署一批服务器。
- 同时在大量主机上执行相同的 shell 命令。
- 在本地 Docker 容器中先测试服务器配置,再应用到生产环境。
- 希望用 Python 替代 YAML 实现 Ansible 式自动化的团队。
快速上手
- 1
使用 uv 安装 pyinfra
uv tool install pyinfra - 2
在 SSH 服务器上执行命令
pyinfra my-server.net exec -- echo "hello world" - 3
在 Docker 容器中执行命令
pyinfra @docker/ubuntu exec -- echo "Hello world"
标签
常见问题
- pyinfra 是什么?
- 一款基于 Python 的基础设施自动化工具,可在 SSH 服务器、本地机器和 Docker 容器上执行命令与声明式操作。 pyinfra 是一款基础设施自动化工具,让你用 Python 而不是 YAML 编写服务器配置和部署逻辑。它既可以在多台主机上批量执行临时 shell 命令,也可以定义声明式操作(如安装软件包、管理文件),并将其转换为 shell 命令在目标机器上执行。
- pyinfra 可以免费使用吗?用的什么许可证?
- pyinfra 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
- pyinfra 还在维护吗?
- 活跃维护中。pyinfra 最近一次提交是在 2026年10月15日。
- pyinfra 适合用来做什么?
- 用同一套 Python 代码配置和部署一批服务器。 同时在大量主机上执行相同的 shell 命令。 在本地 Docker 容器中先测试服务器配置,再应用到生产环境。 希望用 Python 替代 YAML 实现 Ansible 式自动化的团队。
- pyinfra 怎么安装和运行?
- 使用 uv 安装 pyinfra: uv tool install pyinfra 在 SSH 服务器上执行命令: pyinfra my-server.net exec -- echo "hello world" 在 Docker 容器中执行命令: pyinfra @docker/ubuntu exec -- echo "Hello world"
- 在哪里获取 pyinfra?
- 源代码和安装说明在 GitHub 上:https://github.com/pyinfra-dev/pyinfra
概要由 AI 根据项目 README 生成;GitHub 数据每日更新。
相关项目
6225679ShellMIT更新于 2个月前
基于声明式配置文件的基础设施即代码工具,用于安全地创建、变更和版本化管理云与服务资源。
5万1.1万GoOther更新于 3小时前
OVHcloud 官方命令行工具,可在终端中管理 OVHcloud 各类服务与公有云资源。
21736GoApache-2.0更新于 昨天
一个 Python Kubernetes 客户端库,API 风格贴近 kubectl,同时提供同步和异步接口。
100371PythonBSD-3-Clause更新于 昨天
面向 Linux 的 Clash / Mihomo 代理运行平台,提供订阅管理、节点选择、Tun 模式和诊断工具。
61911231ShellMIT更新于 28天前
一个开源的 AI 计算管理系统,用统一接口在 Kubernetes、Slurm 和多家云上运行与扩展 AI 任务。
1.1万1299PythonApache-2.0更新于 2小时前