準備
ホストOS上のディレクトリをゲストOSにマウントするために、SMBを使うことになる。その際に必要となるユーザーIDとパスワードをVagrantfileに記述しないですむようにするため、dotenvプラグインを導入する。
vagrant plugin install dotenv
ユーザーIDとパスワードは、Vagrantfileと同じディレクトリ上の「.env」ファイルに下記形式で記述しておく。
SMB_USER = 'myuserid'
SMB_PASS = 'mypassword'
Vagrantfileの記述
CentOS6系ではインストールされるSMBのバージョンが古く、ホストOS上のディレクトリのマウントがうまくいかないため、CentOSは7系を利用している。
また、vagrant up
する際には、ホストOS上で管理者権限で実行する必要がある。管理者権限がない場合、共有領域の作成に失敗し、ディレクトリのマウントがうまくいかない。
# -*- mode: ruby -*-
# -*- coding: utf-8; -*-
# vi: set ft=ruby; :
Dotenv.load
VAGRANTFILE_API_VERSION = "2"
Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
config.vm.box = "centos/7"
config.vm.hostname = "webapp"
# Static IPアドレス指定はHyper-Vで機能しない。
# config.vm.network :private_network, ip: '192.168.44.11'
config.vm.synced_folder ".", "/vagrant", type: "smb", smb_username: "#{ENV['SMB_USER']}", smb_password: "#{ENV['SMB_PASS']}", mount_options: ["vers=3.0"]
config.vm.provider "hyperv" do |vb|
vb.vmname = "mywebserver"
end
end