Quantcast
Channel: VMware Communities : Blog List - All Communities
Viewing all articles
Browse latest Browse all 3135

PowerNSX でテナント追加の自動化をしてみる。Part.1

$
0
0

PowerNSX を使用して、NSX for vSphere へのテナント追加の自動化をしてみようと思います。

とはいっても、現行の NSX にマルチテナント化の機能がるわけではないので、

既に構築済みの DLR + VXLAN 環境に、新規の論理スイッチと VM をテナントっぽく追加してみます。

 

今回は、DLR とそれより上位のネットワークは構成ずみである想定とします。

下記のような、シンプルなネットワーク環境を使用しています。

NSX Edge のスタティック ルート設定を PowerNSX で見てみる。

 

今回のテナント追加の流れ。

ネットワークを作成してから、VM を作成してネットワークに接続します。

作成した VM は、テナント ネットワークのIP アドレスが設定された状態になる想定です。

 

テナント ネットワークを作成。

  • 1. 論理スイッチを作成。
  • 2. 論理スイッチを DLR に接続。
  • 3. ESG に SNAT ルール追加。
  • 4. DFW の許可ルールを作成。

 

VM を作成してテナント ネットワークに接続。

  • 5. テンプレートから VM を作成。
  • 6. VM を論理スイッチに接続。

 

下記のようなイメージで、追加テナント(赤枠の中の部分)を作成します。

powernsx-automation-img.png

まずは、PowerNSX を対話的に実行してテナントをひととおり作成してみます。

あらかじめ、Connect-NsxServer で NSX 環境に接続しておきます。

PowerNSX での NSX への接続方法について。

PowerNSX> Connect-NsxServer -vCenterServer <vCenter のアドレス>

 

1. 論理スイッチを作成。

テナント ネットワークとして利用する論理スイッチ「ls-tenant-04」を作成します。

今回の環境の Transport Zone は、「tz01」という名前です。

PowerNSX> $tz = Get-NsxTransportZone -name tz01

PowerNSX> $ls = New-NsxLogicalSwitch -TransportZone $tz -Name ls-tenant-04

PowerNSX> $ls | select Name,objectId

 

 

name         objectId

----         --------

ls-tenant-04 virtualwire-222

 

 

2. 論理スイッチを DLR に接続。

作成した論理スイッチを、DLR インスタンス(今回は edge-5)に接続します。

テナントのゲートウェイとなる IP アドレス(今回は 10.1.40.1)も設定します。

PowerNSX> Get-NsxLogicalRouter -objectId edge-5 | New-NsxLogicalRouterInterface -Type internal -PrimaryAddress 10.1.40.1 -SubnetPrefixLength 24 -ConnectedTo $ls -Name if-tenant-04

 

3. ESG に SNAT ルール追加。

Edge Service Gateway(ESG)に、テナントで使用するネットワークに対応したSNAT ルールを追加します。

  • ESG のアップリンクのアドレスは 192.168.1.144 です。
  • テナントで使用するネットワーク アドレス 10.1.40.0/24 としました。

 

ESG での SNAT の利用については下記もどうぞ

NSX ESG の SNAT 設定の様子。

 

PowerNSX> Get-NsxEdge -objectId edge-1 | Get-NsxEdgeNat | New-NsxEdgeNatRule -Vnic 0 -action snat -OriginalAddress "10.1.40.0/24" -TranslatedAddress 192.168.1.144

 

4. DFW の許可ルールを作成。

分散ファイアウォール(DFW)に、今回は下記のように通信許可ルールを追加します。

  • デフォルトのままでは、通信が拒否されるようにしてあります。
    別テナントからは、許可ルールを入れていないので、つながらない状態のままになります。
  • テナント向けに、DFW ルールのセクション(dfw-section-04)を作成します。
  • 踏み台サーバ(192.168.1.223)からテナントへの SSH を許可します。
  • 任意のネットワーク(Any)からテナントへの HTTP も許可します。

 

DFW のルールは、VM 追加ごとに変更しなくてよいように、適用先を論理スイッチにしてあります。

また今回は簡易的な環境構築なので、ちょっとルールが微妙なところもあるかもしれません。

PowerNSX> $dfw_section = New-NsxFirewallSection -Name dfw-section-04

PowerNSX> $svc = Get-NsxService -Name SSH | where {$_.isUniversal -eq $false}

PowerNSX> $dfw_section | New-NsxFirewallRule -Name "allow jbox to t04 ssh"   -Action allow -Source 192.168.1.223 -Destination $ls -Service $svc -AppliedTo $ls

PowerNSX> $svc = Get-NsxService -Name HTTP | where {$_.isUniversal -eq $false}

PowerNSX> $dfw_section | New-NsxFirewallRule -Name "allow any to t04 http" -Action allow -Destination $ls -Service $svc -AppliedTo $ls

 

5. テンプレートから VM を作成。

あらかじめ用意しておいた VM テンプレートから、VM を作成します。

VM 作成(クローン)するときに、IP アドレスなどの設定もしています。

ちなみに VM は、Photon OS 1.0 rev-2 の OVA を利用しています。

 

まず、カスタマイズ仕様を作成します。

PowerNSX> New-OSCustomizationSpec -Name spec-vm41 -OSType Linux -DnsServer 10.1.1.1 -Domain go-lab.jp

PowerNSX> Get-OSCustomizationSpec -Name spec-vm41 | Get-OSCustomizationNicMapping | Set-OSCustomizationNicMapping -IpMode UseStaticIP -IpAddress 10.1.40.101 -SubnetMask 255.255.255.0 -DefaultGateway 10.1.40.1

 

そしてカスタマイズ仕様を指定して、VM を作成します。

クローンが終了した直後に、カスタマイズ仕様 は削除しています。

PowerNSX> $spac = Get-OSCustomizationSpec -Name spec-vm41

PowerNSX> Get-Template -Name photon-1.0-rev2 | New-VM -Name vm41 -ResourcePool nsx-cluster-01 -Datastore ds_nfs_lab02 -OSCustomizationSpec $spec
PowerNSX> $spec | Remove-OSCustomizationSpec -Confirm:$false

 

6. VM を論理スイッチに接続。

VM のクローンが完了したら、vNIC を論理スイッチに接続します。

 

New-VM でバッキングの分散ポートグループを指定することも可能ですが、

今回はあえて Connect-NsxLogicalSwitch を使用しました。

PowerNSX> Get-VM vm41 | Get-NetworkAdapter -Name "Network adapter 1" | Connect-NsxLogicalSwitch $ls

 

VM を起動すると、論理スイッチに接続された状態になります。

PowerNSX> Start-VM vm41

 

IP アドレスが設定された状態で、ネットーワークに接続されます。

PowerNSX> Get-VM vm41 | Get-VMGuest | select VM,State,IPAddress,OSFullName

 

 

VM     State IPAddress                               OSFullName

--     ----- ---------                               ----------

vm41 Running {10.1.40.101, fe80::250:56ff:feaf:d89a} Other 3.x or later Linux (64-bit)

 

 

つづく・・・

PowerNSX でテナント追加の自動化をしてみる。Part.2


Viewing all articles
Browse latest Browse all 3135

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>