ファブリックファイルでターゲットホストを設定する方法

| |

Fabricを使用して、Webアプリのコードを開発、ステージング、および本番サーバーにデプロイしたいと考えています。私のfabfile:

  def deploy_2_dev():deploy( "dev")def deploy_2_staging():deploy( "staging")def deploy_2_prod():deploy( "prod")def deploy(server ):print "env.hosts:"、env.hosts env.hosts = [server] print "env.hosts:"、env.hosts  

出力例:

  host:folder user $ fab deploy_2_dev env.hosts:[] env.hosts:["dev"]ホストが見つかりません。接続用の(単一の)ホスト文字列を指定してください: 

ファブリックドキュメント、env.hostsが正しく設定されています。ただし、これは実行可能なオプションではなく、デコレータでもありません。コマンドラインでホストを渡すと、最終的にはfabfileを呼び出すある種のシェルスクリプトが作成されます。1つのツールで適切に機能させることをお勧めします。

ファブリックのドキュメントには、「env.hosts単にPythonリストオブジェクトです」。私の観察から、これは単に真実ではありません。

誰かがここで何が起こっているのか説明できますか?デプロイするホストを設定するにはどうすればよいですか?