
私が作成したいのは、すべて Ubuntu Server 12.04 ゲスト OS ですが、OS 上のソフトウェア スタックが根本的に異なる 5 つの VM の「スイート」です (1 つのサーバーは Subversion、Hudson などがインストールされた「ビルド サーバー」で、もう 1 つのサーバーは JBoss などがインストールされたアプリケーション サーバーです)。
Ubuntu Server のインストールと構成には数時間かかります。可能であれば、これを 1 回だけ実行し (VM に OS の「ベース」バージョンをインストール)、この「ベース」を他の 4 台にコピーしたいと思います。そうすれば、マシンごとに 2 ~ 3 時間を節約でき、各サーバーのアプリケーションのインストールと構成に集中するだけで済みます。
VM を作成すると、次の 3 つのファイルが作成されます。
my-vm.vbox
- これはVMだと思いますmy-vm.vbox-prev
- これが何なのか分からないmy-vm.vdi
- これはゲストOS(私の「ベース」)がインストールされている実際のディスクだと思います
残念ながら、すでに 5 つの VM すべてを作成しており、最初の VM に Ubuntu Server をインストールしている最中なので、セットアップは次のようになります。
build-srv.vbox
、、build-srv.vbox-prev
(build-srv.vdi
VDI は初期化されていますが、何も入っていません)app-srv.vbox
、、 (app-srv.vbox-prev
同じapp-srv.vdi
、初期化されているが、何も入っていない)- など(全5件)
ビルドサーバー( )にUbuntu Serverをインストール中ですbuild-srv
。期待して完了したら、すべての構成情報は に格納されますbuild-srv.vdi
。理論的には、すべきbuild-srv.vdi
他の各サーバーにコピー アンド ペーストして、それぞれの VDI を交換するだけで済みますよね?
VM 設定にアクセスして VDI も何らかの方法で変更する必要があることは確かですが、正しい方向に進んでいるかどうかさえわかりません。
必要なことは可能ですか? 可能であれば、現在使用している OS インスタンスの同じコピーを使用して各 VM を構成するには、何をする必要がありますか? 不可能な場合は、(各 VM に対して同じ 2 時間のインストールを繰り返す以外に) どのようなオプションがありますか? よろしくお願いします!
答え1
各 VDI ファイルには、UUID 形式の識別子が含まれています。Virtualbox
はこれらの UUID をデータベースに記録し、コピーしたばかりの VDI の使用を拒否します (ただし、別のコンピューターではこの UUID については何も記録されないため、問題ありません)。
2 つの方法を知っています:
- VDI をコピーし (ファイル マネージャーまたはコマンド ラインを使用)、使用するとvboxmanage internalcommands sethduuid "path/yourdisk.vdi"
、この VDI の新しい UUID が作成されます
- または、Virtualbox メディア マネージャーを使用します (メニュー内)。コピーするディスクを選択し、[コピー] ボタンをクリックします。同じことが簡単に実行されます。
my-vm.vbox
- これはVMを記述するXMLファイルです。テキストエディタまたはWebブラウザで開くことができます。my-vm.vbox-prev
- これはmy-vm.vboxのバックアップですmy-vm.vdi
- これは仮想ディスクです
編集:このcopy
機能はWindowsにのみ存在するようです。私のLinuxボックスにはこの機能がありませんが、Windowsボックスには
答え2
あなたが探しているのはマルチアタッチディスク モード - 初期ディスク イメージの作成と構成後に適用できます。その後、これを複数の VM のコアとして使用し、それぞれが元のイメージに基づいて独自の差分イメージを持つようになります。コピーやクローンは必要ありません。次のドキュメントを参照してください。http://www.virtualbox.org/manual/ch05.html#hdimagewrites