質問

ここに私たちの現在のPHP開発ソリューションの設定方法です。

自分のローカルマシン上の各開発者の仕事。 各開発者は、共通のSVNサーバ(イントラネット)への変更をコミットします。 commitフックは、ステージングサーバーに変更をアップロードして検証作業を行います。 製品の準備ができたら、の手動のは、SFTP経由で本番サーバーにデプロイます。

注:ほとんどの - すべてではない - 私はSFTPサーバへのSSHアクセスを持っていない時間の

私は、ステージングサーバーが更新されたのと同じ方法で運用サーバーへの展開を自動化することができますが、このソリューションは、一方向のみで動作します。どのように私は、問題が発生した場合に、以前のリビジョンに戻すことができますか?

私は、このソリューションをどのように改善できるか?

おかげで、私の英語のため申し訳ありません。

役に立ちましたか?

解決

あなたはWebDAVのHTTPSなど、安全なチャネルを経由してSVNのレポにアクセスするための運用サーバーをセットアップすることができた場合は、多分、次を試してみます:

あなたがタグのディレクトリおよび/またはリビジョン番号/日付を入力して、SVNのエクスポートを実行することを可能にする本番サーバー上でスクリプトを作成します。この方法では、PRODサーバは、SVNから変更を引っ張っされます。

あなたは、からしっかりと呼ばれるこのスクリプトを持つ方法を持っている場合は、

さて、スクリプトをコミット言います。ほら、あなたは自動化を持っています。

最も重要なのは、あなたがのために計画していなかったのprodサーバーに実行される自動更新を望んでいない。

これを解決するために、

唯一の何かがコミットされPROD更新スクリプトを呼び出す必要がありますコミットスクリプトを「/パス/に/タグ/リリース/ DIR」

必ずのみ、適切な変更管理スタッフ(または誰でも、現在の手動のprod deplymentを制御)レポに、このディレクトリへのsvnコピーを実行する能力を持っているを確認します。

たとえば、あなたのレポは以下のように設定されていると言います

/yourWebsite
--> /branches
--> /trunk
--> /tags
----> /releases

のようなものになるでしょうPRODへの自動展開をトリガーすることをコミットします:

svn copy https://mySvnRepo/yourWebSite/trunk \
   https://mySvnRepo/yourWebSite/tags/releases/x.y \
   -m "Tagging for production deployment"

ロールバックすると、以前のリリースディレクトリにコミットすることによって達成することができます。これはロールバックされるように追加された新しいファイルを起こさないことに、しかし注意します。

もちろん、あなたのマイレージは異なる場合があります。これはあなたのの調査のための唯一の提案です。 あなたは間違って設定した場合、災害のためのセキュリティ上の影響と可能性を検討する時間を取る必要があります。

は、これが唯一のあなたは、他のソリューションを考えて取得する場合でも、お役に立てば幸いです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top