Vagrant + Virtualboxで共有フォルダの設定をしてみよう

share
Pocket

Vargrant+Virtualboxで仮想環境を使って開発をしているとき、

「ホストOSのファイルをゲストOSに転送したい」
「ゲストOSからホストOSのファイルを使いたい」

と、思うことはないでしょうか。

そういう時に便利な機能が共有フォルダです。共有フォルダを使うと、ホストOSとゲストOSでフォルダの共有ができるため、ファイル転送をする必要がなくなります。

共有フォルダ機能を使うには、Virtualboxの「Guest Additions」をインストールが必要です。今回はVagrantのプラグイン「vagrant-vbguest」を使って、「Guest Additions」をインストールをします。「Guest Additions」、「vagrant-vbguest」の機能を紹介したのち、共有フォルダを設定していきましょう。

スポンサーリンク

Guest Additionsとは

Guest Additionsとは、ゲストOSのパフォーマンスや操作性が向上するソフトウェアです。その中に、共有フォルダの機能が含まれています。他にも、ホストとの時刻同期など、様々な機能があります。

  • シームレスなマウス移動
  • シームレスなウィンドウサイズ変更
  • 高解像度のデスクトッ画面が使用可能
  • ホストマシンとの時刻同期
  • 共有フォルダ
  • クリップボードの共有
  • オートログオン

vagrant-vbguestとは

vagrant-vbguestとは、仮想マシン起動時にGuest Additionsのバージョンを自動的に更新するプラグインです。もし、Guest Additionsがインストールされていない場合は、自動的にインストールしてくれます。

手動でGuest Additionsをインストールやバージョン更新する必要がなくなるため、非常に有用なプラグインです。

インストール/アンインストール方法

Vagrantのプラグインであるため、Vagrantコマンドでインストール/アンインストールすることができます。

# インストール
$ vagrant plugin install vagrant-vbguest

# アンインストール
$ vagrant plugin uninstall vagrant-vbguest

共有フォルダを設定してみよう

それでは、必要なプラグインを紹介しましたので、Vagrant+VartualBoxで共有フォルダを設定してみましょう。共有フォルダを設定するには、Vagrantfileの「config.vm.synced_folder」を編集します。

config.vm.synced_foldertを編集

config.vm.synced_folderとは、ホストOSとゲストOSで共有するフォルダを設定します。以下のように記述することで、共有フォルダを使うことができます。

config.vm.synced_folder ".", "/vagrant", type: "virtualbox"

上記は、「ホストOSのカレントディレクトリ」「ゲストOSの/vagrantフォルダ」「Virtualboxの共有フォルダ機能で共有する」という意味です。config.vm.synced_folderのオプションは以下をご参考ください。(公式サイトから抜粋)

  • create (boolean) - trueの場合、ホストマシンにフォルダがなければ生成する。デフォルトはfalse。

  • disabled (boolean) - trueの場合、共有フォルダを無効にする。

  • group (string) - 共有フォルダのグループを指定する。

  • mount_options (array) - マウントのオプションを指定する。

  • owner (string) - 共有フォルダのオーナー指定する。

  • type (string) - 共有フォルダのマウントタイプを指定する。

  • id (string) - マウントポイントの名前を指定する。

「type」オプションを設定していない場合、Vagrantは最も適切な共有フォルダオプションを自動的に選択します。しかし、自動では、使いたい共有方法が使えない場合がありますので、その場合は「type」オプションを設定しましょう。(例えば、Virtualboxの共有フォルダ(vboxsf)を使いたいが、rsyncが優先されてしまうなど)

「vagrant-vbugest」をインストール

続いて、「vagrant-vbguest」をインストールしましょう。先ほど紹介しました通り、Vagrantコマンドでインストールします。

# 「vagrant-vbguest」をインストール
$ vagrant plugin install vagrant-vbguest
Installing the 'vagrant-vbguest' plugin. This can take a few minutes...
Fetching: micromachine-2.0.0.gem (100%)
Fetching: vagrant-vbguest-0.14.2.gem (100%)

# Vagrantプラグインを確認
$ vagrant plugin list
vagrant-vbguest (0.14.2)

仮想マシンを起動

最後に、「vagrant up」で仮想マシンを起動します。仮想マシンを起動することにより、自動的にGuest Additionsのインストールおよび、共有フォルダを設定してくれます。すでに起動中の場合は、「vagrant reload」で仮想マシンを再起動しましょう。

$ vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
==> default: Checking if box 'centos/7' is up to date...
==> default: Fixed port collision for 22 => 2222. Now on port 2200.
# 中略
Installing Virtualbox Guest Additions 5.1.24 - guest version is unknown
Verifying archive integrity... All good.
# 中略
==> default: Mounting shared folders...
        default: /vagrant => D:/test

仮想マシンにログインし、ゲストOSからホストOSのファイルが確認できれば、共有フォルダ設定ができています。

スポンサーリンク

feedly、RSSをフォローする