Vagrant 事始め 05 - 共有フォルダを設定する

ローカルマシンと仮想マシン間でファイルを便利にやりとりするために、共有フォルダの設定をします。

プラグインの確認をする

まずは共有フォルダを利用するのに必要なプラグインが、Vagrant に設定されているかを確認します。

> vagrant plugin list
vagrant-vbguest (0.15.1)

上記の 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.15.1.gem (100%)
Installed the plugin 'vagrant-vbguest (0.15.1)'!

とコマンドを実行して、vagrant-vbguest をインストールします。インストールが完了したら、ふたたび vagrant plugin list を実行して、プラグインがあることを確認します。

そして、vbguest の状態を確認します。

> vagrant up
Bringing machine 'default' up with 'virtualbox' provider...
> vagrant vbguest --status
[default] GuestAdditions 5.2.6 running --- OK.

もし、vagrant vbguest --status コマンドの結果が

> vagrant vbguest --status
[default] No installation found.

と表示された場合、vbguest を利用するのに必要なパッケージをインストールします。

> vagrant vbguest

必要なパッケージのインストールが始まるので、しばし待ちます。

共有フォルダの設定

共有フォルダの設定は Vagrantfile に記述します。

Vagrantfile
Vagrant.configure("2") do |config|
  config.vm.box = "centos/7"
  config.vm.network "private_network", ip: "192.168.33.10"
  # ローカルマシンの Vagrantfile があるディレクトリ内の data フォルダと
  # 仮想マシン内の /vagrant_data ディレクトリを共有する
  # config.vm.synced_folder {host_path}, {guest_path}, option...
  config.vm.synced_folder "./data", "/vagrant_data"
end
オプション名 説明
create booleam true/false 初期値は false
true が指定されると、指定されたディレクトリが存在しない場合にディレクトリを作成する
disabled boolean true/false true を指定するとディレクトリの共有を停止する
group string - ディレクトリの所有グループを指定する
初期値は SSH ユーザーが所属するグループ
mount_options array - 初期値は空配列
mount コマンドのオプションを指定
owner string - 初期値は SSH ユーザー
ディレクトリの所有者を指定
type string 指定なし(virtualbox)/nfs/rsync/smb 初期値はvirtualbox
nfs などローカルマシンの OS によっては利用できない
id string - mount ポイントの名称を指定
デフォルトはディレクトリパスのスラッシュをアンダーバーに変換した名称

共有フォルダの設定例

virtualbox

Vagrantfile
  # Windows で絶対パスで指定するときバックスラッシュはエスケープする必要がある
  config.vm.synced_folder "C:\\Vagrant\\centos7\\public_html", "/vagrant_data", owner: "vagrant", group: "www"

nfs

Vagrantfile
  config.vm.synced_folder "./data", "/vagrant_data", type: "nfs", nfs_export: true, nfs_version: 3

rsync

Vagrantfile
  config.vm.synced_folder "./data", "/vagrant_data", type: "rsync", rsync__exclude: [".git/"]

smb

Vagrantfile
  # Windows で利用する場合は PowerShell v3 以上が必須
  config.vm.synced_folder "./data", "/vagrant_data", type: "smb", smb_host: "192.168.0.15", smb_password: hogehoge, smb_username: "fugafuga"
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.