2

次の機能を備えた、JVM プロジェクト (Java、Spring、Grails など) 用の非常にシンプルなデプロイ ツールを探しています。

  • 専用のサーバー/エージェント/などは必要ありません。単純なコンソール コマンドとして、1 つの開発者マシン (または CI サーバー) からデプロイを実行したい
  • 特別なサーバー構成を必要とせず、サーバー構成を作成することは想定されていません
  • SCPを使用して、または理想的にはrsyncを使用してWARをアップロードするだけです(変更されたファイルのみを更新します)
  • (理想的には) s3/cloudfront への静的ファイルのアップロード
  • リモートサーバーでコマンドを実行できます (Tomcat サービスの再起動)
  • サーバーにいくつかの最新バージョンを保存し、それらのいずれかにロールバックする機能(基本的にはシンボリックリンクの更新である必要があります)
  • 異なるサーバー (テスト、ステージング、本番) を使用するように構成できます
  • (理想的には) Maven プラグインまたは Grails プラグインを持っている
  • 少数のサーバーへの並行アップロードをサポート

次のようになります。

$ deploytool staging deploy 
$ deploytool staging rollback

また

$ mvn deploytool:deploy -P staging
$ mvn deploytool:rollback -P staging

基本的には次のとおりです。

  1. コンパイル + テスト + ビルド アーカイブ
  2. サーバー上に「日付」ディレクトリを作成します ( /.../application/version-%date%/)
  3. WAR コンテンツをローカル マシンからこのディレクトリにアップロードします
  4. 以前のシンボリックリンクを更新 ( /.../application/current/->/.../application/version-%date%/
  5. Tomcat を再起動します ( sudo service tomcat7 restart)
  6. 最も古いバージョンのディレクトリを削除します (最新の 5 つのバージョンのみ、または過去 45 日間のバージョンを保持します)
  7. 何か問題がある場合 - シンボリックリンクを以前のバージョンに更新します (そして tomcat を再起動します)

私は Puppet と JClouds を見てきましたが、展開ではなく、クラスター構成についての別のことのようです。現在、あるプロジェクトでは Ruby Capistrano を使用し、別のプロジェクトでは bash スクリプトを使用しています。Capistrano は優れていますが、rvm、ruby、gem などのインストールが必要です。Ruby 以外のチームではうまく機能せず、Java プロジェクトの多くのカスタマイズが必要です。

Java/JVM プロジェクト用の Capistrano のようなツールはありますか?

4

1 に答える 1

2
  1. maven-compiler-pluginmaven-surefire-pluginおよびを使用maven-war-pluginして構築します
  2. buildnumber-maven-plugin現在のタイムスタンプ値でプロパティを作成するために使用します
  3. wagon-maven-pluginステージング サーバーに war をアップロードするために、生成されたタイムスタンプ値と共に使用します
  4. sshexec-maven-plugin選択したバージョンのアプリケーションで Tomcat を再起動するシェル スクリプトを開始 するために使用します
于 2012-07-23T17:10:33.477 に答える