NSX Edge ロードバランサ(LB)を NSX API で設定変更してみます。
前回の投稿は、こちらをどうぞ。
NSX Edge LB の API 操作を体験してみる。Part 1(はじめに)
手順について。
今回は、NSX API で One-Arm LB として使用する NSX Edge をデプロイします。
- API で指定するオブジェクト ID の確認
- NSX Edge のデプロイ
初期状態では、NSX Edge が2台だけデプロイされていて、
今回は 3台目の NSX Edge をデプロイします。
1. API で指定するオブジェクト ID の確認
NSX Edge を API でデプロイするときに、Web Client では 名前で指定していた vCenter インベントリのオブジェクトを、
ID で指定する必要があります。
色々な確認方法がありますが、今回は PowerCLI で簡易的に確認します。
まず、PowerCLI を起動して、vCenter に接続します。
PowerCLI> Connect-VIServer -Server vcsa-01a -User CORP\Administrator -Password VMware1!
それぞれ、ID を確認しておきます。
データセンター: Datacenter Site A
PowerCLI> Get-Datacenter "Datacenter Site A" | ft -AutoSize Name,Id
リソースプール(クラスタ): Management & Edge Cluster
PowerCLI> Get-Cluster "Management & Edge Cluster" | ft -AutoSize Name,Id
ホスト: esx-04a.corp.local
PowerCLI> Get-VMHost "esx-04a.corp.local" | ft -AutoSize Name,Id
データストア: ds-site-a-nfs01
PowerCLI> Get-Datastore "ds-site-a-nfs01" | ft -AutoSize Name,Id
フォルダ: Edges
PowerCLI> Get-Folder "Edges" | ft -AutoSize Name,Id
論理スイッチの ID は、NSX API で確認します。
論理スイッチ: Web_Tier_01
curl -k -s -u admin:VMware1! -X GET https://192.168.110.15/api/2.0/vdn/virtualwires | xmllint --xpath '//virtualWire[name="Web_Tier_01"]/objectId' - | more
2. NSX Edge のデプロイ
「OneArm-LoadBalancer」 という名前で、Edge Service Gataway をデプロイします。
NSX Edge の設定
- 名前: OneArm-LoadBalancer
- HA: 設定なし
- データセンター: Datacenter Site A → datacenter-21
- Edge の制御レベルログ(ログレベル): 緊急
Appliance 配置パラメータ
- Appliance のサイズ: コンパクト
- リソースプール: Management & Edge Cluster → datacenter-21
- ホスト: esx-04a.corp.local → host-46
- データストア: ds-site-a-nfs01 → datastore-29
- フォルダ: Edges → group-v261
CLI の設定
- ユーザ名: admin
- パスワード: VMware1!VMware1!
- SSH アクセス(remoteAccess): 無効
インターフェースの設定
- vNIC 番号: 0
- 名前: WebNetwork
- タイプ: 内部
- 接続先: 論理スイッチ「Web_Tier_01」 → virtualwire-2
- IP アドレス: 172.16.10.10
- サブネットの接頭辞の長さ: 24
- 接続ステータス: 接続中
ルーティングの設定
- デフォルトゲートウェイ IP の構成: 172.16.10.1
これらの設定を指定した XML ファイル(edge-onearm-lb-deploy.txt)を作成します。
cat <<EOF > edge-onearm-lb-deploy.txt
<edge>
<datacenterMoid>datacenter-21</datacenterMoid>
<name>OneArm-LoadBalancer</name>
<vseLogLevel>emergency</vseLogLevel>
<appliances>
<applianceSize>compact</applianceSize>
<appliance>
<resourcePoolId>domain-c41</resourcePoolId>
<datastoreId>datastore-29</datastoreId>
<hostId>host-46</hostId>
<vmFolderId>group-v261</vmFolderId>
</appliance>
</appliances>
<vnics>
<vnic>
<index>0</index>
<name>WebNetwork</name>
<type>internal</type>
<portgroupId>virtualwire-2</portgroupId>
<addressGroups>
<addressGroup>
<primaryAddress>172.16.10.10</primaryAddress>
<subnetMask>255.255.255.0</subnetMask>
</addressGroup>
</addressGroups>
<mtu>1500</mtu>
<enableProxyArp>false</enableProxyArp>
<enableSendRedirects>false</enableSendRedirects>
<isConnected>true</isConnected>
</vnic>
</vnics>
<cliSettings>
<userName>admin</userName>
<password>VMware1!VMware1!</password>
<remoteAccess>false</remoteAccess>
</cliSettings>
<features>
<routing>
<staticRouting>
<defaultRoute>
<vnic>0</vnic>
<mtu>1500</mtu>
<gatewayAddress>172.16.10.1</gatewayAddress>
<adminDistance>0</adminDistance>
</defaultRoute>
</staticRouting>
</routing>
</features>
</edge>
EOF
XML ファイルを読み込んで、API で NSX Edge をデプロイします。
cat edge-onearm-lb-deploy.txt | curl -k -s -u admin:VMware1! -X POST -H 'Content-type: text/xml' -d @- https://192.168.110.15/api/4.0/edges
NSX Edge 「OneArm-LoadBalancer」が、今回は edge-5 としてデプロイされました。
デプロイ直後は NSX Edge ファイアウォールの設定が Deny になっています。
ラボのシナリオとは異なるので、デフォルトのファイアウォールルールの設定を変更します。
- デフォルト トラフィックポリシー: 承諾(Accept)
- ログ:無効化
XML ファイル(edgefw-default.txt)を作成します。
cat <<EOF > edgefw-default.txt
<firewallDefaultPolicy>
<action>accept</action>
<loggingEnabled>false</loggingEnabled>
</firewallDefaultPolicy>
EOF
XML ファイルを読み込んで、API で設定変更します。
cat edgefw-default.txt | curl -k -s -u admin:VMware1! -X PUT -H 'Content-type: text/xml' -d @- https://192.168.110.15/api/4.0/edges/edge-5/firewall/config/defaultpolicy
設定変更されました。
つづく。