gpt4 book ai didi

python - 在结构中的任务之间使用变量

转载 作者:太空宇宙 更新时间:2023-11-03 17:23:50 24 4
gpt4 key购买 nike

我对 fabfile 有疑问。我有下一个脚本

temp = []

rolesdef = { server1: [user@server.com],
server2: [user@server2.com, user@server3.com]
}

@task
@roles('server1')
def first():
...do something...
temp = something

@task
@roles('server2')
@parallel
def second():
...do something...
run(temp)

如何在first()中定义的second()中使用“temp”?另外,我想在一次执行 fabfile 期间在 server1 上执行 first() ,在 server2 上执行 secondary() 。

我应该使用execute(),但是如何在“hosts”行中设置身份验证密码?

感谢您的帮助。

最佳答案

您可以使用 env 来共享 temp,并使用 with_setting 装饰器来更改密码和用户 -

from fabric.api import env
from fabric.decorators import with_settings, roles, task

rolesdef = { "server1": ["server.com"],
"server2": ["server2.com", "server3.com"]
}
connection = { "server1": {"user": "user1", "password": "123"},
"server2": {"user": "user2", "password": "456"}
}

@task
@roles('server1')
@with_settings(**connection["server1"])
def first():
...do something...
env.temp = something

@task
@roles('server2')
@with_settings(**connection["server2"])
@parallel
def second():
...do something...
run(env.temp)

关于python - 在结构中的任务之间使用变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32831837/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com