web-dev-qa-db-ja.com

VPSをローカルVMに複製しますか?

皆さんにとって楽しいチャレンジがあります。私が働いている会社は、開発/リリースのワークフローと環境を設定しています。最終的な本番環境は、Virtuozzo仮想化環境内でCentOSを実行する人気のあるホストでホストされるVPSです。

本番環境の仮想化インスタンス(またはそれに近いもの)を各開発者のローカルシステムにインストールしたいと思います。これにより、各開発者は、問題が発生したときに他の人のシステムを汚染することなく、自分のシステムでローカルに変更をテストできます。

明らかに、これを行うには多くの方法がありますが、優れた特定のアプローチがあると思います。これは私があなたの助けを必要とするところです。

これまでのところ、最良の選択肢は次のようです。


Virtuozzo VMをエクスポート/バックアップします。ローカルシステムにダウンロードして、Virtuozzoコンテナにインストールします。

これは最もクリーンで純粋なソリューションですが、機能しない場合があります。たとえば、複製されたVMには、VPSのネットワークからのすべてのネットワーク構成が含まれます。これら(およびその他の古い構成値)を更新するスクリプトを作成するのは難しいので、ローカルVMに適していますか?

任意の仮想化製品で作成された同様に構成されたVM)にコードベースをデプロイします。

このアプローチはそれほどクリーンではありませんが、うまくいくことはわかっています(以前にやったことがあります)。たとえば、同じバージョンのCentOS、Apache、MySQLなどをローカルのVMWareVMにインストールできます。環境は実稼働環境と同じではありませんが、このワークフローを実行可能にするのに十分近い可能性があります。

別のオプション?

他にどのような選択肢があると思いますか?または、これらのオプションの1つが最適ですか?私はあなたの考えを聞いてみたいです! :)


編集:

本番サーバー上の複数のcPanel /ユーザーアカウント

VPSのカスタマーサポートに連絡して、Virtuozzoバックアップにアクセスできるかどうかを確認しました。彼は私たちの要求を拒否しましたが、開発者ごとに個別のcPanel /ユーザーアカウントを作成してみるよう提案しました。これにより、環境をサーバーの環境と同じにすることができますが、環境がローカルではなくリモートで実行されるため、少し不便になります。それでも、まともなオプション。

4
rinogo

これはあなたのために完全に機能します...

ソース上VMインスタンス.。

Sudo su
cd /
tar cvpzf backup.tgz --exclude=/proc --exclude=/lost+found --exclude=/backup.tgz --exclude=/mnt --exclude=/sys /

ターゲットマシン(専用またはVPS)

tar xvpfz backup.tgz -C /

そして、除外されたdirが再作成されていることを確認してください

mkdir proc
mkdir lost+found
mkdir mnt
mkdir sys

素敵なMicrosoftVirtualPC Linuxイメージを作成して、全員に配布するだけです。