亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

該如何親批量管理多臺server的不同目錄?

該如何親批量管理多臺server的不同目錄?

元芳怎么了 2023-05-01 17:13:30
如下所示(port是可以這么寫的,目錄不行),進入不同主機時自動進入到不同目錄,執行xxx。對不同的server傳入不同的路徑,執行xxx。 謝謝!env.hosts = [test@server1:path_to_dir_1, test@se rver2:path_to_dir_2 ,......]def xxx():pass
查看完整描述

2 回答

?
HUX布斯

TA貢獻1876條經驗 獲得超6個贊

fabric是可以對主機進行分組的,就像下邊這個

from fabric import hosts,run@hosts('host1', 'host2')def mytask():
 run('ls /var/www')

或者這個

from fabric.api import run, roles

env.roledefs = {    'db': ['db1', 'db2'],    'web': ['web1', 'web2', 'web3'],
}@roles('db')def do():.    pass@roles('web')def do():    pass


查看完整回答
反對 回復 2023-05-04
?
aluckdog

TA貢獻1847條經驗 獲得超7個贊

在我之前的項目是以全局配置項的形式來實現的,為每個host定義自己的work_dir等變量

host_configs = {    "ip1": {        "work_dir": path1
    },    "ip2": {        "work_dir": path2
    },
}

然后在fabric的task方法中通過env['host']作為key,去host_configs中去讀取相應的work_dir信息,并執行相應操作

@taskdef some_task():
    with cd(host_configs[env['host']]['work_dir']):
        do_some_stuff
查看完整回答
反對 回復 2023-05-04
  • 2 回答
  • 0 關注
  • 117 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號