0

世界中に40台のサーバーが分散しています。すべての実行中の centos ランプ。
私はgitを使用しており、productionブランチへのすべての変更をそれらの各マシンにデプロイしたいと考えています。各マシンには、独自のconfig.phpファイルと、他のいくつかのマシン固有のファイルがあります。

現在production、phpunitテスト、php-md、cpdなどを実行するphingを使用して、ブランチトリガーhudsonビルドタスクにコミットしています。問題は、できれば更新されたサーバーごとにセレンテストを実行して、各マシンにデプロイする方法です。ライブにする前に。

カピストラーノを調べましたが、ルビーを混ぜてチームにこの依存関係を追加したくありません。

php マルチサーバー CI 展開に関する提案はありますか?

バリアント 1

オプションとして、コミット時に Web フックを実行し、phing各マシンでビルドを起動します。ビルド構成で、複製するレポ、残すファイル、置き換えるファイルを指定します。
バグのあるファイルを突然プッシュすると、これは失敗しbuild.xmlますが、40回の手動の中断なしでは再構築/元に戻すことができなくなります. + 元に戻すオプションはありません。

4

3 に答える 3

1

フックがCIサーバーを介してビルドスクリプトをトリガーする、少しカスタマイズされたgitフローで終わりました。ビルド結果は、最近40台すべてのサーバーpost-receiveと同期されたフォルダーに配置されました。rsync

各サーバーのconfig.phpはgitリポジトリ自体に残されており、現在のサーバーの正しい ファイルをロードするように
phpのauto_perpend_fileディレクティブが構成に設定されていました。vhostconfig.php

于 2012-11-15T08:34:58.283 に答える
0

サーバーにデプロイする場合は deployhq.com などのサービスを使用できます。自分でデプロイしたい場合はdeployogiをご覧ください。これは bash と deployogi-hooks に基づいており、これらのフックは phpscript (またはモード 755 のもの) にすることができます。

于 2013-08-05T15:57:09.170 に答える
0

現在 Phing を使用している場合は、単純にJenkinsを使用してリポジトリに変更がないか数分ごとにポーリングし、Phing を使用してデプロイを開始できます。

ビルド スクリプトが、適切な構成ファイルを使用して各環境にファイルをアップロードしていると想定しています。

于 2012-11-09T16:43:24.637 に答える