2014-10-05 53 views
0

我有我我的晶圓廠文件, 幾臺服務器,我想有一個會提示我做什麼,不是所有的服務器上執行它的功能。蟒蛇面料的所有服務器上執行從迅速採取行動

def simple(): 
    actions = prompt('Type the actions: ') 
    run(actions) 

現在,當我這樣做,我得到:

[web1] Type the actions: 
     bla bla bla 

[web2] Type the actions: 
     bla bla bla 

[web3] Type the actions: 
     bla bla bla 

我想鍵入「唧唧歪歪」只有一次,它會在所有服務器上執行, 這可能嗎?

回答

0

那麼,如果simple()這裏是一個結構任務,那麼就會出現這種行爲,因爲您將對執行該任務的每個主機調用prompt()。我想,你用fab命令行工具,並在最簡單的情況:

# fabfile.py 

from fabric.api import run, env 

env.hosts = ['host1', 'host2'] 

def simple(command=''): 
    run(command) 

,並按如下啓動它:

$ fab simple:'ls -la' 
+0

感謝,但有可能做提示什麼?因爲我有很多「問題」,我希望它很容易被忽略 – 2014-10-05 13:02:56

+0

我不確定如果不修改'fab'工具的代碼就可以直接執行此操作,但是您可以在shell腳本中輕鬆實現。這是一個bash單線程:'echo'輸入操作:';閱讀行動; fab fab simple:'$ actions'' – 2014-10-05 13:10:51

+0

ohhh好的,所以我會用你現在做的答案去... – 2014-10-05 13:19:07