検証中、変なところでハマったりしたときにHyperV ServerというかWindows serverのCoreが苦行過ぎて114514回ゲロを吐きキーボードがゲロまみれになりましたが、おかげで悟りを開けそうです。もう一回やれと言ったら多分忘れてるので覚えているうちに書き残します。
Microsoft Clustering Serviceを利用するにはADが必要なので、Linux上でのSamba4の構築を含みます。
また、Clustering Shared Volume(CSV)を利用するのにiSCSIボリュームがいるので、targetもインストールします。使い慣れているだけなので、他にiSCSI TargetがあればそちらでOKです。
設定手順
必要な物のダウンロード
HyperV Serverのダウンロード
https://www.microsoft.com/ja-jp/evalcenter/evaluate-hyper-v-server-2016
MSアカウントでよしなに登録してダウンロードします。
Microsoft Remote Server Administration Tools (RSAT)のダウンロード
HyperV manager、Failover Cluster Manager、AD Managerなど、諸々の管理にGUIが使いたい人向けです。このツールをインストールするマシンは、このあとにSamba4で作成するMSCSと同じドメインに所属している必要があります。Windows serverがあれば、機能の追加から追加可能です。
参考:https://wiki.samba.org/index.php/Installing_RSAT
Samba4のセットアップ
Debian8をベースに行います。検証環境は下記で行いました。
root@debian:~# lsb_release -a No LSB modules are available. Distributor ID: Debian Description: Debian GNU/Linux 8.6 (jessie) Release: 8.6 Codename: jessie
apt-getでSamba4と取り巻きをインストール
以下のコマンドでインストールしていきます。
root@debian:~# apt-get install samba winbind krb5-user
samba-tool domain provision でドメインを作っていく
を参照してsamba-tool domain provision を行い、よしなに内容を入力する
root@debian:~# samba-tool domain provision --use-rfc2307 ※入力時の内容が流れてしまったので正確ではない Realm [dev.lan]: dev.lan Domain [dev]: dev Server Role (dc, member, standalone) [dc]: dc DNS backend (SAMBA_INTERNAL, BIND9_FLATFILE, BIND9_DLZ, NONE) [SAMBA_INTERNAL]: SAMBA_INTERNAL DNS forwarder IP address (write 'none' to disable forwarding) [10.99.0.1]: 8.8.8.8 Administrator password: Passw0rd Retype password: Passw0rd
出来上がった内容がこちら
root@debian:~# cat /etc/samba/smb.conf # Global parameters [global] workgroup = DEV realm = DEV.LAN netbios name = DEBIAN server role = active directory domain controller dns forwarder = 8.8.8.8 idmap_ldb:use rfc2307 = yes [netlogon] path = /var/lib/samba/sysvol/dev.lan/scripts read only = No [sysvol] path = /var/lib/samba/sysvol read only = No
hostsとresolv.confの編集
root@debian:~# vi /etc/resolv.conf domain dev.lan ※今回作成したRealm名を追記 nameserver 8.8.8.8 nameserver 8.8.4.4 root@debian:~# vi /etc/hosts 127.0.0.1 localhost 127.0.1.1 debian 192.168.1.111 dev.lan dev ※自分のローカルアドレスとロングホスト、ショートホストを追記
SAMBA_INTERNALなDNSが動いているか確認
自分に対してnslookupなどを行い、DNSが動いているか確認します。
※53番でリッスンしているか確認 root@debian:~# netstat -nap|grep :53 tcp 0 0 0.0.0.0:53 0.0.0.0:* LISTEN 924/samba tcp6 0 0 :::53 :::* LISTEN 924/samba udp 0 0 0.0.0.0:53 0.0.0.0:* 924/samba udp6 0 0 :::53 :::* 924/samba ※自分に対してクエリを投げる root@debian:~# nslookup debian.dev.lan localhost Server: localhost Address: ::1#53 Name: debian.dev.lan Address: 192.168.1.111 ←帰ってくればOK
クライアントPCをADに参加させてみる
HyperV Serverを参加させる前に、GUIからADの設定をするため、クライアントPCをドメインに参加させ、動くか確認します。
DNSをSambaに向ける
DNSサーバに今回作成したADを指定します
その後、Windows8以降であればWin+X→Yでシステムを表示させ、システムの詳細設定→システムのプロパティ→コンピュータ名→変更 から、PC名の変更(任意)とドメインに今回作成したドメインを指定します。
その後、ようこそと表示されたらOKです。再起動後、今回作成したドメイン\Administratorでログインできるか確認します。
ADのユーザなどが取得できるか確認してみる
RSATをインストールしたら、「Active Directoryユーザとコンピュータ」を起動します。紛らわしいですが、「Active Directory管理センター」の方ではないので注意してください。
その後、Computersあたりを開き、今回接続したマシンが追加されていることを確認してください。(下記スクショはこの手順と書いているときが前後しているので参考です。)
HyperV Serverの初期セットアップ
まずはインストールします。特に迷うことはないと思います。
Optional:USBにvhdxファイルを置いてそこから起動する
http://terrytlslau.tls1.cc/2014/01/installing-hyper-v-server-2012-r2-to.html
↑非常にわかりやすく、かつ2016でも使えました。
インストールが完了後、下記を実行します。
- sconfig(青い画面の窓) で9を選択し、日付を合わせる
※サーバ、クライアント、仮想ホストで日付と時間があっていないと色々こける - 2を選択しPC名を変更する
- 再起動
- 8を選択し、DNSにADを向ける。必要に応じてIPも固定する。
- 1を選択し、ADに参加する。セットアップ用のアカウントをきかれたらdomain\administratorを入力し、Samba4のセットアップの時に入れたパスワードを入れる
- 再起動
- 7を選択し、リモデを有効にする
- sconfigの後ろにあるコマンドプロンプトにpowershellとうちこみ、Powershellを立ち上げる
- Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False をPowershellから実行し、FWを無効化
※netshからやる場合、 netsh advfirewall set allprofiles state off でも同様
Hyper-V Managerで接続してみる
ここまで来ると、取りあえず単体のHyper-V Managerから接続できるようになるはずです。
RSATを入れたマシンに、「ドメインのユーザ」でログイン
RSATを入れたマシンに、RDP等からログインします。この際に、ログインするアカウントはAdministratorsにいるdomain\userを指定してください。
特に作っていなければdomain\administratorでログインします。
Hyper-V Managerを起動
ADマネージャのあるフォルダにHyper-V Managerがあるので、それを起動します。
起動後、右ペインからサーバに接続をクリックし、「別のコンピュータ」から上記でセットアップしたマシンのホスト名を入れます。
正しく設定されていれば、ログインしているアカウントの認証情報を利用して接続できるはずです。
つづく
Related articles