開発サーバーから本番サーバーへのコードのデプロイを管理するためのベストプラクティス


8

コードの展開を管理できる簡単なツールまたは方法を見つけたいと思っています。

このソリューションに期待する機能は次のとおりです。

  1. ファイルのリストが指定されたWebベースのファイルまたはバッチファイルのいずれかが、本番サーバーと通信し、それらのファイルを別のフォルダーにバックアップし、zipしてバックアップコードフォルダーに入れます。

  2. 次に、展開の名前、日付/時刻、および目的を記録します。

  3. 次に、本番サーバー上の適切な場所にファイルを送信します。

展開を行うのに複雑なインターフェースを使いたくないので、彼らはそれを使用しないかもしれません。

それとも私が求めているのは非現実的すぎますか?

私は自分の自己規律が完全ではないことを知っています。実行する必要のあることを実行するために信頼できるツールがあり、次に自分が毎回実行する必要がある正確な手順を自分で記憶したいのです。

どのようにして、すべてが正しくデプロイされていることを確認し、間違いがあった場合に簡単にロールバックできますか?


Subversionとコミット後フック?サーバーに作業コピーを用意し、リポジトリにコミットし、コミット後フックを使用してサーバーの作業コピーを更新します。
Vitor Py

QumasoftによってQVCSと呼ばれるSubversionを使用していません。
crosenblum 2011年

私たちが使用するソース管理を変更することに基づいていない何かを提案できますか?
crosenblum

Capistranoを使用すると、独自のQVCSドライバーを作成できます。
Htbaa

申し訳ありませんが、これを明確にしていない場合は、Windows OSでの解決策が必要です。
crosenblum 2011年

回答:


2

これはすべてバッチファイルで実行できます。以下は、バッチファイルで実行する必要がある基本的な手順です。

  1. 変数に現在の日時を取得します。
  2. 本番ディレクトリのコピーを現在の日付時刻のフォルダに作成します。必要に応じて、フォルダを圧縮します。
  3. ビルドドロップフォルダーを本番ディレクトリに複製します。上書きしたくないファイル(web.configなど)をスキップすることもできます。xcopyとrobocopyはどちらもファイルをスキップできます。

最初のステップを除いて、他の2つのステップは非常に基本的なコマンドライン操作です。最初のものに関しては、次のコードは日時を含むディレクトリを取得する方法を示しています。

for /f "tokens=1-3 delims=/ " %%A in ("%DATE%") DO (
  set DATESTR=%%C%%A%%B
)

for /f "tokens=1-3 delims=:." %%F in ("%TIME%") DO (
  set TIMESTR=%%F%%G%%H
)

set CURRENTDT=%DATESTR%T%TIMESTR%

:: now you can use the date time in a folder name:
xcopy /e \\production1\site1 \\backup\site1\backup-%CURRENTDT%\

1

Railsless-Deployプラグインを使用したCapistranoの仕事のように聞こえます。


私もカピストラーノと言っていました。他に何もない場合、カピストラーノがあなたに提供しているものを見るのは、あなたが何が利用可能であるかを知るための素晴らしい方法です。
glenatron 2011年

CapistranoはLinux専用ですか?
crosenblum 2011年

RubyはWindowsで動作しますが、1.5年前はWindowsで動作させることができませんでした。そこで代わりに、無料のVMWare ServerエディションをダウンロードしてUbuntu仮想サーバーをインストールし、Capistrano用に構成しました。おそらく、Windowsのサポートが改善されたのでしょう。
Htbaa

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.