僕は普段 MacBookAir の 128GB を使っているのですが、最近 Vagrant でローカルに開発環境を作るようになり、複数の VM が容量を圧迫するようになっていました。調べてみると Vagrant の環境を外付けHDDなどに移すことができるようだったので、手持ちのポータブルHDDに移してみました。
ここでは下記の構成で移動させました。
- ファイルディレクトリ
/Volumes/data/htdocs/www.example.jp/vccw/Vagrantfile - Vagrant データ
/Volumes/data/htdocs/vagrant_home/ - VirtualBox データ
/Volumes/data/htdocs/vagrant_vms/
VirtualBox
Vagrant の環境を外付けに移すには、まず VirtualBox の設定を変更する必要があります(僕は Vagrant の VM を管理するのに VirtualBox を使っているので、VMWare の場合は別途ググってください…。)。はじめはよく分からずにまず Vagrant のデータディレクトリを外付けに移して試してみたのですが、VirtualBox のデータを移してからでないと Vagrant のデータディレクトリがローカルに復活してしまうようでしたので注意してください。
デフォルトの仮想マシンフォルダー
VirtualBox > 環境設定 > 一般 > デフォルトの仮想マシンフォルダー を開き「/Volumes/data/vagrant_vms」に変更します。
既に存在しているデータを移動させる場合は下記コマンドでデータを移動して
# VM を移動 mv ~/VirtualBox\ VMs/xxxxxxxxxxx /Volumes/data/vagrant_vms/
VirtualBox マネージャーで対象の VM を「除去」>「除去のみ」。
これでマネージャー上からは消えるので、VirtualBox > 仮想マシン > 追加 で「/Volumes/data/vagrant_vms/xxxxxxxxxxx/xxxxxxxxxxx.vbox」を選択して外付け上の VM を追加します。
Vagrant
Vagrantのデータが外付けに生成されるようにするには、環境変数 VAGRANT_HOME
を設定します。次のコマンドで設定できます。
# VAGRANT_HOME を設定 export VAGRANT_HOME=/Volumes/data/vagrant_home
既に存在しているデータを移動させる場合は下記のコマンドでデータを移動させます。
# Vagrant データの移動 mv ~/.vagrant.d/* /Volumes/data/vagrant_home/
これで vagrant up
すれば外付け上で Vagrant 環境が使用できます。
# Vagrant を起動 cd /Volumes/data/htdocs/www.example.jp/vccw/ vagrant up
僕の MacBookAir は USB2.0 なので速度的にきついかなと心配していましたが、特に問題なく使えました。Modern.IE の環境2つと、Vagrant の環境2つを移動させて 30GB の容量を確保できました。とりあえずこれで容量問題は一安心…。