2

現在、node.js ベースのシステムの自動展開を設定しようとしています。私はかなりの調査を行ってきましたが、私がやろうとしていることを自動化するためのツールの明白な選択として実際に飛び出したものは何もありません。それは次のように要約できます:

  • コードを中央 Mercurial リポジトリから build-server ビルド ディレクトリにプルします。
  • 関連するクライアント側 JS の連結/縮小
  • 各サーバーについて:
    • ボックスへの SSH
    • 関連するファイルを SSH (SCP など) 経由でコピーします (サーバーの役割ごとに異なるコード)。
    • 関連するプロセスを再起動します。

私はおそらくこれの高レベルの管理にJenkinsを使用するつもりですが、実際に作業をスクリプト化するために使用するツールについては未定です。

JS ベースのビルド スクリプトである必要はありませんが、それはオプションです (とにかく、JS がこのようなものに適した言語であると完全に確信しているわけではありません)。Python または Bash スタイルのソリューションで問題ありません。

上記のタスクを実行できる健全で堅牢な選択は何ですか?

ありがとうございました!

更新: 申し訳ありませんが、前に言及しませんでしたが、理想的には、開発マシンでローカルではなく、中央のビルド/展開サーバーでビルド タスクを実行したいと考えています。

4

3 に答える 3

3

現在、私はすべての展開ニーズにCapistranoを使用しています。PHP、Ruby、Node のいずれでも構いません。

ほとんどすべての状況に対応するレシピがありますが、経験があれば、独自のレシピを簡単に作成できます。独自のコマンドをデプロイ プロセスの特定のイベントにフックできます。

Capistrano は、SSH を使用して本番サーバーまたはステージング サーバーにアクセスし、コマンドをリモートで発行します。

以下に node.js のレシピをいくつか示します (ただし、試したことはありません)。

https://github.com/loopj/capistrano-node-deploy

于 2013-01-17T13:28:29.453 に答える
3

将来的にユーザーにとって何らかの価値がある場合に備えて、最終的にFabricを使用しました。

于 2013-01-24T13:33:19.293 に答える
1

独自のサーバーを使用してアプリをホストすることを主張する場合は、自動化のためにいつでもgrunt.jsを使用できます。カスタムタスクを作成して、好きなことをしたり、コミュニティで言及されたケースを見つけたりすることができます。ミニフィケーションなどはすでに存在すると思います。

ただし、個人的な推奨事項として、 NodeJitsu (有料サービス)でノード アプリをホストすることに満足していると言えます。npm を介してインストールされるコマンドライン ユーティリティを提供します。これにより、コードをクラウドにコピーし、スナップショットを作成し、アプリを自動的に起動できます。これは、私がこれまでに行った中で最も簡単な展開シナリオです。

于 2013-01-17T15:23:27.103 に答える