質問

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

編集:これは Windows/.net であり、iis6 にデプロイする予定であることに注意してください。

役に立ちましたか?

解決

私が使用するいくつかのプロジェクトでは カピストラーノ 生きるために押し出すこと。Ruby 上に構築されており、デプロイ スクリプトの記述が非常に簡単になり、ssh を使用します。

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

プロジェクトが Ruby/Rails でなくても、私は Capistrano メソッドを非常に好みます。

他のヒント

これは SFTP を使用すると簡単に実行できそうなものです。を見てみましょう パテ (psftp および pscp) または WinSCP Windowsの場合、または rsync そして OpenSSH Unix 用。

@ニール、追加します set -e 2 行目は、ライブ サイトが置き換えられることを望まないためです。 rsync 何らかの理由で失敗します。 set -e いずれかのコマンドが失敗した場合、スクリプトは終了します。

編集:の set -e スクリプトの直後の最初に置く必要があります #!/bin/bash.

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

bash の場合:

#!/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 が失敗した場合は、おそらくより深刻な問題が発生します)。

私は次の推薦をします カピストラーノ, ただし、GUI ベースのソリューションを探している場合は、 ウェブストラーノ フロントエンド。クリーンで ssh ベースの健全なデプロイメントとロールバックのセマンティクス、および Ruby による簡単なスクリプト作成と拡張性。

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

唯一の欠点は、統合環境での失敗時に、もう少し作業を行わないと、意味のあるエラー メッセージを取得できない可能性があることです (ただし、設定によっては、エラー メッセージを標準出力に送信するだけで済む場合もあります)。

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

一度テストしたら、ただ;実稼働ウェブルート上のファイルを置き換えます:)

/mp

私がフリーランスで働いていたとき、私たちは 3 つの異なる環境をセットアップしました。

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

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

  1. 開発者は変更を SourceControl にチェックインします。
  2. CruiseControl がビルドし、そのビルドを開発者にデプロイします。
  3. 開発者は QA を受けています
  4. QA に合格した後、Dev ビルドを Test にデプロイする robocopy スクリプトが実行されます。
  5. テストは UAT で行われます
  6. テストに合格すると、テストを PRD にデプロイする robocopy スクリプトが実行されます。
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top