【VMware VCF】VMware Cloud Foundation Part 05:部署 SDDC 管理域。

之前文章("VMware Cloud Foundation Part 03:准备 Excel 参数表。"和"VMware Cloud Foundation Part 04:准备 ESXi 主机。"),我们已经知道了对于部署一个 VMware Cloud Foundation 来说,需要准备部署参数配置文件以及用于部署管理域的 ESXi 主机,这在前期准备当中确实需要花费大量时间和精力,不过等这一切都准备就绪后,到了真正的实施环节,也许几个小时之内就能完成所有部署上线工作,这就是使用 VMware Cloud Foundation 自动化和标准化 SDDC 解决方案所带来的魅力。

话不多说,下面正式进入主题。

一、Cloud Builder 使用技巧

可能有一些小技巧对于 Cloud Builder 工具的使用能带来帮助。工欲善其事,必先利其器。

1)查看 Log 日志文件

在 Cloud Builder 部署 VCF 管理域过程中,有可能会遇到一些报错或者失败的任务,这时可以查看以下 Cloud Builder 中的 Log 日志文件来检查具体错误的原因。SSH 以 admin 用户登录到 Cloud Builder 并切换到 root 用户,执行以下命令。

tail -f /var/log/vmware/vcf/bringup/vcf-bringup.log
tail -f /var/log/vmware/vcf/bringup/vcf-bringup-debug.log

2)开启 History 历史记录

默认情况下,Cloud Builder 虚拟机的 History 命令历史记录功能是关闭的,如果你想查看之前使用过的命令并向上翻阅历史记录,将会失败。如果想开启 History 功能,可以移除关闭历史记录的配置文件。SSH 以 admin 用户登录到 Cloud Builder 并切换到 root 用户,执行以下命令。

mv /etc/profile.d/disable.history.sh .
history

3)重置 Postgres 数据库

当使用 Cloud Builder 部署完成 VCF 管理域以后,最终会显示如下图所示界面。如果你想继续使用 Cloud Builder 重新部署 VCF 管理域或者部署另外一个 VCF 实例,再去访问 Cloud Builder 时始终会停留在下图所示的界面。

要想再次使用 Cloud Builder,可以重置 Postgres 数据库。SSH 以 admin 用户登录到 Cloud Builder 并切换到 root 用户,执行以下命令。

/usr/pgsql/13/bin/psql -U postgres -d bringup -h localhost

delete from execution;
delete from "Resource";
\q

二、vSAN ESA HCL 自定义文件

当你跟我一样使用了嵌套 ESXi 虚拟机来部署 VMware Cloud Foundation 时,如果你选择使用 vSAN OSA 架构来部署 VCF 管理域,那么在部署的时候不会遇到 HCL 兼容性问题,因为不会去检查 HCL JSON 文件;但是,要是你部署 vSAN ESA 架构,并使用官方的 HCL JSON 文件(https://partnerweb.vmware.com/service/vsan/all.json)的话,那一定会遇到兼容性问题,ESXi host vSAN compatibility validation 检查将会失败(Failed to verify HCL status on ESXi Host vcf-mgmt01-esxi01.mulab.local),如下图所示。

1)生成嵌套 ESXi 主机的自定义 HCL JSON 文件

针对上述这个问题,可以使用 VMware 工程师 William Lam 所制作的 PowerCLI 脚本来生成自定义 HCL JSON 文件进行解决,脚本完整内容如下。很有意思的是,这个方法是不是也可以用于嵌套环境中 vSAN ESA 集群的部署和使用基于映像的 vLCM 生命周期管理所遇到的硬件兼容性问题?!注意,你需要安装 PowerCLI 环境,才能执行以下步骤。

# Author: William Lam
# Description: Dynamically generate custom vSAN ESA HCL JSON file connected to standalone ESXi host

$vmhost = Get-VMHost

$supportedESXiReleases = @("ESXi 8.0 U2")

Write-Host -ForegroundColor Green "`nCollecting SSD information from ESXi host ${vmhost} ... "

$imageManager = Get-View ($Vmhost.ExtensionData.ConfigManager.ImageConfigManager)
$vibs = $imageManager.fetchSoftwarePackages()

$storageDevices = $vmhost.ExtensionData.Config.StorageDevice.scsiTopology.Adapter
$storageAdapters = $vmhost.ExtensionData.Config.StorageDevice.hostBusAdapter
$devices = $vmhost.ExtensionData.Config.StorageDevice.scsiLun
$pciDevices = $vmhost.ExtensionData.Hardware.PciDevice

$ctrResults = @()
$ssdResults = @()
$seen = @{}
foreach ($storageDevice in $storageDevices) {
    $targets = $storageDevice.target
    if($targets -ne $null) {
        foreach ($target in $targets) {
            foreach ($ScsiLun in $target.Lun.ScsiLun) {
                $device = $devices | where {$_.Key -eq $ScsiLun}
                $storageAdapter = $storageAdapters | where {$_.Key -eq $storageDevice.Adapter}
                $pciDevice = $pciDevices | where {$_.Id -eq $storageAdapter.Pci}

                # Convert from Dec to Hex
                $vid = ('{0:x}' -f $pciDevice.VendorId).ToLower()
                $did = ('{0:x}' -f $pciDevice.DeviceId).ToLower()
                $svid = ('{0:x}' -f $pciDevice.SubVendorId).ToLower()
                $ssid = ('{0:x}' -f $pciDevice.SubDeviceId).ToLower()
                $combined = "${vid}:${did}:${svid}:${ssid}"

                if($storageAdapter.Driver -eq "nvme_pcie" -or $storageAdapter.Driver -eq "pvscsi") {
                    switch ($storageAdapter.Driver) {
                        "nvme_pcie" {
                            $controllerType = $storageAdapter.Driver
                            $controllerDriver = ($vibs | where {$_.name -eq "nvme-pcie"}).Version
                        }
                        "pvscsi" {
                            $controllerType = $storageAdapter.Driver
                            $controllerDriver = ($vibs | where {$_.name -eq "pvscsi"}).Version
                        }
                    }

                    $ssdReleases=@{}
                    foreach ($supportedESXiRelease in $supportedESXiReleases) {
                        $tmpObj = [ordered] @{
                            vsanSupport = @( "All Flash:","vSANESA-SingleTier")
                            $controllerType = [ordered] @{
                                $controllerDriver = [ordered] @{
                                    firmwares = @(
                                        [ordered] @{
                                            firmware = $device.Revision
                                            vsanSupport = [ordered] @{
                                                tier = @("AF-Cache", "vSANESA-Singletier")
                                                mode = @("vSAN", "vSAN ESA")
                                            }
                                        }
                                    )
                                    type = "inbox"
                                }
                            }
                        }
                        if(!$ssdReleases[$supportedESXiRelease]) {
                            $ssdReleases.Add($supportedESXiRelease,$tmpObj)
                        }
                    }

                    if($device.DeviceType -eq "disk" -and !$seen[$combined]) {
                        $ssdTmp = [ordered] @{
                            id = [int]$(Get-Random -Minimum 1000 -Maximum 50000).toString()
                            did = $did
                            vid = $vid
                            ssid = $ssid
                            svid = $svid
                            vendor = $device.Vendor
                            model = ($device.Model).trim()
                            devicetype = $device.ApplicationProtocol
                            partnername = $device.Vendor
                            productid = ($device.Model).trim()
                            partnumber = $device.SerialNumber
                            capacity = [Int]((($device.Capacity.BlockSize * $device.Capacity.Block) / 1048576))
                            vcglink = "https://williamlam.com/homelab"
                            releases = $ssdReleases
                            vsanSupport = [ordered] @{
                                mode = @("vSAN", "vSAN ESA")
                                tier = @("vSANESA-Singletier", "AF-Cache")
                            }
                        }

                        $controllerReleases=@{}
                        foreach ($supportedESXiRelease in $supportedESXiReleases) {
                            $tmpObj = [ordered] @{
                                $controllerType = [ordered] @{
                                    $controllerDriver = [ordered] @{
                                        type = "inbox"
                                        queueDepth = $device.QueueDepth
                                        firmwares = @(
                                            [ordered] @{
                                                firmware = $device.Revision
                                                vsanSupport = @( "Hybrid:Pass-Through","All Flash:Pass-Through","vSAN ESA")
                                            }
                                        )
                                    }
                                }
                                vsanSupport = @( "Hybrid:Pass-Through","All Flash:Pass-Through")
                            }
                            if(!$controllerReleases[$supportedESXiRelease]) {
                                $controllerReleases.Add($supportedESXiRelease,$tmpObj)
                            }
                        }

                        $controllerTmp = [ordered] @{
                            id = [int]$(Get-Random -Minimum 1000 -Maximum 50000).toString()
                            releases = $controllerReleases
                        }

                        $ctrResults += $controllerTmp
                        $ssdResults += $ssdTmp
                        $seen[$combined] = "yes"
                    }
                }
            }
        }
    }
}

# Retrieve the latest vSAN HCL jsonUpdatedTime
$results = Invoke-WebRequest -Uri 'https://vsanhealth.vmware.com/products/v1/bundles/lastupdatedtime' -Headers @{'x-vmw-esp-clientid'='vsan-hcl-vcf-2023'}
# Parse out content between '{...}'
$pattern = '\{(.+?)\}'
$matched = ([regex]::Matches($results, $pattern)).Value

if($matched -ne $null) {
    $vsanHclTime = $matched|ConvertFrom-Json
} else {
    Write-Error "Unable to retrieve vSAN HCL jsonUpdatedTime, ensure you have internet connectivity when running this script"
}

$hclObject = [ordered] @{
    timestamp = $vsanHclTime.timestamp
    jsonUpdatedTime = $vsanHclTime.jsonUpdatedTime
    totalCount = $($ssdResults.count + $ctrResults.count)
    supportedReleases = $supportedESXiReleases
    eula = @{}
    data = [ordered] @{
        controller = @($ctrResults)
        ssd = @($ssdResults)
        hdd = @()
    }
}

$dateTimeGenerated = Get-Date -Uformat "%m_%d_%Y_%H_%M_%S"
$outputFileName = "custom_vsan_esa_hcl_${dateTimeGenerated}.json"

Write-Host -ForegroundColor Green "Saving Custom vSAN ESA HCL to ${outputFileName}`n"
$hclObject | ConvertTo-Json -Depth 12 | Out-File -FilePath $outputFileName

运行 Powershell,使用 PowerCLI 命令 Connect-VISserver 连接到嵌套 ESXi 主机,并运行自定义 HCL JSON 文件生成脚本。

生成的自定义 HCL JSON 文件内容如下所示。注意,运行上述脚本需要电脑连接互联网,如果不能连网,则需要手动下载官方的 HCL JSON 文件(https://partnerweb.vmware.com/service/vsan/all.json),然后将 timestamp 和 jsonUpdatedTime 字段的值修改为官方的 HCL JSON 文件中的最新值。

{
    "timestamp":  1721122728,
    "jsonUpdatedTime":  "July 16, 2024, 2:38 AM PDT",
    "totalCount":  2,
    "supportedReleases":  [
                              "ESXi 8.0 U2"
                          ],
    "eula":  {

             },
    "data":  {
                 "controller":  [
                                    {
                                        "id":  33729,
                                        "releases":  {
                                                         "ESXi 8.0 U2":  {
                                                                             "nvme_pcie":  {
                                                                                               "1.2.4.11-1vmw.802.0.0.22380479":  {
                                                                                                                                      "type":  "inbox",
                                                                                                                                      "queueDepth":  510,
                                                                                                                                      "firmwares":  [
                                                                                                                                                        {
                                                                                                                                                            "firmware":  "1.3",
                                                                                                                                                            "vsanSupport":  [
                                                                                                                                                                                "Hybrid:Pass-Through",
                                                                                                                                                                                "All Flash:Pass-Through",
                                                                                                                                                                                "vSAN ESA"
                                                                                                                                                                            ]
                                                                                                                                                        }
                                                                                                                                                    ]
                                                                                                                                  }
                                                                                           },
                                                                             "vsanSupport":  [
                                                                                                 "Hybrid:Pass-Through",
                                                                                                 "All Flash:Pass-Through"
                                                                                             ]
                                                                         }
                                                     }
                                    }
                                ],
                 "ssd":  [
                             {
                                 "id":  25674,
                                 "did":  "7f0",
                                 "vid":  "15ad",
                                 "ssid":  "7f0",
                                 "svid":  "15ad",
                                 "vendor":  "NVMe",
                                 "model":  "VMware Virtual NVMe Disk",
                                 "devicetype":  "NVMe",
                                 "partnername":  "NVMe",
                                 "productid":  "VMware Virtual NVMe Disk",
                                 "partnumber":  "f72c2cf6551ae47e000c2968afc4b0ec",
                                 "capacity":  61440,
                                 "vcglink":  "https://williamlam.com/homelab",
                                 "releases":  {
                                                  "ESXi 8.0 U2":  {
                                                                      "vsanSupport":  [
                                                                                          "All Flash:",
                                                                                          "vSANESA-SingleTier"
                                                                                      ],
                                                                      "nvme_pcie":  {
                                                                                        "1.2.4.11-1vmw.802.0.0.22380479":  {
                                                                                                                               "firmwares":  [
                                                                                                                                                 {
                                                                                                                                                     "firmware":  "1.3",
                                                                                                                                                     "vsanSupport":  {
                                                                                                                                                                         "tier":  [
                                                                                                                                                                                      "AF-Cache",
                                                                                                                                                                                      "vSANESA-Singletier"
                                                                                                                                                                                  ],
                                                                                                                                                                         "mode":  [
                                                                                                                                                                                      "vSAN",
                                                                                                                                                                                      "vSAN ESA"
                                                                                                                                                                                  ]
                                                                                                                                                                     }
                                                                                                                                                 }
                                                                                                                                             ],
                                                                                                                               "type":  "inbox"
                                                                                                                           }
                                                                                    }
                                                                  }
                                              },
                                 "vsanSupport":  {
                                                     "mode":  [
                                                                  "vSAN",
                                                                  "vSAN ESA"
                                                              ],
                                                     "tier":  [
                                                                  "vSANESA-Singletier",
                                                                  "AF-Cache"
                                                              ]
                                                 }
                             }
                         ],
                 "hdd":  [

                         ]
             }
}

2)重新另存为 HCL JSON 文件

很奇怪,不知道为什么上面自动生成的 HCL JSON 文件我这边直接使用有问题,我将生成的 HCL JSON 文件通过记事本打开,然后全部复制到另一个记事本中,再另存为 JSON 文件(如 all.json),最后导入到 Cloud Builder 才验证成功。如果你遇到同样的问题,可以尝试这一操作。

3)上传 HCL JSON 文件到 Cloud Builder

使用上面脚本生成了嵌套 ESXi 主机的自定义 HCL JSON 文件后,需要通过 SFTP 将它上传到 Cloud Builder,同时需要在 Excel 参数表中配置 HCL JSON 文件的路径,后续在部署管理域的时候需要使用。

mv /home/admin/all.json /opt/vmware/bringup/tmp/
chmod 644 /opt/vmware/bringup/tmp/all.json
chown vcf_bringup:vcf /opt/vmware/bringup/tmp/all.json

三、NSX Manager 部署技巧

1)增加 NSX Manager 部署的等待时间

VCF 管理域部署期间,在自动部署和配置 NSX 组件的时候花费的时间最长,如果部署环境的硬件性能不好,可能会持续很长时间,最后甚至会失败。可以调整 Cloud Builder 部署 NSX 组件的等待时间,这样也能在超时之前完成部署过程。SSH 以 admin 用户登录到 Cloud Builder 并切换到 root 用户,执行以下命令。

vim /opt/vmware/bringup/webapps/bringup-app/conf/application.properties

增加下面参数:

nsxt.manager.wait.minutes=100 (或者更长)

重启 Cloud Builder 服务。

systemctl restart vcf-bringup

2)修改 NSX Manager 部署节点的数量

默认情况下,部署 NSX Manager 组件的时候会部署 3 个 NSX Manager 节点并配置完整的 NSX 集群。其实,如果只是测试学习,当部署 VCF 环境的宿主机的资源不是很充足的情况下,可以只部署 1 个 NSX Manager 节点,这样还可以大大降低资源的占用。

通过将 Excel 参数表转换成 JSON 配置文件,然后找到 JSON 文件中关于 NSX 的配置,如下所示。

 "nsxtSpec":
  {
    "nsxtManagerSize": "medium",
    "nsxtManagers": [
      {
          "hostname": "vcf-mgmt01-nsx01a",
          "ip": "192.168.32.67"
      },
      {
          "hostname": "vcf-mgmt01-nsx01b",
          "ip": "192.168.32.68"
      },
      {
          "hostname": "vcf-mgmt01-nsx01c",
          "ip": "192.168.32.69"
      }
    ],
    "rootNsxtManagerPassword": "Vcf5@password",
    "nsxtAdminPassword": "Vcf5@password",
    "nsxtAuditPassword": "Vcf5@password",
    "vip": "192.168.32.66",
    "vipFqdn": "vcf-mgmt01-nsx01",

将另外 2 个 NSX Manager 节点从 JSON 文件中删除,如下所示。这样你就可以只部署 1 个节点了。

  "nsxtSpec":
  {
    "nsxtManagerSize": "medium",
    "nsxtManagers": [
      {
          "hostname": "vcf-mgmt01-nsx01a",
          "ip": "192.168.32.67"
      }
    ],
    "rootNsxtManagerPassword": "Vcf5@password",
    "nsxtAdminPassword": "Vcf5@password",
    "nsxtAuditPassword": "Vcf5@password",
    "vip": "192.168.32.66",
    "vipFqdn": "vcf-mgmt01-nsx01",

3)调整 NSX Manager 默认存储策略

同样的原因,当硬件性能不够时,可以通过调整 vSAN 默认的存储策略,将 FTT 修改为 0,也就是没有任务副本,这样在部署 NSX Manager 组件的时候也可以加快部署,等后续 VCF 管理域部署成功之后,再将 NSX Manager 节点的 vSAN 存储策略调整为 vSAN ESA 默认的存储策略(RAID 5)。注意,这需要在 Cloud Builder 部署 NSX Manager 组件之前登录 vSphere Client 进行调整。

4)修改 NSX Manager 内存预留

同样的原因,当硬件资源不够时,可以将 NSX Manager 节点虚拟机的内存配置中的内存预留修改为"0",也就是不占用分配的全部内存资源。当然这个可根据需要在 VCF 管理域部署成功之后登录 vSphere Client 进行修改。

四、准备 JSON 配置文件

1)Excel 参数表

下面是针对当前环境准备的 Excel 参数表,大家可以有个直观的了解。License 已经过处理。

  • Credentials 参数表
  • Hosts and Networks 参数表
  • Deploy Parameters 参数表

2)JSON 配置文件

后面将使用 JSON 格式的配置文件导入部署,只保留了 1 个 NSX Manager 节点。License 已经过处理。

{
    "subscriptionLicensing": false,
  "skipEsxThumbprintValidation": false,
  "managementPoolName": "vcf-mgmt01-np01",
  "sddcManagerSpec": {
    "secondUserCredentials": {
      "username": "vcf",
      "password": "Vcf5@password"
    },
    "ipAddress": "192.168.32.70",
    "hostname": "vcf-mgmt01-sddc01",
    "rootUserCredentials": {
      "username": "root",
      "password": "Vcf5@password"
    },
    "localUserPassword": "Vcf5@password"
  },
  "sddcId": "vcf-mgmt01",
  "esxLicense": "00000-00000-00000-00000-00000",
  "taskName": "workflowconfig/workflowspec-ems.json",
  "ceipEnabled": false,
  "fipsEnabled": false,
  "ntpServers": ["192.168.32.3"],
  "dnsSpec": {
    "subdomain": "mulab.local",
    "domain": "mulab.local",
    "nameserver": "192.168.32.3"
  },
  "networkSpecs": [
    {
      "networkType": "MANAGEMENT",
      "subnet": "192.168.32.0/24",
      "gateway": "192.168.32.254",
      "vlanId": "0",
      "mtu": "1500",
      "portGroupKey": "vcf-mgmt01-vds01-pg-mgmt",
      "standbyUplinks":[],
      "activeUplinks":[
        "uplink1",
        "uplink2"
      ]
    },
    {
      "networkType": "VMOTION",
      "subnet": "192.168.40.0/24",
      "gateway": "192.168.40.254",
      "vlanId": "40",
      "mtu": "9000",
      "portGroupKey": "vcf-mgmt01-vds01-pg-vmotion",
      "includeIpAddressRanges": [{"endIpAddress": "192.168.40.4", "startIpAddress": "192.168.40.1"}],
      "standbyUplinks":[],
      "activeUplinks":[
        "uplink1",
        "uplink2"
      ]
    },
    {
      "networkType": "VSAN",
      "subnet": "192.168.41.0/24",
      "gateway": "192.168.41.254",
      "vlanId": "41",
      "mtu": "9000",
      "portGroupKey": "vcf-mgmt01-vds02-pg-vsan",
      "includeIpAddressRanges": [{"endIpAddress": "192.168.41.4", "startIpAddress": "192.168.41.1"}],
      "standbyUplinks":[],
      "activeUplinks":[
        "uplink1",
        "uplink2"
      ]
    },
    {
      "networkType": "VM_MANAGEMENT",
      "subnet": "192.168.32.0/24",
      "gateway": "192.168.32.254",
      "vlanId": "0",
      "mtu": "9000",
      "portGroupKey": "vcf-mgmt01-vds01-pg-vm-mgmt",
      "standbyUplinks":[],
      "activeUplinks":[
        "uplink1",
        "uplink2"
      ]
    }
  ],
  "nsxtSpec":
  {
    "nsxtManagerSize": "medium",
    "nsxtManagers": [
      {
          "hostname": "vcf-mgmt01-nsx01a",
          "ip": "192.168.32.67"
      }
    ],
    "rootNsxtManagerPassword": "Vcf5@password",
    "nsxtAdminPassword": "Vcf5@password",
    "nsxtAuditPassword": "Vcf5@password",
    "vip": "192.168.32.66",
    "vipFqdn": "vcf-mgmt01-nsx01",
    "nsxtLicense": "33333-33333-33333-33333-33333",
    "transportVlanId": 42,
    "ipAddressPoolSpec": {
       "name": "vcf-mgmt01-tep01",
       "description": "ESXi Host Overlay TEP IP Pool",
       "subnets":[
          {
             "ipAddressPoolRanges":[
                {
                   "start": "192.168.42.1",
                   "end": "192.168.42.8"
                }
             ],
             "cidr": "192.168.42.0/24",
             "gateway": "192.168.42.254"
          }
       ]
    }
  },
  "vsanSpec": {
      "licenseFile": "11111-11111-11111-11111-11111",
      "vsanDedup": "false",
      "esaConfig": {
        "enabled": true
      },
      "hclFile": "/opt/vmware/bringup/tmp/all.json",
      "datastoreName": "vcf-mgmt01-vsan-esa-datastore01"
  },
  "dvsSpecs": [
    {
      "dvsName": "vcf-mgmt01-vds01",
      "vmnics": [
        "vmnic0",
        "vmnic1"
      ],
      "mtu": 9000,
      "networks":[
        "MANAGEMENT",
        "VMOTION",
        "VM_MANAGEMENT"
      ],
      "niocSpecs":[
        {
          "trafficType":"VSAN",
          "value":"HIGH"
        },
        {
          "trafficType":"VMOTION",
          "value":"LOW"
        },
        {
          "trafficType":"VDP",
          "value":"LOW"
        },
        {
          "trafficType":"VIRTUALMACHINE",
          "value":"HIGH"
        },
        {
          "trafficType":"MANAGEMENT",
          "value":"NORMAL"
        },
        {
          "trafficType":"NFS",
          "value":"LOW"
        },
        {
          "trafficType":"HBR",
          "value":"LOW"
        },
        {
          "trafficType":"FAULTTOLERANCE",
          "value":"LOW"
        },
        {
          "trafficType":"ISCSI",
          "value":"LOW"
        }
      ],
      "nsxtSwitchConfig": {
        "transportZones": [
        {
          "name": "vcf-mgmt01-tz-vlan01",
          "transportType": "VLAN"
        }
        ]
      }
    },
    {
      "dvsName": "vcf-mgmt01-vds02",
      "vmnics": [
        "vmnic2",
        "vmnic3"
      ],
      "mtu": 9000,
      "networks":[
        "VSAN"
      ],
      "nsxtSwitchConfig": {
        "transportZones": [ {
          "name": "vcf-mgmt01-tz-overlay01",
          "transportType": "OVERLAY"
        },
        {
          "name": "vcf-mgmt01-tz-vlan02",
          "transportType": "VLAN"
        }
        ]
      }
    }
  ],
  "clusterSpec":
  {
    "clusterName": "vcf-mgmt01-cluster01",
    "clusterEvcMode": "intel-broadwell",
    "clusterImageEnabled": true,
    "vmFolders": {
      "MANAGEMENT": "vcf-mgmt01-fd-mgmt",
      "NETWORKING": "vcf-mgmt01-fd-nsx",
      "EDGENODES": "vcf-mgmt01-fd-edge"
    }
  },
  "pscSpecs": [
    {
      "adminUserSsoPassword": "Vcf5@password",
      "pscSsoSpec": {
        "ssoDomain": "vsphere.local"
      }
    }
  ],
  "vcenterSpec": {
      "vcenterIp": "192.168.32.65",
      "vcenterHostname": "vcf-mgmt01-vcsa01",
      "licenseFile": "22222-22222-22222-22222-22222",
      "vmSize": "small",
      "storageSize": "",
      "rootVcenterPassword": "Vcf5@password"
  },
  "hostSpecs": [
    {
      "association": "vcf-mgmt01-datacenter01",
      "ipAddressPrivate": {
        "ipAddress": "192.168.32.61"
      },
      "hostname": "vcf-mgmt01-esxi01",
      "credentials": {
        "username": "root",
        "password": "Vcf5@password"
      },
      "sshThumbprint": "SHA256:PYxgi8oEfK3j263pHx3InwL1xjIY1rAYN6pR607NWjc",
      "sslThumbprint": "FF:A2:88:5B:C3:9A:A0:14:CE:ED:6D:F7:CE:5C:55:B6:2B:6D:35:E8:60:AE:79:79:FD:A3:A7:6C:D7:C1:5C:FA",
      "vSwitch": "vSwitch0"
    },
    {
      "association": "vcf-mgmt01-datacenter01",
      "ipAddressPrivate": {
        "ipAddress": "192.168.32.62"
      },
      "hostname": "vcf-mgmt01-esxi02",
      "credentials": {
        "username": "root",
        "password": "Vcf5@password"
      },
      "sshThumbprint": "SHA256:h6HfTvQi/HJxFq48Q4SQH1TevWqNvgEQ1kWARQwpjKw",
      "sslThumbprint": "70:1A:62:4F:B6:A9:A2:E2:AC:6E:4D:28:DE:E5:A8:FE:B1:F3:B0:A0:3F:26:93:86:F1:66:B3:A6:44:50:1F:AE",
      "vSwitch": "vSwitch0"
    },
    {
      "association": "vcf-mgmt01-datacenter01",
      "ipAddressPrivate": {
        "ipAddress": "192.168.32.63"
      },
      "hostname": "vcf-mgmt01-esxi03",
      "credentials": {
        "username": "root",
        "password": "Vcf5@password"
      },
      "sshThumbprint": "SHA256:rniXpvC4JmiXVq7nd+FkjMrX+oTKCM+CgkvglKATgEE",
      "sslThumbprint": "76:84:9E:03:BB:C5:10:FE:72:FC:D3:24:84:71:F5:85:7B:A7:0B:55:7C:7B:0F:BB:83:EA:D7:4F:66:3E:B1:8D",
      "vSwitch": "vSwitch0"
    },
    {
      "association": "vcf-mgmt01-datacenter01",
      "ipAddressPrivate": {
        "ipAddress": "192.168.32.64"
      },
      "hostname": "vcf-mgmt01-esxi04",
      "credentials": {
        "username": "root",
        "password": "Vcf5@password"
      },
      "sshThumbprint": "SHA256:b5tRZdaKBbMUGmXPAph5s6XdMKQ5Mh0pjzgM0A16J/g",
      "sslThumbprint": "97:83:39:DE:C0:D3:99:06:49:FF:1C:E8:BA:76:60:C6:C1:45:19:BD:C9:10:B0:C2:58:AC:71:12:C8:21:A9:BF",
      "vSwitch": "vSwitch0"
    }
  ]
}

五、部署 SDDC 管理域

在准备以上所有环境后,现在正式进入 SDDC 管理域的部署。通过跳板机访问到 Cloud Builder 并完成登录。

选择 VMware Cloud Foundation 平台。

确定接受,点击 NEXT。

已准备好参数配置文件,点击 NEXT。

上传 JSON 配置文件,点击 NEXT。

完成配置文件检查,点击 NEXT。

点击确定部署 SDDC。

开始 SDDC Bringup 构建过程。

可以去吃个饭喝杯咖啡,然后完成部署。

部署过程的全部任务(之前截图)。

DOWNLOAD 部署报告,用了 2 小时。

点击 FINISH,访问 SDDC Manager。

跳转到 vCenter Server 并输入密码登录。

查看 VMware Cloud Foundation 版本。

六、SDDC 管理域相关信息

1)SDDC Manager

  • SDDC Manager 仪表盘
  • SDDC Manager 清单中所有工作负载域
  • vcf-mgmt01 管理工作负载域摘要
  • vcf-mgmt01 管理工作负载域中的主机
  • vcf-mgmt01 管理工作负载域中的集群
  • vcf-mgmt01 管理工作负载域组件证书
  • SDDC Manager 清单中的所有主机
  • SDDC Manager 中所包含的发行版本
  • SDDC Manager 中所创建的网络池
  • SDDC Manager 配置备份
  • SDDC Manager 中组件密码管理

2)NSX Manager

  • NSX 系统配置概览
  • NSX 节点设备
  • NSX 传输节点
  • NSX 配置文件
  • NSX 传输区域
  • NSX 配置备份

3)vCenter Server

  • VCF 管理域的主机和集群
  • VCF 管理域 vSAN ESA 存储架构
  • VCF 管理域相关组件虚拟机
  • VCF 管理域所使用的 vSAN 存储
  • VCF 管理域的分布式交换机配置
  • VCF 管理域 ESXi 主机的网络配置
相关推荐
小百菜11 小时前
dom4j实现xml转map,xml转json字符串
xml·json·xml转map·xml转json
yuchangchenTT13 小时前
就是这个样的粗爆,手搓一个计算器:JSON格式化计算器
前端·json·365快速计算器·在线计算器
engchina13 小时前
Python代码解析:处理JSON数据并导入Neo4j数据库
数据库·python·json
Mephisto.java18 小时前
【大数据学习 | HBASE】hbase的整体架构
大数据·sql·oracle·json·hbase·database
东方巴黎~Sunsiny1 天前
优雅的遍历JSONArray,获取里面的数据
java·json
API快乐传递者1 天前
用 Python 爬取淘宝商品价格信息时需要注意什么?
java·开发语言·爬虫·python·json
Mephisto.java2 天前
【大数据学习 | kafka】kafka的偏移量管理
大数据·sql·oracle·sqlite·json·hbase
灰色人生qwer2 天前
JSON parse error: Unexpected end-of-input in VALUE_STRING
json
MicrosoftReactor2 天前
技术速递|.NET 9 中 System.Text.Json 的新增功能
ui·json·.net
天天进步20152 天前
X2JS: XML与JSON的完美转换工具
xml·json