簡體   English   中英

在結構中的任務之間使用變量

[英]Using variables between tasks in fabric

我的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上執行second()。

我應該使用execute(),但是如何在帶有“主機”的行中為auth設置密碼?

謝謝您的幫助。

您可以使用env共享溫度,使用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)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM