bash on Ubuntu on Windows で Virtual box と Vagrant を扱う件

スポンサーリンク

bash on Ubuntu on WindowsってBoWって略すんですね

Windowsに「Bash on Ubuntu」がやってきてしばらく経ちますが。

個人的には非常に便利に使わせてもらっています。

Wgetしたりとか、サーバーにSSH接続するとか、nslookupしたり、whoisしてみたり。

と、Windowsを操作している時にふと「ちょっと確認」的な操作が簡単に出来るので重宝しています。

普通にPythonも使えるし、やろうと思えばだいたいのことは出来てしまいます。Windowsでも出来ることはあると思いますが…。慣れてる操作で完了できるのは非常にストレスフリーです。

ただ欠点はWindows側で作成したディレクトリやファイルを bash on Ubuntu 側で扱えないこと。

これだけが不便なのですが、bash on Ubuntu で Virtualbox と Vagrant を扱う際にもこれに近い問題が出てきます。

bash on Ubuntu で Virtualbox と Vagrant を扱う手順

今回の操作の手順は…。

  • Virtualbox をインストールする
  • Vagrant をインストールする
  • Vagrant へubuntu16.04 を設定する
  • SSHで接続する

といった感じでやってみたいと思います。

Virrualboxをインストールする

こちらは、Virtualboxの公式サイトからアプリを落としてきます。

Windowsでの作業ですので、Windows版をダウンロードします。

大きくバージョン5.2と表記されていますが、注意点が1つ。

このあと、Vagrantもダウンロードするわけですが、Virtualboxのバージョンによっては対応していないことも。

念のため、Vagrantのvirtualboxへの対応状況を確認しておくと、つい先日Virtualbox5.2にVagrant2.0.1から対応しています。それまでの2.0.0では対応していませんでした。

※こちら2017年12月29日の情報です。

バージョンの変わり目では未対応ということがあるので要注意。

Vargrantをインストール

こちらも最新版を落としますが、念のためバージョンに注意。Virtualboxにあったバージョンを選択します。

おそらくですが、Vagrantは最新で良いかと思います。バージョンを古いのをあえて使うのはVittualbox側かと。

それぞれダウンロードして、インストールが完了したら準備OK。

上記アプリケーションがダウンロードできたら、準備完了です。

ここから bash on Ubuntu on Windows の作業になります。

BoWでVirtualboxとvagrantを扱う上でちょっと工夫が必要なのが、Vagrantの作業フォルダ。通常 Ubuntuなどで利用するのであれば、

~/vargrant

なんてディレクトリを作って利用したりするものですが…。

これをBoW配下でUbuntuと同じように準備してしまうと、エラーになります。

Bow配下というのは、いわゆる bash on ubuntu のルート配下。

パスで言うと「~/」。これは、windows上から見ると

「C:\Users\(windowsのユーザーネーム)\AppData\Local\lxss\home\(BoWのユーザーネーム)」

と言った風になります。

ここにWindows側からアプローチしても駄目よ。ということなります。そもそもVirtualboxも、Vagrantも「Windowsアプリ」としてインストールしているのでそもそもBoW配下でその作業ファイルを作成してしまうのも変なのかな(そもそもUbuntuやMacOSならそんなこと気にしなくても良いところですが)。

ということで、BoWながら、Widonws側のパスを意識した作業が必要になります。

まず、Vagrantの作業ファイルの場所ですが「Cドライブ配下」に作成します。もちろんBoWもそうなんですけどね…。

とりあえず、Windows のドキュメントフォルダにでも作ってみます。

$ cd /mnt/c/Users/(ユーザー名)/Documents/
$ mkdir vagrant
$ cd vagrant
$ vagrant.exe bento/ubuntu-16.04

とすると、以下のような文章が表示されます。

A `Vagrantfile` has been placed in this directory. You are now ready to `vagrant up` your first virtual environment! Please read the comments in the Vagrantfile as well as documentation on `vagrantup.com` for more information on using Vagrant.

この表示がでてきたらOK。

ls コマンドで確認すると「Vagrantfile」が出来ていると思います。

では、Vagrantを起動します。

$vagratn.exe up

です。忘れてはいけないのは、.exe が必要なこと。あくまでVagrantはWindowsのアプリですので。

そして、/mnt/c から出てはいけないということです。

ルートに戻ってしまうとそこはあくまで「BoWの世界」。Windowsの世界は「/mnt/c」にしかありません。

vagrant.exe up がうまく動くと

Bringing machine 'default' up with 'virtualbox' provider...
==> default: Box 'bento/ubuntu-16.04' could not be found. Attempting to find and install...
default: Box Provider: virtualbox default: Box Version: >= 0 
==> default: Loading metadata for box 'bento/ubuntu-16.04'
default: URL: https://vagrantcloud.com/bento/ubuntu-16.04
==> default: Adding box 'bento/ubuntu-16.04' (v201710.25.0) for provider: virtualbox
default: Downloading: https://vagrantcloud.com/bento/boxes/ubuntu-16.04/versions/201710.25.0/providers/virtualbox.box
default: Progress: 14% (Rate: 349k/s, Estimated time remaining: 0:15:18)

と、vagrantが動き出します。しばらく時間がかかるみたいなので待ちます。

ダウンロードが完了すると処理が走ります。

完了しても特に何の反応もありません。ただ、仮想環境はアップされているので、確認してみます。

sshで接続するので、接続に必要な情報を取得。

$ vagrant.exe ssh-config

を実行して確認してみます。表示は以下のような感じになります。
IdentityFileで設定したパスはいかにファイルが作成されていることも確認できます。

Host default
HostName 127.0.0.1
User vagrant
Port 2222
UserKnownHostsFile /dev/null
StrictHostKeyChecking no
PasswordAuthentication no
IdentityFile C:/Users/(ユーザー名)/Documents/vagrant/.vagrant/machines/default/virtualbox/private_key
IdentitiesOnly yes
LogLevel FATAL  

ssh 接続ですが、Winodwsでは Tera Term などがターミナルエミュレーターとしては定番かと思いますが、今回はせっかく bash on ubuntu を使っているのでそのままsshを使って接続します。

vagrant の接続に必要なID・PASSはどちらも「vagrant」になります。

ssh -p 2222 vagrant@127.0.0.1

にて実行。ログインできると、

省略...
Welcome to Ubuntu 16.04.3 LTS (GNU/Linux 4.4.0-87-generic x86_64) 
省略...

といった表示が出てくると思います。表示も以下のようになていれば問題ないかと。

vagrant@vagrant:~$

これでBoW、bash on ubuntu on windows から Vagrant を扱えるようになりました。

実践 Vagrant
  • Mitchell Hashimoto
  • 価格   ¥ 2,808
  • 販売者 Amazon.co.jp
クリックして今すぐチェック
スポンサーリンク

シェアする

フォローする

スポンサーリンク