VCF Installer
- Configure VCF Installer to use an Offline Depot with just HTTP, see this blog post HERE for more details
- Easily serve VCF Offline Depot using HTTP or HTTPS without requiring full blown web server, see this blog post HERE for more details
- If you have a Synology, you can easily setup an VCF Offline Depot, see this blog post HERE for more details
- Disable 10GbE NIC Pre-Check for initial VCF Fleet/Domain deployment, see this blog post HERE for more details
- When deploying a new VCF Workload Domain from VCF Operations, a different 10GbE pre-check is enabled and there is no way to currently disable that pre-check which is same behavior as VCF 5.x. You will need to have an ESXi host that has 10GbE, if you are using Nested ESXi VM, the VMXNET3 driver will automatically show 10GbE and that would allow you to easily deploy VCF Workload Domain
-
Different ESXi host vendor workaround, see this blog post HERE for more details
- Required number of ESXi Hosts:
- vSAN OSA/ESA - Minimum 3 x hosts (previously it was 4 with VCF 5.x)
- NFS - Minimum of 2 x hosts
- Can a single ESXi host be used? See this blog post HERE for more details
-
Unlike the Cloud Builder appliance in VCF 5.x, which was only used for the initial deployment of VCF, the VCF 9.0 Installer can either just be the installer for VCF 9.0 deployment or it can transition to become the SDDC Manager appliance as part of deploying VCF 9.0. The benefit of having the VCF Installer become SDDC Manager is that it already contains the downloaded binaries and can speed up your deployment as it does not have to re-download the binaries from your original VCF Software Depot. If you are using the JSON API to deploy VCF, you can add the following “
useExistingDeployment": truewhich it will simply re-use the VCF Installer appliance and you may want to use DNS name that reflects the final personality rather than just the initial installation - While I love the simplicity of the VCF Installer UI, I prefer to not have to type a whole bunch or go through wizards and a huge enhancement to the installer compared to Cloud Builder is that I can now export the deployment specification, which allows you to easily source control, templatize or deploy more advanced configuration and best of all, the VCF Installer UI has option that you can feed the JSON deployment specification, so while you can automate using the VCF Installer API, its even easier to use the UI and just upload the JSON and click next to validate and deploy. Here is a reference VCF 9 deployment specification for deploying the “Basic” mode where each component is using a single appliance.
{
"sddcId": "vcf-m01",
"vcfInstanceName": "William VCF 9 Instance",
"workflowType": "VCF",
"version": "9.0.0.0",
"ceipEnabled": true,
"fipsEnabled": true,
"skipEsxThumbprintValidation": true,
"skipGatewayPingValidation": true,
"sddcManagerSpec": {
"rootUserCredentials": {
"username": "root",
"password": "VMware1!VMware1!"
},
"secondUserCredentials": {
"username": "vcf",
"password": "VMware1!VMware1!"
},
"hostname": "sddcm01",
"useExistingDeployment": true,
"rootPassword": "VMware1!VMware1!",
"sshPassword": "VMware1!VMware1!",
"localUserPassword": "VMware1!VMware1!"
},
"dnsSpec": {
"nameservers": [
"192.168.30.29"
],
"subdomain": "vcf.lab"
},
"ntpServers": [
"104.167.215.195"
],
"vcenterSpec": {
"vcenterHostname": "vc01",
"rootVcenterPassword": "VMware1!VMware1!",
"vmSize": "tiny",
"storageSize": "",
"adminUserSsoPassword": "VMware1!VMware1!",
"ssoDomain": "vsphere.local",
"useExistingDeployment": false
},
"hostSpecs": [
{
"hostname": "esx01",
"credentials": {
"username": "root",
"password": "VMware1!"
}
},
{
"hostname": "esx02",
"credentials": {
"username": "root",
"password": "VMware1!"
}
}
],
"clusterSpec": {
"clusterName": "VCF-Mgmt-Cluster",
"datacenterName": "VCF-Datacenter",
"clusterEvcMode": "",
"clusterImageEnabled": true
},
"datastoreSpec": {
"vsanSpec": {
"failuresToTolerate": 0,
"vsanDedup": false,
"esaConfig": {
"enabled": true
},
"datastoreName": "vsanDatastore"
}
},
"nsxtSpec": {
"nsxtManagerSize": "medium",
"nsxtManagers": [
{
"hostname": "nsx01a"
}
],
"vipFqdn": "nsx01",
"useExistingDeployment": false,
"nsxtAdminPassword": "VMware1!VMware1!",
"nsxtAuditPassword": "VMware1!VMware1!",
"rootNsxtManagerPassword": "VMware1!VMware1!",
"skipNsxOverlayOverManagementNetwork": true,
"ipAddressPoolSpec": {
"name": "tep01",
"description": "ESXi Host Overlay TEP IP Pool",
"subnets": [
{
"cidr": "172.60.0.0/24",
"ipAddressPoolRanges": [
{
"start": "172.60.0.150",
"end": "172.60.0.160"
}
],
"gateway": "172.60.0.1"
}
]
},
"transportVlanId": "60"
},
"vcfOperationsSpec": {
"nodes": [
{
"hostname": "vcf01",
"rootUserPassword": "VMware1!VMware1!",
"type": "master"
}
],
"adminUserPassword": "VMware1!VMware1!",
"applianceSize": "small",
"useExistingDeployment": false,
"loadBalancerFqdn": ""
},
"vcfOperationsFleetManagementSpec": {
"hostname": "opsfm01",
"rootUserPassword": "VMware1!VMware1!",
"adminUserPassword": "VMware1!VMware1!",
"useExistingDeployment": false
},
"vcfOperationsCollectorSpec": {
"hostname": "opsproxy01",
"applicationSize": "small",
"rootUserPassword": "VMware1!VMware1!",
"useExistingDeployment": false
},
"vcfAutomationSpec": {
"hostname": "auto01",
"adminUserPassword": "VMware1!VMware1!",
"ipPool": [
"172.30.0.31",
"172.30.0.32"
],
"nodePrefix": "auto01",
"internalClusterCidr": "198.18.0.0/15",
"useExistingDeployment": false
},
"networkSpecs": [
{
"networkType": "MANAGEMENT",
"subnet": "172.30.0.0/24",
"gateway": "172.30.0.1",
"subnetMask": null,
"includeIpAddress": null,
"includeIpAddressRanges": null,
"vlanId": "0",
"mtu": "1500",
"teamingPolicy": "loadbalance_loadbased",
"activeUplinks": [
"uplink1"
],
"standbyUplinks": [],
"portGroupKey": "DVPG_FOR_MANAGEMENT"
},
{
"networkType": "VM_MANAGEMENT",
"subnet": "172.30.0.0/24",
"gateway": "172.30.0.1",
"subnetMask": null,
"includeIpAddress": null,
"includeIpAddressRanges": null,
"vlanId": "0",
"mtu": "1500",
"teamingPolicy": "loadbalance_loadbased",
"activeUplinks": [
"uplink1"
],
"standbyUplinks": [],
"portGroupKey": "DVPG_FOR_VM_MANAGEMENT"
},
{
"networkType": "VMOTION",
"subnet": "172.40.0.0/24",
"gateway": "172.40.0.1",
"subnetMask": null,
"includeIpAddress": null,
"includeIpAddressRanges": [
{
"startIpAddress": "172.40.0.150",
"endIpAddress": "172.40.0.160"
}
],
"vlanId": "40",
"mtu": "8900",
"teamingPolicy": "loadbalance_loadbased",
"activeUplinks": [
"uplink1"
],
"standbyUplinks": [],
"portGroupKey": "DVPG_FOR_VMOTION"
},
{
"networkType": "VSAN",
"subnet": "172.50.0.0/24",
"gateway": "172.50.0.1",
"subnetMask": null,
"includeIpAddress": null,
"includeIpAddressRanges": [
{
"startIpAddress": "172.50.0.150",
"endIpAddress": "172.50.0.160"
}
],
"vlanId": "50",
"mtu": "8900",
"teamingPolicy": "loadbalance_loadbased",
"activeUplinks": [
"uplink1"
],
"standbyUplinks": [],
"portGroupKey": "DVPG_FOR_VSAN"
}
],
"dvsSpecs": [
{
"dvsName": "sddc1-cl01-vds01",
"networks": [
"MANAGEMENT",
"VM_MANAGEMENT",
"VMOTION",
"VSAN"
],
"mtu": "8900",
"nsxtSwitchConfig": {
"transportZones": [
{
"transportType": "OVERLAY",
"name": "vcf-overlay-TZ"
},
{
"transportType": "VLAN",
"name": "vcf-vlan-TZ"
}
],
"hostSwitchOperationalMode": "STANDARD"
},
"vmnicsToUplinks": [
{
"uplink": "uplink1",
"id": "vmnic0"
}
],
"nsxTeamings": [
{
"standByUplinks": [],
"policy": "LOADBALANCE_SRCID",
"activeUplinks": [
"uplink1"
]
}
],
"lagSpecs": null,
"vmnics": [
"vmnic0"
]
}
]
}