LoginSignup
2
4

More than 5 years have passed since last update.

Hyper-V環境でVagrantを利用する

Posted at

準備

ホスト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
2
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
4