Python - 如何在 Fabric 模块中设置 env.variables



我正在尝试使用Fabric模块在几个树莓派上并行运行命令。我已经阅读了文档,但我仍然有点困惑。

import fabric
env.hosts = [
"pi@192.168.3.151", 
"pi@192.168.3.123"
]
env.password = "Raspberry"
@parallel
def command(cmd):
sudo(cmd)
command("touch /Desktop/new_filename.txt")

当我运行该代码时,我收到错误env is not defined,我应该如何在此处定义 env 以使用这些主机?现阶段的文档超出了我的范围。

以下内容应该适合您:

from fabric.context_managers import env
from fabric.decorators import task
from fabric.tasks import execute
env.hosts = [
"pi@192.168.3.151", 
"pi@192.168.3.123"
]
env.password = "Raspberry"
@task
def command(cmd):
sudo(cmd)
execute('command', "touch /Desktop/new_filename.txt")

请注意我们在这里所做的两件事:(1( 导入我们需要的内容和 (2( 确保使用任务/执行结构来获取对 env 的运行时更改。

最新更新