6

それで、あなたの経験上、最善の方法は何ですか?ビルド自動化ツールでスクリプト可能/トリガー可能でもある安全な方法はありますか?

編集:これはwindows/.netであり、iis6に展開することに言及する必要があります

4

8 に答える 8

6

一部のプロジェクトでは、Capistranoを使用してライブにプッシュします。これは Ruby の上に構築されており、デプロイ スクリプトの作成が非常に簡単になり、ssh を使用します。

他のプロジェクトでは、bash を使用して一時ディレクトリへの svn エクスポートを実行し、それをライブ サーバーに rsync する小さな展開アプリがあります。rsync に ssh を使用させることができます。

あなたのプロジェクトがルビー/レールでなくても、私はカピストラーノの方法を大いに好みます。

于 2008-08-20T15:32:22.313 に答える
4

これは、SFTP で簡単に実行できることのように思えます。PuTTY (psftp および pscp) またはWindows 用のWinSCP 、または Unix 用のrsyncおよびOpenSSHを見てください。

于 2008-08-20T15:37:21.473 に答える
1

@ Neall、2行目にを追加します。何らかの理由で失敗しset -eた場合に、ライブサイトを置き換えたくないからです。コマンドのいずれかが失敗した場合、スクリプトを終了させます。rsyncset -e

編集:set -eスクリプトの最初に、の直後にあるはず#!/bin/bashです。

于 2008-08-20T15:55:40.713 に答える
1

私はCapistranoの推奨を支持しますが、GUI ベースのソリューションを探している場合はWebistranoフロントエンドを試すことができます。クリーンで ssh ベースの適切な展開とロールバックのセマンティクス、および Ruby による簡単なスクリプト作成と拡張性。

于 2008-08-22T05:40:29.787 に答える
1

ライブ サイト ディレクトリのコピーを作成し、 rsyncを使用してそのコピーを最新バージョンに更新し、ライブ ディレクトリと更新済みディレクトリの名前を変更して、更新されたバージョンがライブになるようにします。

バッシュの場合:

#!/bin/bash

set -e
cp -R /var/livesite /var/newversion
rsync user@devserver:/var/readytogolive /var/newversion
mv /var/livesite /var/oldlivesite
mv /var/newversion /var/livesite

ビオラ!

編集: @Ted Percival - それは良い考えです。「set -e」についても知りませんでした。スクリプトを更新しました。編集:Tedの提案で再び更新されました(ただし、何らかの形でcpコマンドが失敗した場合でも機能すると思いますが、cpが失敗した場合は、おそらくより深刻な問題が発生しています。)

于 2008-08-20T15:38:28.413 に答える
0

私が行ったフリーランスの仕事では、3 つの別々の環境をセットアップしました。

  • 実行された開発サーバーは、CruiseControl を使用してビルドを続行します。チェックインすると、ビルドがトリガーされます。QA テストはここで行われました。
  • ユーザー受け入れテストが行​​われたテストサーバー。
  • 製造。

ワークフローは次のとおりです。

  1. 開発者は SourceControl への変更をチェックインします。
  2. CruiseControl がビルドし、ビルドを Dev にデプロイします。
  3. 開発者は QA 済み
  4. QA に合格すると、開発ビルドをテストにデプロイする robocopy スクリプトが実行されます。
  5. テストは UAT されています
  6. テストに合格すると、テストを PRD にデプロイする robocopy スクリプトが実行されます。
于 2008-08-22T05:44:28.700 に答える
0

ソースで暗号化し、ファイルをプッシュし、宛先で復号化する小さなクライアント/サーバー アプリをいつでも作成できます。それは少しの作業ですが、おそらく些細な量です。また、自動化ツールがファイル システムで何かを実行することをサポートしている限り、スクリプト化も可能です (私はすべてそうしていると思います)。

唯一の欠点は、統合環境での失敗時に意味のあるエラー メッセージを取得できない可能性があることです。

于 2008-08-20T15:32:58.880 に答える
0

うーん、ここでは、ライブ環境でのテスト目的でステージング「サーバー」を使用し (実際には、本番サーバー上の apache 仮想ホスト)、開発を同期するためにaraxis マージ(非常にスマートな行ごとのファイル比較ツール) を使用します。そしてステージング。

テストしたら、ただ; 本番ウェブルートのファイルを置き換えます:)

/mp

于 2008-08-20T15:37:06.280 に答える