vCenter Server ApplianceをIPアドレスで接続できるようにデプロイする
目次
概要
みんな大好きVMware vCenter Server Appliance(vCSA)ですが、とあるバージョンからSSOが導入されて、内部DNS(内部じゃなくても良いですが、自システム向けのゾーンを持つDNSサーバ)が無いとデプロイができなくなりました。DNSサーバが無いまま無理矢理デプロイして、デプロイに失敗するという経験もあるかもしれません。
デプロイがなんとか完了しても、今度は管理WebUI(vSphere Client)に繋ぐときに、IPアドレスで繋いだはずなのにFQDNにリダイレクトされるとか、不便に感じたことがあるかもしれません。
FQDNにリダイレクトされるのは大体の場合、VMware Single Sign-On(SSO)で認証を行うために(SAML認証の仕組み上)リダイレクトが必要で、そのリダイレクト先がFQDNで指定されていたりするためです。
このFQDNへのリダイレクトによって、環境によっては以下の様な不具合が生じることがあります。
- クライアントがFQDNを名前解決できない場合、リダイレクト先に接続できない
- 例えば、VPNやSSHトンネル(ポートフォワード)経由のクライアント
この記事では以下の様なシナリオを想定して、IPアドレスだけでvCenterを利用できるようなデプロイ方法を考えます。
- ESXiまで構築済
- これからvCSAをデプロイする
- 内部用DNSサーバがない(もしくは利用したくない)
- FQDNへのリダイレクトをさせたくない
想定環境
- VMware ESXi 6.7U1
- VMware vCenter Server Appliance 6.7U1b
- 作業クライアントPC(Windows 10)
デプロイ手順
vCSAのデプロイ(インストーラー ステージ1)
まずはインストーラーのステップ1として、vCSAをデプロイ進めていきます。
デプロイにあたり必要なIPアドレスは、以下の通り設定するものとします。
項目 | 値 | 備考 |
---|---|---|
デプロイ先ESXiのIPアドレス | 10.1.0.100/24 | |
vCSAのIPアドレス | 10.1.0.202/24 | |
デフォルトゲートウェイ | 10.1.0.1 | |
キャッシュDNSサーバ | 10.1.0.1 | 外部名の解決に用いるDNSサーバ ※なお今回の検証時は実際にはDNSサーバは存在しない |
- vCSAのisoファイルをクライアントPCにマウントし、GUIインストーラーを起動します。
- 使用許諾契約書に同意します。
- 次へ進みます。
- 組み込みPlatform Services Controllerを選択します。
- デプロイ先のESXiの情報を入力します。
- 証明書の警告が表示された場合は次へ進みます。
- デプロイするvCSAの情報を設定します。
- デプロイサイズを環境に合わせて設定します。
- デプロイ先のデータストアを選択します。
- 【重要】vCSAのネットワーク設定をします。
ここで必ずFQDN欄にIPアドレスを入力します。
- ここまでの内容を確認し、問題なければ完了を選択します。
- デプロイが始まります。
- デプロイが終わると、このような画面になります。
以上でステップ1は終わりです。
vCSA内のDNSサーバ(dnsmasq)の設定
本来であればインストーラーに従って、ステップ2の設定を進めるわけですが、今回は「内部用DNSサーバを利用しない」ため、ちょっとトリッキーなことをします。
vCSAにはdnsmasqという簡易DNSサーバが標準で導入・動作しているので、これに少し手を加えることとします。
dnsmasqは/etc/hosts
ファイルをゾーンファイルとしてDNSのレコードを管理する事ができるので気軽に利用できます。
dnsmasqを内部DNSサーバの代わりとして、インストーラーが無事に処理を完了出来るようにするわけです。
ここではインストーラーを一度離れ、ESXiからデプロイされたvCSAのコンソールを触っていきます。
vCSAのコンソールは英語キーボードとなっていることに注意して下さい。
- ESXiへログインします。
- 今回デプロイしたvCSAの情報を表示します。(ここでは「VMware vCenter Server Appliance 3」)
- コンソールを開きます。
- コンソールが開くと以下の様にvCSAのメインUIが表示されます。
Alt
+→
(またはAlt
+F3
)を押下することで、Linuxのログイン画面に切り替えます。
- インストーラーで設定したvCSAのrootアカウントでログインすると以下の様に表示されます。
shell
と入力しbashを起動します。
/etc/dnsmasq.conf
を編集します。
- 以下の行を編集します。
行 編集内容 目的 no-hosts
コメントアウト
(#を先頭に追加)/etc/hostsファイルを参照させる no-resolv
行追加 /etc/resolv.confファイルを参照させない bogus-priv
行追加 プライベートIPアドレスの逆引きを上位DNSへ転送しない server=//10.1.0.1
行追加 上位DNSサーバを指定
(ここでは外部DNSの10.1.0.1を指定)
試していないのですが、ここで上位DNSサーバを指定しておくと、プライベートIP以外の逆引き以外の逆引きや、/etc/hostsに含まれない正引きができる様になるはず。 - 次に
/etc/hosts
を編集します。
- vCSAのIPアドレスを引けるようにします。
- dnsmasqをリスタートします。
- 念のため
nslookup
で逆引きできることを確認しておきます。
vCSAの設定(インストーラー ステージ2)
ここからは、インストーラーに戻って続きを進めます。
- この状態で終わっていたインストーラーに戻って続行します。
- 次へ進みます。
- 必要に応じてSSHを有効にして次へ進みます。(ここでは無効のままとします)
- SSOのドメインを新規で作ります。(ここではドメイン名を
vsphere.local
とします)
- 必要に応じてCEIPを無効にして次へ進みます。
- ここまでの内容を確認し、問題が無ければ完了を選択します。
- 警告画面でOKを選択します。
- セットアップが始まります。
- 10分くらいすると、無事セットアップが終わります。(環境によりますが30分以上かかるようであれば、何かに失敗していてエラー終了となる可能性があります)
- セットアップ完了画面の下のリンクを開いても名前解決できないので、手打ちでvCSA用に割り当てたIPアドレスに接続します。(ここでは、https://10.1.0.202/)
- 証明書エラーが表示されます(ブラウザによって表示は変わります)が、無視して続行します。
- 管理UIの選択画面が表示されますので、HTML5版を開きます。
- ログイン画面が表示されます。
- SSOの管理者アカウント(administrator@vsphere.local)でログインします。(SSOドメイン名は、ここではvsphere.local)
- 管理UIが表示されます。
無事にデプロイが完了し、管理画面にアクセスすることができました。
おわりに
ポイントとしては
- vCSAのデプロイではFQDNの代わりにIPアドレスを入力できる
- vCSAの中に含まれるdnsmasqを使って内部DNSサーバを偽装する
の2点でした。
良いvCenterライフを!
有益な情報をありがとうございます。
去年の記事ではありますが気づいたことを。
ステージ2 の 4 の v”ps”here.local は 14 と合わせるなら v”sp”here.local ですよね。
記事を参考にしていただきありがとうございます。
誤植の指摘について早速ですが修正しました!
ご報告いただきありがとうございます。