これは非常にFabric固有の質問ですが、経験豊富な Python ハッカーは、Fabric を知らなくても、これに答えることができるかもしれません。
コマンドが実行されている役割に応じて、コマンドで異なる動作を指定しようとしています。
def restart():
if (SERVERTYPE == "APACHE"):
sudo("apache2ctl graceful",pty=True)
elif (SERVERTYPE == "APE"):
sudo("supervisorctl reload",pty=True)
私はこれを次のような関数でハッキングしていました:
def apache():
global SERVERTYPE
SERVERTYPE = "APACHE"
env.hosts = ['xxx.xxx.com']
しかし、それは明らかにあまりエレガントではなく、役割を発見したばかりなので、私の質問は次のとおりです。
現在のインスタンスが属しているロールを確認するにはどうすればよいですか?
env.roledefs = {
'apache': ['xxx.xxx.com'],
'APE': ['yyy.xxx.com'],
}
ありがとう!