vagrantで管理する仮想環境側と、ホストOS側でファイル共有する場合、共有フォルダを使う方法があります。 ここでは、共有に必要なGuest Additionsのインストール方法や共有フォルダの設定方法についての説明します。
Guest Additions
vagrantでvirtaulboxの共有機能をつかって共有フォルダを作成する場合、Guest Addtionsが必要です。 インストールされていないboxの場合、Guest Additionsを手動でインストールする必要があります。 インストールには、vagrantのプラグインのvagrant-vbguestを使用します。
プラグインの確認
インストール済みのvagrantのプラグインを確認するコマンドは以下になります。 これでvagrant-vbguestがインストールされているか確認します。
vagrant plugin list
プラグインのvagrant-disksizeだけインストールされている場合、以下のようになります。
vagrant plugin list vagrant-disksize (0.1.3, global)
vagrant-vbguestのインストール
vagrant-vbguestをインストールします。
vagrant plugin install vagrant-vbguest Installing the 'vagrant-vbguest' plugin. This can take a few minutes... Fetching: micromachine-3.0.0.gem (100%) Fetching: vagrant-vbguest-0.20.0.gem (100%) Installed the plugin 'vagrant-vbguest (0.20.0)'!
Guest Additionsの存在確認
vagrantで起動した仮想マシンに、Guest Additionsがインストールされているかどうか、以下で確認できます。
vagrant vbguest --status注意 仮想マシンが停止していると確認できません。
インストールされていない場合、以下のようになります。
vagrant vbguest --status [default] No Virtualbox Guest Additions installation found.
インストールされている場合は、以下のようになります。
vagrant vbguest --status [default] GuestAdditions 6.0.12 running --- OK.
Guest Additionsのインストール
Guest Additionsのインストールは、以下のコマンドで行います。
vagrant vbguest
実行すると以下のようになります。
vagrant vbguest [default] No Virtualbox Guest Additions installation found. Loaded plugins: fastestmirror Loading mirror speeds from cached hostfile * base: ftp.jaist.ac.jp * extras: ftp.jaist.ac.jp * updates: ftp.jaist.ac.jp Resolving Dependencies --> Running transaction check ---> Package centos-release.x86_64 0:7-6.1810.2.el7.centos will be updated ---> Package centos-release.x86_64 0:7-7.1908.0.el7.centos will be an update --> Finished Dependency Resolution Dependencies Resolved ================================================================================ Package Arch Version Repository Size ================================================================================ Updating: centos-release x86_64 7-7.1908.0.el7.centos base 26 k Transaction Summary ================================================================================ Upgrade 1 Package ・・・ ・・・ ================================================================================ Package Arch Version Repository Size ================================================================================ Installing: gcc x86_64 4.8.5-39.el7 base 16 M Updating: binutils x86_64 2.27-41.base.el7 base 5.9 M make x86_64 1:3.82-24.el7 base 421 k Installing for dependencies: cpp x86_64 4.8.5-39.el7 base 5.9 M glibc-devel x86_64 2.17-292.el7 base 1.1 M glibc-headers x86_64 2.17-292.el7 base 687 k kernel-headers x86_64 3.10.0-1062.1.2.el7 updates 8.7 M libmpc x86_64 1.0.1-3.el7 base 51 k mpfr x86_64 3.1.1-4.el7 base 203 k Updating for dependencies: glibc x86_64 2.17-292.el7 base 3.6 M glibc-common x86_64 2.17-292.el7 base 11 M libgcc x86_64 4.8.5-39.el7 base 102 k libgomp x86_64 4.8.5-39.el7 base 158 k Transaction Summary ================================================================================ Install 1 Package (+6 Dependent packages) Upgrade 2 Packages (+4 Dependent packages) Total download size: 55 M Downloading packages: No Presto metadata available for base -------------------------------------------------------------------------------- Total 28 MB/s | 55 MB 00:01 Running transaction check Running transaction test Transaction test succeeded Running transaction Updating : libgcc-4.8.5-39.el7.x86_64 1/19 Updating : glibc-common-2.17-292.el7.x86_64 2/19 Updating : glibc-2.17-292.el7.x86_64 3/19 warning: /etc/nsswitch.conf created as /etc/nsswitch.conf.rpmnew Installing : mpfr-3.1.1-4.el7.x86_64 4/19 Installing : libmpc-1.0.1-3.el7.x86_64 5/19 Installing : cpp-4.8.5-39.el7.x86_64 6/19 Updating : binutils-2.27-41.base.el7.x86_64 7/19 Updating : libgomp-4.8.5-39.el7.x86_64 8/19 Installing : kernel-headers-3.10.0-1062.1.2.el7.x86_64 9/19 Installing : glibc-headers-2.17-292.el7.x86_64 10/19 Installing : glibc-devel-2.17-292.el7.x86_64 11/19 Installing : gcc-4.8.5-39.el7.x86_64 12/19 Updating : 1:make-3.82-24.el7.x86_64 13/19 Cleanup : 1:make-3.82-23.el7.x86_64 14/19 Cleanup : libgomp-4.8.5-36.el7_6.2.x86_64 15/19 Cleanup : binutils-2.27-34.base.el7.x86_64 16/19 Cleanup : glibc-common-2.17-260.el7_6.5.x86_64 17/19 Cleanup : glibc-2.17-260.el7_6.5.x86_64 18/19 Cleanup : libgcc-4.8.5-36.el7_6.2.x86_64 19/19 Verifying : glibc-devel-2.17-292.el7.x86_64 1/19 Verifying : glibc-2.17-292.el7.x86_64 2/19 Verifying : kernel-headers-3.10.0-1062.1.2.el7.x86_64 3/19 Verifying : cpp-4.8.5-39.el7.x86_64 4/19 Verifying : mpfr-3.1.1-4.el7.x86_64 5/19 Verifying : binutils-2.27-41.base.el7.x86_64 6/19 Verifying : libmpc-1.0.1-3.el7.x86_64 7/19 Verifying : libgomp-4.8.5-39.el7.x86_64 8/19 Verifying : 1:make-3.82-24.el7.x86_64 9/19 Verifying : gcc-4.8.5-39.el7.x86_64 10/19 Verifying : glibc-common-2.17-292.el7.x86_64 11/19 Verifying : libgcc-4.8.5-39.el7.x86_64 12/19 Verifying : glibc-headers-2.17-292.el7.x86_64 13/19 Verifying : libgomp-4.8.5-36.el7_6.2.x86_64 14/19 Verifying : libgcc-4.8.5-36.el7_6.2.x86_64 15/19 Verifying : 1:make-3.82-23.el7.x86_64 16/19 Verifying : glibc-2.17-260.el7_6.5.x86_64 17/19 Verifying : binutils-2.27-34.base.el7.x86_64 18/19 Verifying : glibc-common-2.17-260.el7_6.5.x86_64 19/19 Installed: gcc.x86_64 0:4.8.5-39.el7 Dependency Installed: cpp.x86_64 0:4.8.5-39.el7 glibc-devel.x86_64 0:2.17-292.el7 glibc-headers.x86_64 0:2.17-292.el7 kernel-headers.x86_64 0:3.10.0-1062.1.2.el7 libmpc.x86_64 0:1.0.1-3.el7 mpfr.x86_64 0:3.1.1-4.el7 Updated: binutils.x86_64 0:2.27-41.base.el7 make.x86_64 1:3.82-24.el7 Dependency Updated: glibc.x86_64 0:2.17-292.el7 glibc-common.x86_64 0:2.17-292.el7 libgcc.x86_64 0:4.8.5-39.el7 libgomp.x86_64 0:4.8.5-39.el7 Complete! Copy iso file C:\Program Files\Oracle\VirtualBox\VBoxGuestAdditions.iso into the box /tmp/VBoxGuestAdditions.iso Mounting Virtualbox Guest Additions ISO to: /mnt mount: /dev/loop0 is write-protected, mounting read-only Installing Virtualbox Guest Additions 6.0.12 - guest version is unknown Verifying archive integrity... All good. Uncompressing VirtualBox 6.0.12 Guest Additions for Linux........ VirtualBox Guest Additions installer Copying additional installer modules ... Installing additional modules ... VirtualBox Guest Additions: Starting. VirtualBox Guest Additions: Building the VirtualBox Guest Additions kernel modules. This may take a while. VirtualBox Guest Additions: To build modules for other installed kernels, run VirtualBox Guest Additions: /sbin/rcvboxadd quicksetup <version> VirtualBox Guest Additions: or VirtualBox Guest Additions: /sbin/rcvboxadd quicksetup all VirtualBox Guest Additions: Building the modules for kernel 3.10.0-957.12.2.el7.x86_64. Redirecting to /bin/systemctl start vboxadd.service Redirecting to /bin/systemctl start vboxadd-service.service Unmounting Virtualbox Guest Additions ISO from: /mnt
共有フォルダの設定
共有フォルダの共有方式は、rsyncや、virtaulboxの共有機能など、いくつかあります。
Virtualboxの共有機能
Virtualboxの共有機能を使用する場合、typeにvirtualboxを指定します。
config.vm.synced_folder ”[ホスト側パス]”, ”[仮想側パス]", type: "virtualbox"
例
Vagrant.configure("2") do |config| ... config.vm.synced_folder ".", "/vagrant", type: "virtualbox" ... endホスト側パスは、絶対パスと相対パスのどちらでも使用できます。 相対パスの場合、Vagrantfileがあるディレクトリが基準になります。 上記例の "."は、Vagrantfileがあるディレクトリになります。
仮想側のパスは、"/vagrant" が良く使われます。