Windowsで開発環境構築をしようとしていていろいろ模索中。
VagrantでUbuntuを入れてフォルダ共有で作業しやすくしようと思って色々試したのだけれど、かなり四苦八苦したのでメモを残す。 なお、VagrantのプロバイダはHyper-Vで入れてる。
NFSでファイル共有できず
よく見かける記事はNFSで共有とあるのだけれど、
Windows users: NFS folders do not work on Windows hosts. Vagrant will ignore your request for NFS synced folders on Windows.
と書いてあるように、使えないらしい。
が、vagrant-winnfsdプラグインを入れれば使えるらしい。
が!😰結論からいうとHyper-Vを使っているからなのか、使えなかった。詳細は、以下のissueを見るとよい。
結局、vagrant-winnfsdプラグインは削除した。VitrualBoxを使っている人は問題ないと思います😊
sambaで共有する
先ほどのissueに書いてあるけれど、Hyper-Vでやる場合はsambaがいいらしい。速さも遜色ないよ、と。
ということで、sambaでやることに。smb_username
とsmb_password
は書いておくとvagrant up
の都度聞かれなくて済む。
ただ、ハードコードするのはなんか嫌なので、環境変数とかにしたい(後の課題とする)。
Vagrant.configure("2") do |config| config.vm.box = "bento/ubuntu-18.04" config.vm.provider "hyperv" # フォルダ共有設定 config.vm.synced_folder ".", "/vagrant", create: true, type: "smb", mount_options: ["vers=3.0"], smb_host: '172.17.112.161', # ipconfigで取得したvEthernet (Default Switch)のIP smb_username: '**********' # Windowsのログインユーザー名 smb_password: '**********', # Windowsのログインパスワード config.vm.provider "hyperv" do |hyperv| hyperv.cpus = 4 hyperv.memory = 4096 hyperv.maxmemory = 1024 * 16 end end
ファイアウォールの設定を変更する
設定はこれでOKなのだけれど、まだダメだった…。 原因は、Windowsに入れてるアンチウィルスソフトのファイアウォール機能だった。これに気づけなくて数時間を無駄にした😫
私はアンチウィルスソフトにカスペルスキーを使っているので、その変更方法を書いておく。