環境
OS - software | version |
---|---|
Mac(ホスト) | High Sierra 10.13.6 |
CentOS(ゲスト) | 7.5.1804 |
vagrant | 2.1.2 |
vagrant-vbguest | 0.15.2 |
vagrant-vbguestインストール
ホストOS(Mac)とゲストOS(CentOS)間でファイルを共有する為に、vagrant-vbguest
プラグインを入れます。
vagrant-vbguest
は、
VirtualBox と box にインストールされている Guest Additions のバージョンが違う場合に、VirtualBox のバージョンに合わせて最適化してくれるプラグインです。
vagrantのプラグインのインストールは、
vagrant plugin install [プラグイン名]で行います。
$ vagrant plugin install vagrant-vbguest
Guest Additionsのアップデート
まずは、vagrant status
でゲストOSの状態を確認し、起動していなければ、vagrant up
で立ち上げてからアップデートを実行してください。
ホストOS側で、以下コマンドを実行します。
$ vagrant vbguest
ステータスを確認
$ vagrant vbguest --status
マッチしている時:
GuestAdditions 5.0.16 running --- OK.
フォルダの同期設定とGuest Additionsの更新無効設定(Vagrantfile編集)
同期設定
Vagrantfileは、config.vm.synced_folder
を以下のように追加します。
Vagrant.configure("2") do |config|
~~省略~~
config.vm.synced_folder "/Users/ユーザー名/work", "/home/vagrant/vagrant_data",create:"true"
end
- ホスト側のフォルダ:/Users/ユーザー名/work
- ゲスト側のフォルダ:/home/vagrant/vagrant_data
- オプション:「create:"true」でフォルダが存在していない場合に作成
Guest Additionsの更新無効設定
続けて、グローバルのVagrantfile(~/.vagrant.d/Vagrantfile)に更新無効の設定を行います。
※デフォルトの設定では、vagrant up
の際にGuest Additionsが自動的にアップデートされます。起動時にゲストOSだけアップデートされるとバージョン不一致でエラーが発生するので、更新は無効にしておきます。
Vagrant.configure("2") do |config|
~~省略~~
# 起動時のGuestAdditions自動アップデート設定
config.vbguest.auto_update = false
# isoファイルをダウンロードしない
config.vbguest.no_remote = true
end
動作確認
今回行った共有設定ができているか確認します。
ホスト側:/Users/ユーザー名/work
ゲスト側:/home/vagrant/vagrant_data
$ # ゲストOSの再起動とステータス確認
$ vagrant reload && vagrant status
$
$ # runningが出ていることを確認し、ssh
$ vagrant ssh
ゲスト側で作成したものがホスト側に反映されるか
[vagrant]$ pwd
[vagrant]$ /home/vagrant
[vagrant]$ cd vagrant_data
[vagrant]$ touch test_file.txt
[vagrant]$ mkdir test_dir
[vagrant]$ ls -l
ホスト側の/Users/ユーザー名/work内に「test_file.txt」と「test_dir」が作成されていればOK
ホスト側で削除したものがゲスト側に反映されるか
$ cd /Users/ユーザー名/work
$ rm test_file.txt
$ rm -r test_dir
$ ls -l
ゲスト側の/home/vagrant/vagrant_dataに存在していた「test_file.txt」と「test_dir」が無くなっていれば、OK