2018年7月30日月曜日

Windows Server 2016でDHCPサーバーを構築する

Windows ServerはDHCPサーバーの機能がある。今回Windows Server 2016で設定してみたので、その手順を記載する。

環境

・DHCPサーバー:Windows Server 2016
・DHCPクライアント:CentOS

DHCPサーバー構成手順

1. 役割を追加する

サーバーマネージャーより、「管理」→「役割と機能の追加」を選択する。


役割の選択画面にて、「DHCPサーバー」を選択する。必要な管理ツールのインストールも促されるので、デフォルトのままウィザードを進める。


最終的に以下の画面で、DCHPサーバーのインストールに成功する。


2. DHCPサーバーの初期設定

サーバーマネージャーの左上の旗印を選択すると、「展開後構成」という警告が表示されるので、「DHCP構成を完了する」の文字を選択する。


ウィザードが開始される。「承認」とは、DHCPサーバーの役割を追加したサーバーがドメインのメンバーサーバーの場合必要となる処理となる。Domain Admins権限を持つユーザーを利用したところ、問題なく承認処理を行うことができた。


ウィザードの最後に設定が問題なく完了した旨が表示される。


3. スコープの設定

DHCPサーバーを起動し、実際に割り当てを行うIPアドレスの範囲や、デフォルトゲートウェイ・DNSの設定などを行う。

サーバーマネージャーから「DHCP」を選択する。


左ツリーから「DHCP」→「サーバー名」→「IPv4」を右クリックし、「新しいスコープ」を選択する。


ウィザードが開始される。スコープ名は任意で設定する。名前は後から変更することもできる。


DHCPサーバーが割り当てるIPアドレスの範囲を指定する。今回は第4オクテットが210-220までの範囲の割り当てを行うように構成した。


除外と遅延の設定となる。除外は特定の機器がすでに利用しているIP等、DHCPによる割り当てを行わないIPアドレスの設定となる。

遅延設定は、簡単に言えば、IPアドレスの割り当て応答を少し遅らせてクライアントに返す機能となる。同一ネットワークに複数台のDHCPなどがある場合、DHCPクライアントは先に応答 (DHCP OFFER) があったIPアドレスを優先するため、DHCPサーバーの冗長化を行う際などに利用できる。


リース期間は、一度割り当てたIPアドレスをどの程度保持するかを決定する設定となる。デフォルトは8日間と長いので、1日程度に変更しておくとよいだろう。


4. スコープの設定 (オプション)

引き続き、デフォルトゲートウェイやDNSを設定するため、「今すぐオプションを構成する」を選択する。


DHCPで割り当てるデフォルトゲートウェイを設定する。


DHCPで割り当てるDNSサーバーを設定する。なお、デフォルトでサーバーに設定されているドメインやDNSサーバーが入力されている。


DHCPで割り当てるWINSサーバーを設定する。なお、デフォルトでサーバーに設定されているWINSサーバーが入力されている。
※今回はWINSサーバーの設定はされていないので空白になっている


最後に設定を有効にするため、「今すぐアクティブにする」を選択して終了となる。


動作確認

実際にCentOSのサーバーを起動させてみると、DHCPサーバーにてIPアドレスが割り当てされていることが確認できた。


以下はCentOS側でのIPアドレス確認結果。ens192のインターフェースにDHCPサーバーより割り当てされたIPアドレスが設定されていることがわかる。


2018年7月23日月曜日

ESXi 6.0をESXi 6.7にアップグレードしようとしたら、RealtekのNICドライバーが競合してエラーとなった話

自宅の検証環境では、vSphere Clientで操作できることから、ESXi 6.0をあえて利用してきた。しかし、先日vSphere 6.7が発表されたことを受け、そろそろ最新版のESXiにバージョンアップしてみることにした。

結果的には先日別記事に記載したRealtekのNICドライバーが原因にて、アップグレードには失敗してしまったが、ESXi 6.7をインストールして、再設定をすることで利用できるようにはなったので、簡単に実施した手順についてまとめておく。

実施手順

1. ESXiのカスタムイメージでブート

ESXi 6.7のISOイメージを入手し起動するのだが、今回は別記事で記載したRealtekのNICドライバーが組み込まれたカスタムイメージを利用する。

★別記事はこちら↓
RealtekのNICのドライバーを組み込んだESXi 6.7のカスタムイメージを作成する
https://tech-mmmm.blogspot.com/2018/05/realteknicesxi-67.html

ISOイメージでブートすると以下のような画面が表示されるので、そのままエンターキーを押す。


インストール画面が表示されるまでしばらく待つ。なお、画面取得のため、今回はESXi on ESXiでバージョンアップ検証を実施している。この際に、ESXiの要件として、以下を満たしていない場合、インストールができないので注意しよう。

・CPU:2コア以上
・メモリ:4GB以上


たとえば、メモリが4GBより小さい場合は、パープルスクリーンにてエラーとなり、「Not enough main memory is available to continue.」と表示される。


2. インストール開始

インストールが開始されるので、エンターキーを押す。


3. EULAに同意

EULAが表示されるので、F11キーを押す。


4. インストール先ディスクを選択

インストール先ディスクを選ぶことができるので、容量やデバイス名をもとに、インストールディスクを判別して選択し、エンターキーを押す。当たり前だが、インストール先ディスクを間違えると、最悪ディスクの中の仮想マシンデータまで消えるので注意すること。


5. インストール方式を選択

選択したディスクが、もともとESXiがインストールされている場合、インストール方法の選択画面となる。選択肢は以下3つとなる。

・Upgrade ESXi, preserve VMFS datastore:アップグレード(VMFSのデータは消さない)
・Install ESXi, preserve VMFS datastore:新規インストール(VMFSのデータは消さない)
・Install ESXi, overwrite VMFS datastore:新規インストール(VMFSのデータを消す)

今回はアップグレードが目的となるため、Upgrade ESXiを選択し、エンターキーを押してみた。


すると、残念ながらエラーとなり、先に進めなくなる。どうやら、net55-r8168とnet51のドライバーが競合しているようなメッセージのようだ。


そこで1つ前の画面に戻り、2つめのInstall ESXi, preserve VMFS datastoreを選択すると、問題なく先に進むことができた。ただし、ESXiの設定はすべて消えてしまうため、ネットワークや仮想マシンの登録、NFSやiSCSの設定などを再設定する必要があるため注意となる。


6. インストールの最終確認

あとは、言語やrootのパスワードを設定したのち、最終確認画面が表示される。問題なければF11キーを押せばよい。


インストールが開始する。容量が小さいので数分で完了するはずである。


7. インストール完了

インストール完了画面が表示されたら、エンターキーを押して、再起動を行う。


8. ESXi起動

再起動後、問題なければ以下のような画面が表示されるはずである。


9. インストール後初期設定

以降の手順の詳細は割愛するが、以下のような手順で進めればよい。

・管理ネットワークのIPアドレスやホスト名を設定
・VMware Host Clientに接続


・Host Clientにて、ネットワークの設定を実施。この際に、もともと使用していたネットワークラベル名で再設定を行う
・Host Clientにて、データストアブラウザを開き、「.vmx」ファイルを右クリックして、「仮想マシンの登録」する。これにより仮想マシンが登録され起動できるようになる。また、事前にネットワークラベルを正しく再作成しておけば、特にNICの設定変更等は不要で、そのまま仮想マシンを起動できるはずである

以上で結果的にESXi 6.0をESXi 6.7にアップグレードすることができた。途中で発生したRealtekのNICドライバーの競合が発生しないような場合では、もともとインストールされていたESXiの設定引き継がれるはずなので、手順がもっとシンプルになるはずだ。

2018年7月17日火曜日

ESXi 6.7に同梱されているVMware Tools 10.2.0に不具合があるので、10.2.5に入れ替えた件

ESXi 6.7に同梱されているVMware Toolsは、バージョン 10.2.0となるが、以下KBに不具合情報が掲載されており、利用が非推奨となっている。

Ports are exhausted on Guest VM after a few days when using VMware Tools 10.2.0 (54459)
https://kb.vmware.com/s/article/54459

どうやら、VMware Toolsがサーバーのポートを食いつぶし、最終的に仮想マシンが通信ができなくなるという、なかなか影響の大きい不具合のようだ。

解決策は、
  1. VMware Toolsのバージョンアップ
  2. 「VMware CAF Management Agent service」の停止
のどちらかとなるが、今回「1」の対応を行うことにした。

VMware Tools 10.2.5はダウロードできる最新が10.2.5のようなので、そちらを利用する。リリースノートにも今回の不具合修正の記載があるので、引用しておく。

VMware Tools 10.2.5 リリース ノート
https://docs.vmware.com/jp/VMware-Tools/10.2/rn/vmware-tools-1025-release-notes.html#resolvedissues
・VMware Tools 10.2.0 を使用した後に、ゲスト仮想マシンのポートが枯渇する
VMware Tools 10.2.0 を使用した後に、ゲスト仮想マシンのポートが枯渇するその結果、ネットワーク接続の障害が発生します。
今回のリリースで、この問題は解決されています。

変更手順

それではESXi 6.7のVMware Tools入れ替え手順を記載していこう。

1. VMware Tools 10.2.5をダウンロード

以下URLからVMware Toolsをダウンロードする。

ダウンロード VMware Tools 10.2.5
https://my.vmware.com/jp/web/vmware/details?downloadGroup=VMTOOLS1025&productId=352

ダウンロードは一番上のzip圧縮版を選んでおけば問題ない。なお、ダウンロードにはMy VMwareのアカウントが必要なので注意。



問題なければ、以下ファイルがダウンロードできるはずだ。

VMware-Tools-core-10.2.5-8068406.zip


2. ファイルをアップロード

データストアブラウザなどを使って、ダウンロードしたzipをアップロードする。今回は、ssd_local_01という名前のデータストア直下にアップロードした。

3. zipファイルを展開

ここからはESXiにsshで接続しての作業となる。

vmtoolsというディレクトリを作成し、その中にunzipコマンドでVMware Toolsのファイルを解凍する。

[root@t3011esxi:~] mkdir /vmfs/volumes/ssd_local_01/vmtools
[root@t3011esxi:~] unzip /vmfs/volumes/ssd_local_01/VMware-Tools-core-10.2.5-8068406.zip -d /vmfs/volumes/ssd_local_01/vmtools/
------------------------------
Archive:  /vmfs/volumes/ssd_local_01/VMware-Tools-core-10.2.5-8068406.zip
   creating: floppies/
  inflating: floppies/pvscsi-Windows2008.flp
  inflating: floppies/pvscsi-Windows8.flp
  inflating: floppies/pvscsi-WindowsVista.flp
   creating: vmtools/
  inflating: vmtools/buildNumber.txt
  inflating: vmtools/linux.iso.sig
  inflating: vmtools/windows.iso
  inflating: vmtools/isoimages_manifest.txt.sig
  inflating: vmtools/linux_avr_manifest.txt
  inflating: vmtools/linux.iso
  inflating: vmtools/windows_avr_manifest.txt
  inflating: vmtools/windows.iso.sha
  inflating: vmtools/windows_avr_manifest.txt.sig
  inflating: vmtools/linux_avr_manifest.txt.sig
  inflating: vmtools/windows.iso.sig
  inflating: vmtools/isoimages_manifest.txt
  inflating: vmtools/linux.iso.sha
  inflating: vmtools/version.txt
------------------------------

解凍に成功すると、floppiesとvmtoolsという2つのディレクトリが作成されるはずだ。

[root@t3011esxi:~] ls -l /vmfs/volumes/ssd_local_01/vmtools/
------------------------------
drwxr-xr-x    1 root     root           700 Jul 14 13:16 floppies
drwxr-xr-x    1 root     root          2240 Jul 14 13:16 vmtools
------------------------------

4. 旧VMware Toolsファイルをバックアップ

ESXiが参照するVMware Toolsのファイルは、/vmimages配下となる。

[root@t3011esxi:~] ls -l /vmimages/
------------------------------
lrwxrwxrwx   1 root root  23 Apr  3 21:31 floppies -> /productLocker/floppies
lrwxrwxrwx   1 root root  22 Apr  3 21:31 tools-isoimages -> /productLocker/vmtools
------------------------------

/vmimages配下にはfloppiesとtools-isoimagesという2つのシンボリックリンクがあり、実態は/productLockerにあることがわかる。したがって、/productLockerのファイルを先ほど展開したzipファイルで上書きすればよい。

[root@t3011esxi:~] ls -l /productLocker/
------------------------------
drwxr-xr-x    1 root     root             8 May 25 20:50 floppies
drwxr-xr-x    1 root     root             8 Jul 13 22:01 vmtools
------------------------------

とはいえ、上書きすると消えてしまうため、念のため旧ファイルのバックアップは取得しておくことを推奨する。今回はtarで固めて、tools-isoimages_bck.tar.gzという名前でデータストア保存した。

[root@t3011esxi:~] cd /productLocker/
[root@t3011esxi:/vmfs/volumes/5b087705-8ff61c5b-8856-80ee73b761f0/packages/vmtoolsRepo] tar zcvf /vmfs/volumes/ssd_local_01/tools-isoimages_bck.tar.gz .
------------------------------
./
./linux.iso.sha
./linux.iso
./linux_avr_manifest.txt
./winPreVista.iso.sha
./windows.iso
./linux.iso.sig
./isoimages_manifest.txt.sig
./winPreVista_avr_manifest.txt
./winPreVista.iso
./winPreVista_avr_manifest.txt.sig
./linux_avr_manifest.txt.sig
./isoimages_manifest.txt
./winPreVista.iso.sig
./windows_avr_manifest.txt.sig
./windows_avr_manifest.txt
./windows.iso.sig
./windows.iso.sha
------------------------------

5. ファイルをコピーして上書き

cpコマンドで上書きを実施してしまうのが、最も簡単。ただし、上書き確認はされない(-iオプションを入れても確認されない)ので注意すること。

[root@t3011esxi:~] cp -r /vmfs/volumes/ssd_local_01/vmtools/* /productLocker/

コピー後確認をしてみる。日付が更新されているものが上書きされたファイルとなる。

[root@t3011esxi:~] ls -l /productLocker/*
------------------------------
/productLocker/floppies:
total 746
-rwx------    1 root     root        120320 Apr  3 21:50 pvscsi-Windows2003.flp
-rwx------    1 root     root        160256 Jul 14 13:31 pvscsi-Windows2008.flp
-rwx------    1 root     root        163328 Jul 14 13:31 pvscsi-Windows8.flp
-rwx------    1 root     root        160256 Jul 14 13:31 pvscsi-WindowsVista.flp
-rwx------    1 root     root        116736 Apr  3 21:50 pvscsi-WindowsXP.flp
-rwx------    1 root     root         42496 Apr  3 21:50 vmscsi.flp

/productLocker/vmtools:
total 212759
-rwx------    1 root     root             7 Jul 14 13:31 buildNumber.txt
-rwx------    1 root     root          5175 Jul 14 13:31 isoimages_manifest.txt
-rwx------    1 root     root          2122 Jul 14 13:31 isoimages_manifest.txt.sig
-rwx------    1 root     root      57456640 Jul 14 13:31 linux.iso
-rwx------    1 root     root        898272 Jul 14 13:31 linux.iso.sha
-rwx------    1 root     root          2122 Jul 14 13:31 linux.iso.sig
-rwx------    1 root     root          1989 Jul 14 13:31 linux_avr_manifest.txt
-rwx------    1 root     root          2122 Jul 14 13:31 linux_avr_manifest.txt.sig
-rwx------    1 root     root             6 Jul 14 13:31 version.txt
-rwx------    1 root     root      71991296 Apr  3 21:50 winPreVista.iso
-rwx------    1 root     root       1125376 Apr  3 21:50 winPreVista.iso.sha
-rwx------    1 root     root          2122 Apr  3 21:50 winPreVista.iso.sig
-rwx------    1 root     root          1709 Apr  3 21:50 winPreVista_avr_manifest.txt
-rwx------    1 root     root          2122 Apr  3 21:50 winPreVista_avr_manifest.txt.sig
-rwx------    1 root     root      85032960 Jul 14 13:31 windows.iso
-rwx------    1 root     root       1329152 Jul 14 13:31 windows.iso.sha
-rwx------    1 root     root          2122 Jul 14 13:31 windows.iso.sig
-rwx------    1 root     root          1709 Jul 14 13:31 windows_avr_manifest.txt
-rwx------    1 root     root          2122 Jul 14 13:31 windows_avr_manifest.txt.sig
------------------------------

これでVMware Toolsの置き換えは完了となる。ESXiの再起動等は不要で反映されるようだ。

6. 仮想マシンのVMware Toolsをアップグレード

試しに、Windows Server 2008 R2の仮想マシンのVMware Toolsをアップグレードをしてみることにする。操作は、VMware Host Clientにて行う。

仮想マシンの画面を開くと、ESXi上のVMware Toolsのファイルを置き換えたことによって、新しいバージョンのVMware Toolsが利用可能である旨が表示されるようになっている。


仮想マシンの「アクション」→「ゲストOS」→「VMware Toolsのアップグレード」を選択すると、自動でアップグレードされる。

ただし、仮想マシンの種類によってはOS再起動も自動で実施されるので注意する。私の環境ではWindows Server 2008 R2では再起動がされたが、Windows Server 2016では再起動されなかった。


再起動が完了すると、ESXiからも10.2.5でバージョンを認識した。


以上でESXi上のVMware Toolsファイルの置き換え手順は完了となる。

今後ESXi 6.7のパッチ等でVMware Toolsの不具合は修正されるとは思うが、それまでは本手順を参考に新しいバージョンに入れ替えるか、バージョン 10.2.0を利用しないように注意しよう。

参考

ESX/ESXi ホスト上の VMware Tools の ISO イメージが壊れているかどうかを判別する (1004820)
https://kb.vmware.com/s/article/1004820?lang=ja

2018年7月9日月曜日

ESXi Shellのコマンドを使って仮想マシンのパワーオン・パワーオフを行う方法

VMware Host Clientにログインできないが、ESXiのコンソールにはログインできる状況(たとえば、データセンターやマシンルームでの作業)において、仮想マシンのパワーオン・パワーオフを実施したいことが稀にある。

今回はそのような状況を想定して、ESXiのコンソールから仮想マシンを操作する手順について記載する。

ESXi Shellにログインできるようにする

ESXiのコンソール画面は、通常以下のようなグレーと黄色の表示となっているはずである(時間が経つと黒い画面になる)。


「Alt + F1」を押すと、ESXi Shellモードになる。しかし、以下の通り、ログインプロンプトが表示されない。


これは、ESXi Shellが無効化されていることが原因となるため、一度「Alt + F2」キーでESXi Shellから戻り、「F2」キーを押して設定画面にログインする。


設定画面にて、「Troubleshooting Options」を選択する。


「Enable ESXi Shell」を選択する。


ESXi Shellが有効化されると、右側の表示が「ESXi Shell is Enabled」に変わる。


ここで再度、「Alt + F1」を再度押すと、ESXi Shellのログインプロンプトが表示される。


rootでログインしておこう。


ESXi Shellのコマンドで仮想マシンを停止する

①esxcliコマンドを使う

ESXi Shellで仮想マシンを停止する方法はいくつかある。まずはesxcliコマンドを紹介する。こちらの方法は、仮想マシンのプロセスをkillするという方法になるので、仮想マシンから見ると、突然電源をオフにされたことと同義になる。

まず、以下コマンドで起動中の仮想マシン一覧を取得し、停止したい対象仮想マシンの「World ID」を確認しておく。

[root@localhost:~] esxcli vm process list

先ほど確認した「World ID」を引数として、以下コマンドにて仮想マシンの停止を行うことができる。

[root@localhost:~] esxcli vm process kill -t soft -w <World ID>

※オプション
  • -t : 停止方法を指定するオプション。まずは、softを指定し、それでも停止しない場合はhardで再試行するとよいらしい
  • -w : World IDを指定するためのオプション

実行結果は以下の通り。実行前に存在していた仮想マシンのプロセスがなくなっていることがわかる。


②vim-cmdコマンドを使う

次にvim-cmdコマンドを使う方法を紹介する。こちらは、パワーオフ、シャットダウン、再起動、リセットなど、いくつか停止方法を選ぶことができる。

まずは、停止対象の仮想マシンのVmidを確認するため、全仮想マシンの一覧を取得する。

[root@localhost:~] vim-cmd vmsvc/getallvms

次に、停止対象の仮想マシンの状態を確認する。

[root@localhost:~] vim-cmd  vmsvc/power.getstat <Vmid>

以下コマンドでパワーオフを実施する。

[root@localhost:~] vim-cmd  vmsvc/power.off <Vmid>

なお、パワーオフ系のコマンドは以下の通りとなる。
  • パワーオフ : vim-cmd  vmsvc/power.off <Vmid>
  • 再起動 : vim-cmd  vmsvc/power.reboot <Vmid>
  • リセット : vim-cmd  vmsvc/power.reset <Vmid>
  • シャットダウン : vim-cmd  vmsvc/power.shutdown <Vmid>

ESXi Shellのコマンドで仮想マシンを起動する

仮想マシン起動も、vim-cmdコマンドで実施できる。

まずは、起動対象の仮想マシンのVmidを確認するため、全仮想マシンの一覧を取得する。

[root@localhost:~] vim-cmd vmsvc/getallvms

次に、起動対象の仮想マシンの状態を確認する。

[root@localhost:~] vim-cmd  vmsvc/power.getstat <Vmid>

以下コマンドでパワーオンを実施する。

[root@localhost:~] vim-cmd vmsvc/power.on <Vmid>

人気の投稿