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

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

$
0
0

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

今回は前回作成したテナント環境(論理スイッチや VM など)の様子を、

PowerCLI と PowerNSX をくみあわせて確認しておきます。

 

前回はこちら。

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

 

テナント環境の確認。

作成した論理スイッチ「ls-tenant-04」です。

Object ID は「virtualwire-222」になりました。

PowerNSX> Get-NsxTransportZone tz01 | Get-NsxLogicalSwitch -Name ls-tenant-04 | fl name,objectId

 

 

name     : ls-tenant-04

objectId : virtualwire-222

 

 

論理スイッチのバッキングの分散ポートグループが、

「vxw-dvs-36-virtualwire-222-sid-10005-ls-tenant-04」だとわかります。

※Transport Zone は 1つなので省略しています。

PowerNSX> Get-NsxLogicalSwitch -Name ls-tenant-04 | select -ExpandProperty vdsContextWithBacking

 

 

switch          : switch

mtu             : 1600

promiscuousMode : false

backingType     : portgroup

backingValue    : dvportgroup-412

missingOnVc     : false

 

 

PowerNSX> Get-NsxLogicalSwitch -Name ls-tenant-04 | Get-NsxBackingPortGroup | fl VDSwitch,Name,Id

 

 

VDSwitch : vds02

Name     : vxw-dvs-36-virtualwire-222-sid-10005-ls-tenant-04

Id       : DistributedVirtualPortgroup-dvportgroup-412

 

 

バッキングの分散ポートグループも存在しています。

PowerNSX> Get-VDPortgroup | where {$_.Name -eq "vxw-dvs-36-virtualwire-222-sid-10005-ls-tenant-04"} | select Id

 

 

Id

--

DistributedVirtualPortgroup-dvportgroup-412

 

 

DLR インスタンスと、論理スイッチ(virtualwire-222)の接続されたインターフェースを見てみます。

PowerNSX> Get-NsxLogicalRouter -objectId edge-5 | Get-NsxLogicalRouterInterface | where {$_.connectedToId -eq "virtualwire-222"}

 

 

label           : 27110000000d

name            : if-tenant-04

addressGroups   : addressGroups

mtu             : 1500

type            : internal

isConnected     : true

isSharedNetwork : false

index           : 13

connectedToId   : virtualwire-222

connectedToName : ls-tenant-04

logicalRouterId : edge-5

 

 

インターフェースに「10.1.40.1/24」が設定されたこともわかります。

PowerNSX> Get-NsxLogicalRouter -objectId edge-5 | Get-NsxLogicalRouterInterface | where {$_.connectedToId -eq "virtualwire-222"} | select -ExpandProperty addressGroups | select -ExpandProperty addressGroup | fl

 

primaryAddress     : 10.1.40.1

subnetMask         : 255.255.255.0

subnetPrefixLength : 24

 

 

PowerNSX での情報取得は XmlElement で階層が深く、この先「select -ExpandProperty」が多くなります。

かわりに、下記のように Format-XML によって XML で出力することもできたりします。

PowerNSX> Get-NsxLogicalRouter -objectId edge-5 | Get-NsxLogicalRouterInterface | where {$_.connectedToId -eq "virtualwire-222"} | select -ExpandProperty addressGroups | Format-XML

<addressGroups>

  <addressGroup>

    <primaryAddress>10.1.40.1</primaryAddress>

    <subnetMask>255.255.255.0</subnetMask>

    <subnetPrefixLength>24</subnetPrefixLength>

  </addressGroup>

</addressGroups>

PowerNSX>

 

ESG に作成した、SNAT ルールです。

10.1.40.0/24 のソース アドレスが、192.168.1.144 に変換されます。

PowerNSX> Get-NsxEdge -objectId edge-1 | Get-NsxEdgeNat | Get-NsxEdgeNatRule | where {$_.originalAddress -eq "10.1.40.0/24"}

 

ruleId                      : 196611

ruleTag                     : 196611

ruleType                    : user

action                      : snat

vnic                        : 0

originalAddress             : 10.1.40.0/24

translatedAddress           : 192.168.1.144

snatMatchDestinationAddress : any

loggingEnabled              : false

enabled                     : true

protocol                    : any

originalPort                : any

translatedPort              : any

snatMatchDestinationPort    : any

edgeId                      : edge-1

 

 

作成した DFW ルールを見てみます。

ルールは「dfw-section-04」セクションに作成しました。

ルールが2つあることがわかります。

PowerNSX> Get-NsxFirewallSection -Name dfw-section-04

 

 

id               : 1009

name             : dfw-section-04

generationNumber : 1499213132983

timestamp        : 1499213132983

type             : LAYER3

rule             : {allow any to t04 http, allow jbox to t04 ssh}

 

 

2つとも、許可(action: allow)ルールです。

PowerNSX> Get-NsxFirewallSection -Name dfw-section-04 | select -ExpandProperty rule

 

 

id            : 1105

disabled      : false

logged        : false

name          : allow any to t04 http

action        : allow

appliedToList : appliedToList

sectionId     : 1009

destinations  : destinations

services      : services

direction     : inout

packetType    : any

 

id            : 1104

disabled      : false

logged        : false

name          : allow jbox to t04 ssh

action        : allow

appliedToList : appliedToList

sectionId     : 1009

sources       : sources

destinations  : destinations

services      : services

direction     : inout

packetType    : any

 

 

ルールの通信元 / 通信先 も確認できます。

踏み台から論理スイッチへの SSH を許可するルール(RuleId: 1104)は下記のようになっています。

PowerNSX> Get-NsxFirewallRule -RuleId 1104 | Get-NsxFirewallRuleMember

 

 

RuleId     : 1104

SectionId  : 1009

MemberType : Source

Name       :

Value      : 192.168.1.223

Type       : Ipv4Address

isValid    : true

 

RuleId     : 1104

SectionId  : 1009

MemberType : Destination

Name       : ls-tenant-04

Value      : virtualwire-222

Type       : VirtualWire

isValid    : true

 

 

ルール ID 1104 のサービスは、SSH です。

PowerNSX> Get-NsxFirewallRule -RuleId 1104 | select -ExpandProperty services | select -ExpandProperty service | fl

 

 

name    : SSH

value   : application-368

type    : Application

isValid : true

 

 

任意の場所から論理スイッチへの HTTP を許可するルール(RuleId: 1105)は

通信元はなく、通信先(Destination)だけ指定されています。

PowerNSX> Get-NsxFirewallRule -RuleId 1105 | Get-NsxFirewallRuleMember

 

 

RuleId     : 1105

SectionId  : 1009

MemberType : Destination

Name       : ls-tenant-04

Value      : virtualwire-222

Type       : VirtualWire

isValid    : true

 

 

ルール ID 1105 のサービスは、HTTP です。

PowerNSX> Get-NsxFirewallRule -RuleId 1105 | select -ExpandProperty services | select -ExpandProperty service | fl

 

 

name    : HTTP

value   : application-253

type    : Application

isValid : true

 

 

作成した VM の確認。

VM の情報は、主に PowerCLI で確認しています。

作成した VM「vm41」は、指定したデータストア「ds_nfs_lab02」に配置されています。

PowerNSX> Get-VM vm41 | fl Name,PowerState,GuestId,@{N="Datastore";E={$_|Get-Datastore}}

 

 

Name       : vm41

PowerState : PoweredOn

GuestId    : other3xLinux64Guest

Datastore  : ds_nfs_lab02

 

 

vNIC には、論理スイッチのバッキングポートグループが設定されています。

PowerNSX> Get-VM vm41 | Get-NetworkAdapter | fl Parent,Name,NetworkName,@{N="Connected";E={$_.ConnectionState.Connected}}

 

 

Parent      : vm41

Name        : Network adapter 1

NetworkName : vxw-dvs-36-virtualwire-222-sid-10005-ls-tenant-04

Connected   : True

 

 

vm41 のゲスト OS の情報です。
VMware Tools(Photon OS なので open-vm-tools)がインストールされた状態です。

PowerNSX> (Get-VM vm41 | Get-VMGuest).ExtensionData | select HostName,GuestState,ToolsStatus,IpAddress,GuestFullName

 

 

HostName      : vm41

GuestState    : running

ToolsStatus   : toolsOk

IpAddress     : 10.1.40.101

GuestFullName : Other 3.x or later Linux (64-bit)

 

 

ゲスト OS には、アドレス「10.1.40.101」が設定できています。

PowerNSX> (Get-VM vm41 | Get-VMGuest).ExtensionData.Net.IpConfig | select -ExpandProperty IpAddress | select IpAddress,PrefixLength

 

 

IpAddress                PrefixLength

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

10.1.40.101                        24

fe80::250:56ff:feaf:d89a           64

 

 

デフォルトゲートウェイ も設定できています。

PowerNSX> (Get-VM vm41 | Get-VMGuest).ExtensionData.IpStack | select -ExpandProperty IpRouteConfig | select -ExpandProperty IpRoute | where {$_.Network -eq "0.0.0.0"} | select @{N="Gateway";E={$_.Gateway.IpAddress}}

 

 

Gateway

-------

10.1.40.1

 

 

論理スイッチに、作成した VM が接続されていることもわかります。

PowerNSX> Get-NsxLogicalSwitch -Name ls-tenant-04 | Get-NsxBackingPortGroup | Get-VM

 

 

 

Name                 PowerState Num CPUs MemoryGB

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

vm41                 PoweredOn  1        2.000

 

 

 

つづく。

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


Viewing all articles
Browse latest Browse all 3135

Trending Articles



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