VMware Global Community
pcislotnumber
Contributor
Contributor

【VMware vSphere 7 (ESXi)】NICを4つ持つVMのIPアドレスの割り当て順序についてご教示ください

powercliを使用してテンプレートからVMを作成するツールの開発を行っているのですが、OS側のNICに割り振られるIPアドレスが意図した順序に設定されず壁にぶち当たっております。以下に詳細を記載しておりますので、原因や解決策についてアドバイスを頂きたく何卒宜しくお願い致します。


【実現したいこと】
処理フローは下記の流れとなります。ネットワークアダプタを4つ持つテンプレート(RHEL8)を準備し、3)でVMに設定したいNW関連の設定情報を配列に格納後、5)のデプロイで配列に格納されている順にifcfg-ethXXが設定されるようにしたい。
(配列[0] → ifcfg-eth0、配列[1] → ifcfg-eth1、配列[2] → ifcfg-eth2、配列[3] → ifcfg-eth3)

・1 )OSスペックシート(OSCustomizationSpec)を新規作成する
CustomizationSpec = New-OSCustomizationSpec -Name $CustomName -Domain "localhost" -OSType $OSType

・2 )デフォルトのNIC設定削除
NICMapping = Get-OSCustomizationNicMapping -OSCustomizationSpec $CustomName | where { $_.Position -eq 1 }
Remove-OSCustomizationNicMapping -OSCustomizationNicMapping $NICMapping -Confirm:$false

・3 )NWの事前設定
$Ipaddresses = $Ipaddress1,$Ipaddress2,$Ipaddress3,$Ipaddress4
$Subnetmasks = $Subnetmask1,$Subnetmask2,$Subnetmask3,$Subnetmask4
$Gateways = $Gateway1,$Gateway2,$Gateway3,$Gateway4

・4 )OSスペックシート内にOSのNW設定
for ($i = 1; $i -le 4; $i++) {
   if ($IpAddresses[$i-1] -ne ""){
     New-OScustomizationNicMapping -OSCustomizationSpec $CustomName -Position $i -IpMode UseStaticIP -IpAddress $Ipaddresses[$i-1] -SubnetMask $SubnetMasks[$i-1] -DefaultGateway $Gateways[$i-1]
  }}

・5 )VMデプロイ
NEW-VM -Name $VMName -Template $Template -VMHost $VMHost -Datastore $Datastore -OSCustomizationSpec CustomName -Notes $Notes


その他、VM側のNIC(ネットワークアダプター)とOS側のNICの紐づけを以下としたいため、テンプレートのciSlotNumberを下記のように変更しています。

<紐づけ>
 ネットワークアダプター1 → ifcfg-eth0
 ネットワークアダプター2 → ifcfg-eth1
 ネットワークアダプター3 → ifcfg-eth2
 ネットワークアダプター4 → ifcfg-eth3

<pciSlotNumber>
 scsi0.pciSlotNumber    → 160
 ethernet0.pciSlotNumber → 1184
 ethernet1.pciSlotNumber  → 192
 ethernet2.pciSlotNumber → 224
 ethernet3.pciSlotNumber → 256


【状況】
意図した通りの順序でIPアドレスがNICに割り振られない。何度実施しても下記の紐づけで設定されてしまいます。

 配列[0] - ifcfg-eth1
 配列[1] - ifcfg-eth2
 配列[2] - ifcfg-eth3
 配列[3] - ifcfg-eth0

因みにVM側のNICとOS側のNICの紐づけは問題なくできております。(MACアドレスで判断)
OSCustomizationSpecに設定されるNicMappingが上手くいっていないのかと思い確認しましたが、下記の通り問題なく設定されていることも確認してます。.

Get-OSCustomizationNicMapping -OSCustomizationSpec VM名

  Position IPMode IPAddress DefaultGateway
  -------- ------ --------- --------------
   1 UseStaticIP 配列[0] 配列[0]
  2 UseStaticIP 配列[1] 配列[1]
  3 UseStaticIP 配列[2] 配列[2]
  4 UseStaticIP 配列[3] 配列[3]

試しにテンプレートに設定するネットワークアダプターを4つ→3つに変更し、上記 3)、4)で配列に格納するNW関連の設定情報も4つ→3つにしてデプロイすると意図した通りの順序でIPアドレスがNICに振られます。
 配列[0] - ifcfg-eth0
 配列[1] - ifcfg-eth1
 配列[2] - ifcfg-eth2

 

【検証環境】
・ホストはnucを使用しており直接ESXiをインストールしております。
・ESXiのバージョンはVMware vSphere 7.0となります。
・VcenterはVMware vCenter Server 7を使用しています。

Reply
0 Kudos
0 Replies