15
ファブリックファイルでターゲットホストを設定する方法
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'] No hosts found. Please specify (single) host string for connection: Fabric docsにset_hosts()示されているようにタスクを作成すると、env.hostsが正しく設定されます。ただし、これは実行可能なオプションではなく、デコレータでもありません。コマンドラインでホストを渡すと、最終的にはfabfileを呼び出すある種のシェルスクリプトが生成されます。1つのツールで適切に処理を行うことをお勧めします。 それはファブリックのドキュメントで「env.hostsは単なるPythonリストオブジェクト」であると述べています。私の観察から、これは単に真実ではありません。 誰かがここで何が起こっているのか説明できますか?デプロイするホストを設定するにはどうすればよいですか?