4

ファブリック スクリプトでデプロイの開始と終了をアナウンスしようとしています。これは簡単なはずですが、私の人生では、どうすればよいのかわかりません。

env.hosts = ['www1', 'www2', 'www3', 'www4']


def announce_start(): 
    # code to connect to irc server and announce deployment begins
    pass


def announce_finish(): 
    # code to connect to irc server and announce deployment finishes
    pass


def deploy():
    # actual deployment code here
    pass

これが私が試したことです:

デプロイ タスクに「announce_start」と「announce_finish」を含めるとします。各サーバーでこれらすべてのタスクを実行しようとします。

def deploy(): 
    announce_start()
    # actual deployment code here
    announce_finish()

Announce_start() と Announce_end() を @hosts('localhost') でデコレートすると、localhost で実行されますが、それでも 4 回実行されます。ホストごとに 1 つ。

これを入力しているときに、最終的には、デコレーター @hosts('localhost') を Announce_start/end で使用し、fab コマンドを使用することで、機能するようになりました。

fab announce_start deploy announce_end

しかし、これは少しハッキーなようです。すべてを 1 つの deploy コマンドにまとめたいと思います。これを行う方法はありますか?

4

1 に答える 1