それで、あなたの経験上、最善の方法は何ですか?ビルド自動化ツールでスクリプト可能/トリガー可能でもある安全な方法はありますか?
編集:これはwindows/.netであり、iis6に展開することに言及する必要があります
それで、あなたの経験上、最善の方法は何ですか?ビルド自動化ツールでスクリプト可能/トリガー可能でもある安全な方法はありますか?
編集:これはwindows/.netであり、iis6に展開することに言及する必要があります
一部のプロジェクトでは、Capistranoを使用してライブにプッシュします。これは Ruby の上に構築されており、デプロイ スクリプトの作成が非常に簡単になり、ssh を使用します。
他のプロジェクトでは、bash を使用して一時ディレクトリへの svn エクスポートを実行し、それをライブ サーバーに rsync する小さな展開アプリがあります。rsync に ssh を使用させることができます。
あなたのプロジェクトがルビー/レールでなくても、私はカピストラーノの方法を大いに好みます。
これは、SFTP で簡単に実行できることのように思えます。PuTTY (psftp および pscp) またはWindows 用のWinSCP 、または Unix 用のrsyncおよびOpenSSHを見てください。
@ Neall、2行目にを追加します。何らかの理由で失敗しset -e
た場合に、ライブサイトを置き換えたくないからです。コマンドのいずれかが失敗した場合、スクリプトを終了させます。rsync
set -e
編集:set -e
スクリプトの最初に、の直後にあるはず#!/bin/bash
です。
私はCapistranoの推奨を支持しますが、GUI ベースのソリューションを探している場合はWebistranoフロントエンドを試すことができます。クリーンで ssh ベースの適切な展開とロールバックのセマンティクス、および Ruby による簡単なスクリプト作成と拡張性。
ライブ サイト ディレクトリのコピーを作成し、 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が失敗した場合は、おそらくより深刻な問題が発生しています。)
私が行ったフリーランスの仕事では、3 つの別々の環境をセットアップしました。
ワークフローは次のとおりです。
ソースで暗号化し、ファイルをプッシュし、宛先で復号化する小さなクライアント/サーバー アプリをいつでも作成できます。それは少しの作業ですが、おそらく些細な量です。また、自動化ツールがファイル システムで何かを実行することをサポートしている限り、スクリプト化も可能です (私はすべてそうしていると思います)。
唯一の欠点は、統合環境での失敗時に意味のあるエラー メッセージを取得できない可能性があることです。
うーん、ここでは、ライブ環境でのテスト目的でステージング「サーバー」を使用し (実際には、本番サーバー上の apache 仮想ホスト)、開発を同期するためにaraxis マージ(非常にスマートな行ごとのファイル比較ツール) を使用します。そしてステージング。
テストしたら、ただ; 本番ウェブルートのファイルを置き換えます:)
/mp