PowerNSX / PowerCLI のスクリプトを利用した、
NSX for vSphere ネットワーク環境構成を自動化(というか省力化)してみた様子をお伝えしてみようと思います。
今回は、前回作成したスクリプトで、テナントを作成してみようと思います。
PowerNSX でテナント追加の自動化をしてみる。Part.4
下記のような環境で、テナントっぽく NSX の論理スイッチや VM を作成、削除してみます。
前回の投稿にあるスクリプト ファイルは、すでに配置ずみです。
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 を利用するとネットワーク構成を省力化することができます。
まだ続くかもしれない。