无法在 Fabric.api 上的函数中管理字典

can't manage dictionary in a function on Fabric.api

我第一次使用 fabric 来管理 systemimager 的一些自动化。 这个概念很简单:我想向 X 主机发送一个 systemimager 命令。

host_dict = {
'192.168.1.1': 'hostname1',
'192.168.1.2': 'hostname2',
'192.168.1.3': 'hostname3',
}   #list of servers to backup

env.hosts = host_dict.keys() #we initialize the env host for fabric

def prepare_client():
   # A function to send prepare_client command to a remoteserver by his hostname
   print("Executing prepare_client on %s" % (env.host))
   run("si_prepareclient --server " + env.host + " --yes")
   time.sleep(30) #30 sec to let prepare_client to complete

我想在我的函数中使用 host_dict 的键。 像这样:

def prepare_client():
# A function to send prepare_client command to a remoteserver by his 
hostname
    print("Executing prepare_client on %s" % (host_dict(env.host)))

但是我收到这个错误:

fab prepare_client

print("Executing prepare_client on %s" % (host_dict(env.host))) TypeError: 'dict' object is not callable

有人可以纠正我吗? 非常感谢!

我的错, 我在调用字典键时犯了一个初学者错误。

语法是: host_dict[env.host]

根据https://docs.python.org/2/tutorial/datastructures.html

谢谢摩西·科莱多耶!