PowerNSX / PowerCLI のスクリプトを利用した、

NSX for vSphere ネットワーク環境構成を自動化(というか省力化)してみた様子をお伝えしてみようと思います。

 

今回は、前回作成したスクリプトで、テナントを作成してみようと思います。

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

 

下記のような環境で、テナントっぽく NSX の論理スイッチや VM を作成、削除してみます。

powernsx-auto-5.png

 

前回の投稿にあるスクリプト ファイルは、すでに配置ずみです。

PowerNSX> ls | select Name

 

Name

----

config

add_tenant_nw.ps1

add_tenant_vm.ps1

delete_tenant.ps1

get_tenant_summary.ps1

 

 

PowerNSX> ls .\config | select Name

 

Name

----

nw_tenant-04.ps1

nw_tenant-05.ps1

vm_vm41.ps1

vm_vm42.ps1

vm_vm51.ps1

 

 

vCenter と NSX Manger に接続しておきます。

vCenter を指定して、NSX Manger にも自動接続します。

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

1つめのテナントの作成~削除。

それでは、テナント ネットワークを作成してみます。

PowerNSX> .\add_tenant_nw.ps1 .\config\nw_tenant-04.ps1

Logical Switch: ls-tenant-04 => objectId: virtualwire-235

DLR Interface: if-tenant-04 => index: 13

SNAT Source Address: 10.1.40.0/24 => ruleId 196624

DFW Section: dfw-section-tenant-04 => id 1024

DFW Rule: allow jBox to tenant-ls SSH => id 1129

DFW Rule: allow Any to tenant-ls HTTP => id 1130

VM Folder: tenant-04 => id group-v459

 

続いて、VM を作成してみます。

PowerNSX> .\add_tenant_vm.ps1 .\config\nw_tenant-04.ps1 .\config\vm_vm41.ps1

Create Guest OS Customization Spec: osspec-vm41

Edit Guest OS Customization Spec:

New VM: vm41 => id vm-460

Delete Guest OS Customization Spec: osspec-vm41

Connect vNIC: vm41/Network adapter 1 to ls-tenant-04

Start VM: vm41

 

2台めの VM を作成してみます。

PowerNSX> .\add_tenant_vm.ps1 .\config\nw_tenant-04.ps1 .\config\vm_vm42.ps1

Create Guest OS Customization Spec: osspec-vm42

Edit Guest OS Customization Spec:

New VM: vm42 => id vm-461

Delete Guest OS Customization Spec: osspec-vm42

Connect vNIC: vm42/Network adapter 1 to ls-tenant-04

Start VM: vm42

 

作成したテナントの情報を取得してみます。

論理スイッチ、SNAT ルール、ファイアウォールルールが作成されて、

VM も作成されました。

PowerNSX> .\get_tenant_summary.ps1 .\config\nw_tenant-04.ps1

############################################################

テナント: tenant-04

実行時刻: 2017年7月13日 0:06:22

 

============================================================

Tenant Network

 

name           : ls-tenant-04

objectId       : virtualwire-235

VDSwitch       : vds02

dvPortgroup    : vxw-dvs-36-virtualwire-235-sid-10005-ls-tenant-04

DlrIfIPAddress : 10.1.40.1/24

 

============================================================

ESG SNAT ルール情報

 

translatedAddress : 192.168.1.144

originalAddress   : 10.1.40.0/24

 

============================================================

DFWセクションdfw-section-tenant-04ルール情報

 

id   name                        Src           Dst          Service action appliedTo    logged

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

1130 allow Any to tenant-ls HTTP Any           ls-tenant-04 HTTP    allow  ls-tenant-04 false

1129 allow jBox to tenant-ls SSH 192.168.1.223 ls-tenant-04 SSH     allow  ls-tenant-04 false

 

============================================================

VM / ゲスト ネットワーク情報

 

VM   HostName   State IPAddress      Gateway   GuestFullName

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

vm41 vm41     Running 10.1.40.101/24 10.1.40.1 Other 3.x or later Linux (64-bit)

vm42 vm42     Running 10.1.40.102/24 10.1.40.1 Other 3.x or later Linux (64-bit)

 

PowerNSX>

 

テナントを削除してみます。

PowerNSX> .\delete_tenant.ps1 .\config\nw_tenant-04.ps1

Remove VM

Remove DFW Rule

Remove SNAT Rule

Remove NsxLogical Switch

Remove VM Folder

 

テナントのネットワーク、VM などが消えました。

PowerNSX> .\get_tenant_summary.ps1 .\config\nw_tenant-04.ps1

############################################################

テナント: tenant-04

実行時刻: 2017年7月13日 0:08:36

 

 

 

============================================================

Tenant Network

 

 

 

============================================================

ESG SNAT ルール情報

 

 

 

============================================================

DFWセクションルール情報

 

 

 

============================================================

VM / ゲスト ネットワーク情報

 

 

 

PowerNSX>

 

2つめのテナントの作成。

新たにテナント「tenant-05」を追加してみます。

 

コンフィグを作成します。

ネットワーク構成は下記のようにします。

1つ目のテナントとの差分は、赤字の部分です。

 

ファイル名: nw_tenant-05.ps1

# テナント固有 変数

$tenant_name = "tenant-05"

$gw_addr = "10.1.50.1"

$nw_addr = "10.1.50.0"

$nw_msak_length = 24

 

# 共通 変数

$tz_name = "tz01"

$dlr_id = "edge-5"

$esg_id = "edge-1"

$esg_ext_addr = "192.168.1.144"

$jbox_ip = "192.168.1.223"

 

$dlr_if_name = "if-" + $tenant_name

$dfw_section_name = "dfw-section-" + $tenant_name

$ls_name = "ls-" + $tenant_name

 

VM の構成は下記のようにします。

 

ファイル名: vm_vm51.ps1

# VM 固有 変数

$vm_name = "vm51"

$ip_addr = "10.1.50.101"

$vnic_name = "Network adapter 1"

$template_name = "photon-1.0-rev2"

 

# テナント内共通 変数

$nw_msak = "255.255.255.0"

$tenant_dns = "10.1.1.1"

$domain_name = "go-lab.jp"

$cluster_name = "nsx-cluster-01"

$datastore_name = "ds_nfs_lab02"

 

それでは、2つ目のテナントを作成します。

テナントを作成してみます。

PowerNSX> .\add_tenant_nw.ps1 .\config\nw_tenant-05.ps1

Logical Switch: ls-tenant-05 => objectId: virtualwire-236

DLR Interface: if-tenant-05 => index: 13

SNAT Source Address: 10.1.50.0/24 => ruleId 196625

DFW Section: dfw-section-tenant-05 => id 1025

DFW Rule: allow jBox to tenant-ls SSH => id 1131

DFW Rule: allow Any to tenant-ls HTTP => id 1132

VM Folder: tenant-05 => id group-v463

 

VM を作成してみます。

PowerNSX> .\add_tenant_vm.ps1 .\config\nw_tenant-05.ps1 .\config\vm_vm51.ps1

Create Guest OS Customization Spec:

Edit Guest OS Customization Spec:

New VM: vm51 => id vm-464

Delete Guest OS Customization Spec: osspec-vm51

Connect vNIC: vm51/Network adapter 1 to ls-tenant-05

Start VM: vm51

 

2つめのテナントのネットワークと、1つの VM が作成されています。

PowerNSX> .\get_tenant_summary.ps1 .\config\nw_tenant-05.ps1

############################################################

テナント: tenant-05

実行時刻: 2017年7月13日 0:20:38

 

============================================================

Tenant Network

 

name           : ls-tenant-05

objectId       : virtualwire-236

VDSwitch       : vds02

dvPortgroup    : vxw-dvs-36-virtualwire-236-sid-10005-ls-tenant-05

DlrIfIPAddress : 10.1.50.1/24

 

============================================================

ESG SNAT ルール情報

 

translatedAddress : 192.168.1.144

originalAddress   : 10.1.50.0/24

 

============================================================

DFWセクションdfw-section-tenant-05ルール情報

 

id   name                        Src           Dst          Service action appliedTo    logged

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

1132 allow Any to tenant-ls HTTP Any           ls-tenant-05 HTTP    allow  ls-tenant-05 false

1131 allow jBox to tenant-ls SSH 192.168.1.223 ls-tenant-05 SSH     allow  ls-tenant-05 false

 

============================================================

VM / ゲスト ネットワーク情報

 

VM   HostName   State IPAddress      Gateway   GuestFullName

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

vm51 vm51     Running 10.1.50.101/24 10.1.50.1 Other 3.x or later Linux (64-bit)

 

PowerNSX>

 

NSX は多機能なので環境によって利用する機能も違うと思いますが、

vSphere Web Client の Network and Security 画面からの操作や情報確認は、PowerNSX でも可能です。

このような感じで、PowerNSX を利用するとネットワーク構成を省力化することができます。

 

まだ続くかもしれない。