No.20


【仮想環境】VirtualboxとVagrantの仮想マシンをコピー

VirtualboxとVagrantで作った仮想マシンを他のPCにコピーする

 仮想サーバは便利だけど欠点もある。ネットワーク上に共通の環境があるわけではないので、複数人・複数環境で開発を行っているとどうしても設定などに差が出てきてしまう。例えばyumでパッケージを入れた・入れない、sshの設定をした・しない、など思い当たることは多いだろう。

 …多いよね?

 まあ、それを解決する方法としてはchefで環境設定を行うとかいろいろあるけれど、手っ取り早いのは仮想サーバそのものをコピーして他人に渡してしまうことだろう。環境を複製しちゃうという乱暴な方法だけど、確実。

 というわけで、しょっちゅう手順を忘れちゃうのでメモしておく。


仮想マシンのコピー

 まず、コピーしたいVagrant環境のディレクトリに移動する。いつもvagrant upしてるディレクトリだ。

cd 対象のディレクトリ

 vagrantのコマンドを使ってboxをexportする。

vagrant package

 デフォルトだとpackage.boxという名前のファイルが出来るけど、変更することも可能。その場合は--outputオプションを指定する。

vagrant package --output ファイル名

 ここまででコピーする側の環境での作業は終わり。

 boxファイルの作成にはそこそこ時間がかかるので急いでるときとかは注意。

 いったんローカルにコピーするなり、scpするなり好きな方法で複製を作る側の環境にコピーしておこう。

※以降の説明は標準のpackage.boxだったという前提で書くので、自分のファイル名に読み換えてどうぞ。


仮想マシンの複製

 複製する方のマシンにコピーしたら、まずはVagrantのboxとして登録を行う。

vagrant box add お好きなボックス名 package.box

 あとは新規に仮想マシンを作るときと同じ。仮想マシン用のディレクトリを作成し、vagrant initしてvagrant upすればOK。

mkdir 仮想マシン用のディレクトリ
cd 仮想マシン用のディレクトリ
vagrant init
vagrant up

参考

 新規に仮想マシンを作成する場合は下記の記事をどうぞ。

VirtualBoxとVagrantで仮想サーバを設置