2009-03-10 25 views
4

ソフトウェアの配布はすばやく簡単です。それ以外の場合は、手動でパッケージを構築する時間を費やすのは面倒です。だから私はSVNを使って私のレールプロジェクトを生産的な環境に出荷したいと思っています。SVN経由でソフトウェアを提供する方法は?

svn co https://my-server/vs/my-project/tags/1.0.0 

をその後それらの人は、そのローカルSVNのワークスペースの構成設定のための適切なファイルを変更することができます。

アイデアが運用男はただ実行することにより、initalプロジェクトをチェックアウトしなければならないということです。

新しいソフトウェアrealeaseが利用可能な場合は、新しいバージョン番号(例:バージョン1.0.1)を(READMEの横に)配布します。

svn switch https://my-server/vs/my-project/tags/1.0.1 

(もちろん、切断を停止する必要があり、更新後に、いくつかのマイグレーションが行われるようにしている実行中のアップデートを行う前に、など:実行することで、運用チームはちょうど適切なワークスペースに切り替え、生産機械を更新するには)。私は、TARボールを配信したり抽出したりする必要がなく、以前の構成設定がそのまま維持されるか、新しい構成ラインとマージされることを指摘したいと思います(これは解決しなければならない競合につながる可能性があります)。

(さらに)欠点/トラップはありますか?あなたはソフトウェアを出荷するためにSVNを使用するより良いアプローチがありますか?

ありがとうございます!

答えて

4

このアプローチの欠点は、まだ実行していない可能性があります。このアプローチは、アプリケーションを複数のサーバーに拡張する際に操作が面倒になることです。突然4台のフロントエンドサーバーと2台のデータベースサーバーが必要な場合、Opsチームは4台のマシンすべてに対してsshを実行し、それらを構成してからデータベースマシンを構成する必要があります。

近い将来に心配することがあれば、Capistranoのようなものを使用して、一度に多数のマシンにアプリケーションをデプロイして設定することができます。

キャピストラーノをあなたのアプリケーションに採用する利点は、1つのサーバーでも、サブバージョンから取得し、アプリケーションを設定し、データベースを1つのスクリプトで設定できることです。

1

リポジトリに設定ファイルを保存しないでください。私は通常、database.ymlの名前をdatabase-example.ymlに変更し、それを私のrepoに入れます。

単にレポに追加しないようにしてください。恐らく、それらに読み取り専用を与えるだけです。

もう1つのオプションはcapistranoです。アップデートを引き出すのではなく、自分のサーバーを使いたいときにプッシュデプロイするだけです。

1

あなたのレールアプリを展開するためにCapistranoをチェックしてください。 SVNと簡単に統合できます。全体を自動化します。私は私の安定したブランチを更新し、 "cap deploy"コマンドを発行し、それが完了しました。

0

私はあなたのアプローチを自動化するためにカピストラーノを使用することに関して他の人の意見に同意します。それはとてもうまくいく。 CapistranoのWebインターフェイスが必要な場合は、Webistranoをご覧ください。 Ruby on Railsアプリケーションは、Capistranoスクリプトを集中管理し、ロギング、アカウンタビリティ、アクセス制御を提供します。すべてが素敵なWebインターフェイスを介して。

私たちはそれを使用して、数多くのWebサイトを複数のサーバーに展開します。初期設定では、Railsアプリケーションを(例えばPassenger経由で)実行する方法を設定する必要があるため、少しの作業が必要です。 Webistranoはかなりユーザーフレンドリーですが、うまく機能します。これまでに2300回以上展開しています。

関連する問題