pyinfra
v3.1.1
pyinfra 将 Python 代码转换为 shell 命令并在您的服务器上运行它们。执行临时命令并编写声明性操作。目标 SSH 服务器、本地计算机和 Docker 容器。速度快,可从一台服务器扩展到数千台服务器。想想ansible
,但用Python代替YAML,而且速度更快。
文档•帮助和支持•贡献
为什么是宾弗拉?设计特点包括:
-vvv
)。使用pip
安装 pyinfra :
pip install pyinfra
现在您可以通过 SSH 在主机上执行命令:
pyinfra my-server.net exec -- echo " hello world "
或者定位 Docker 容器、本地计算机和其他连接器:
pyinfra @docker/ubuntu exec -- echo " Hello world "
pyinfra @local exec -- echo " Hello world "
除了执行命令之外,您还可以使用操作定义状态:
# Install iftop apt package if not present
pyinfra @docker/ubuntu apt.packages iftop update=true _sudo=true
然后可以将其保存为Python文件,例如deploy.py
:
from pyinfra . operations import apt
apt . packages (
name = "Ensure iftop is installed" ,
packages = [ 'iftop' ],
update = True ,
_sudo = True ,
)
主机也可以保存在文件中,例如inventory.py
:
targets = [ "@docker/ubuntu" , "my-test-server.net" ]
并一起执行:
pyinfra inventory.py deploy.py
现在您知道了 pyinfra 的构建块!通过结合库存、操作和 Python 代码,您可以部署任何内容。
请参阅更详细的入门或使用操作指南。了解如何使用清单和数据、全局参数和 CLI 或查看记录的示例。