是否有一种优雅的方法来通过Fabric2中的不同任务传递全局变量

时间:2018-08-27 11:55:19

标签: python fabric

现在,我将全局变量(例如release_path等存储在env中,以便传递给 其他任务

我想知道将变量从一个任务传递到另一任务的最佳实践是什么。

谢谢!

2 个答案:

答案 0 :(得分:1)

Connection对象具有一个connect_kwargs,非常适合替换Fabric1的env。您可以阅读有关here

的信息

答案 1 :(得分:0)

您可以在任务上下文中使用env词典:

@task
def qa(ctx):
  ctx.config.run.env['counter'] = 22
  ctx.config.run.env['conn'] = Connection('qa_host')

@task
def sign(ctx):
  print(ctx.config.run.env['counter'])
  conn = ctx.config.run.env['conn']
  conn.run('touch mike_was_here.txt')

然后运行:

fab2 qa sign