« 嫁と格安SIM − mineoの場合 − (その9) | トップページ | WSL及びUbuntuのインストール手順を再整理しておく(2018年版) »

2018.02.27

SSHクライアントからWSLまたはHyper-Vで稼働するUbuntuを使ってみる

Windows 10もFall Creators Updateが出てしばらく経ちましたが、Bash on Ubuntu on WindowsはWindow Subsystem for Linuxと名称を変え、ストア版が提供されるようになりました。今後はこちらが本流になるようですね。

当面は、従前のbash.exeとストア版が共存するようですが、これを機会にストア版Ubuntuをインストールしてみました。
Ubuntu以外のディストリビューションがサポートされたこともあってか、A Guide to Invoking WSL: Windows Command Line Tools For Developersにあるとおり、WSL起動方法がこれまでのbash.exe以外に提供されるようになりました。

また、Windows 10 Insider Preview Build 17046では、WSLの新機能としてLinuxのdaemonを含むバックグラウンドプロセスのサポートされ、かなり使い勝手が向上しました。

そこで、先日Windows 10上のHyper-VでUbuntuを動かしてネットワーク設定(NAT)を行うで触れたとおり、Hyper-V上で動作するUbuntu環境を構築しましたが、これを機会に、WSLとHyper-Vとで稼働するUbuntuを、WSLコマンドやSSHクライアントから利用する、といったことを試してみました。
WSLでは、bash.exe(コンソール)を起動することなく、daemonサービスを利用することもできるようになりましたので、こちらも試してみました。

試した環境は、
エディション Windows 10 Pro Insider Preview
バージョン  1709
OSビルド   1704.1002
です。

ストア版Ubuntuのインストールには特段問題は生じないと思います。インストール方法はWebサイトを探せば見つかるのでここでは割愛します。

Hyper-Vは管理画面を使わなくても、PowerShell(管理者)からVMの状態表示や起動、停止等の操作が可能です。
2018021204

予め、ここで稼働しているUbuntu環境ではSSHを有効にしておきます。

また、WSL基盤上で稼働するLinux(ここではUbuntu)も、PowerShell(管理者としてのPowerShellは必要なし)から起動できます。
つまり、bash.exe(コンソール)を起動することなく、daemonサービスを実行できるということ。ここでは、デーモン起動用Shellと停止用Shellをwslコマンドから実行した例を示します。
2018022501

ここでデーモン起動用Shellと停止用Shellのサンプルはこちら。
デーモン起動用Shell startService.sh


#!/bin/bash

service mysql start
service apache2 start
service ssh start

デーモン停止用Shell stopService.sh


#!/bin/bash

service mysql stop
service apache2 stop
service ssh stop

※ 以下のサンプルを実行するだけなら、mysqlの行は必要ありません。


こうすることで、Hyper-VとWSLの各々に対してSSHログインを行うことができます。
2018021203

もし、Windows 10上のHyper-VでUbuntuを動かしてネットワーク設定(NAT)を行うの最後に掲載したポートフォーワーディングしている方は、ここではこの設定を削除した状態で説明していますのでご注意下さい。この記事にしたがって設定した場合、WSLはlocalhost、Hyper-Vは192.168.1.11に対してPuTTYによるSSHログインを行いました。

試しに、WSLとHyper-Vを稼働しているマシンからWebサービスを参照してみます。

Hyper-Vの結果は次のとおり。
2018021202

WSLの結果は次のとおり。
2018021201

以上のとおり、サービス起動してSSHログインすることで、WSLコンソールやHyper-Vの管理画面を使用することなくテストや管理を実施することができます。

(おまけ)
Hyper-Vで稼働するUbuntuの共有フォルダの作り方を以下に示します。
VMPlayerなどでは、最初からフォルダ共有サービスが用意されていますが、Hyper-VのLinuxではsambaの設定を行えば同様のことはできます。

/etc/samba/smb.confに設定する、homeディレクトリの共有設定例は以下のとおり。


[homes]
comment = Home Directories
browseable = no

# By default, the home directories are exported read-only. Change the
# next parameter to 'no' if you want to be able to write to them.
read only = no

# File creation mask is set to 0700 for security reasons. If you want to
# create files with group=rw permissions, set next parameter to 0775.
create mask = 0700

# Directory creation mask is set to 0700 for security reasons. If you want to
# create dirs. with group=rw permissions, set next parameter to 0775.
directory mask = 0700

共有ディレクトリの共有設定例は以下のとおり。


[SharedFolder]
comment = Share Directory
path = /var/share
writable = yes
guest ok = yes
guest only = yes
create mode = 0777
directory mode = 0777

|

« 嫁と格安SIM − mineoの場合 − (その9) | トップページ | WSL及びUbuntuのインストール手順を再整理しておく(2018年版) »

パソコン・インターネット」カテゴリの記事

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.f.cocolog-nifty.com/t/trackback/1024423/72902641

この記事へのトラックバック一覧です: SSHクライアントからWSLまたはHyper-Vで稼働するUbuntuを使ってみる:

« 嫁と格安SIM − mineoの場合 − (その9) | トップページ | WSL及びUbuntuのインストール手順を再整理しておく(2018年版) »