Dockerの繁栄により、昨今全く脚光を浴びることがなくなったVagrant
18日前にVagrant v 2.1.2がreleaseされ、上記のissueが対応された。
Vagrantに使用する仮想化技術としてWSLからHyper-Vが使えるようになったらしい。
これまではわざわざパワーシェルを立ち上げる必要があった。
試してみよー。
動作環境
- Windows10 pro
- Ubuntu 16.04
インストール
バイナリのソースを落としてきてdpkg install
コマンドでインストール。
$ wget https://releases.hashicorp.com/vagrant/2.1.2/vagrant_2.1.2_x86_64.deb $ dpkg -i vagrant_2.1.2_x86_64.deb
確認。
$ vagrant --version Vagrant 2.1.2
Hyper-Vを有効化する
以下を参考に有効化しましょう。 Windows 10 での Hyper-V の有効化 | Microsoft Docs
諸々の環境変数を指定する
マストな設定
VagrantはWindowsシステム内のプロバイダを使用するため、Windowsシステム内への実行権限が必要になる。
この設定は、 VAGRANT_WSL_ENABLE_WINDOWS_ACCESS
という環境変数を設定することで可能。
$ export VAGRANT_WSL_ENABLE_WINDOWS_ACCESS="1"
VAGRANT_HOME
環境変数は、自動的にWindows側のホームディレクトリに変更される。
WSL側とWindows側で共有されたディレクトリは、強制的に、Windows側からは読み書き禁止の権限となる。
WinとWSLのユーザー名が違う場合
Windows 側のユーザー名とWSL側のユーザー名が異なる場合は VAGRANT_WSL_WINDOWS_ACCESS_USER
という環境変数でWindows側のユーザー名を指定する。
$ export VAGRANT_WSL_WINDOWS_ACCESS_USER=kimoton
WSL側のディレクトリで仮想環境を立ち上げたい場合
Windows側のホームディレクトリ(デフォルトだと/mnt/c/[User名]
)以下出ない箇所をプロジェクトディレクトリとしてVagrant を立ち上げたい場合、
vagrant ssh
等のコマンドは失敗する。
そこで、VAGRANT_WSL_WINDOWS_ACCESS_USER_HOME_PATH
という環境変数を用いてプロジェクトディレクトリの設定を行う。
$ export VAGRANT_WSL_WINDOWS_ACCESS_USER_HOME_PATH=/mnt/c/vagrant
この環境変数で指定したディレクトリでは、パーミッションのチェックが行われないため、vagrant ssh
が通る。
おまけ
起動時にすべて指定したい場合は~/.bashrc
に書いておきましょう。
参考:
Vagrant and Windows Subsystem for Linux - Vagrant by HashiCorp