vSphere 5.1 bootstrap without using Windows

  1. Install ESXi as per normal. Configure the network with “Configure Management Network” in the DCUI F2 menu. Also in the F2 menu, go to “Troubleshooting Options” and enable SSH. Verify that you can ssh to the hypervisor.
  2. SSH to the hypervisor and run:
    esxcli network nic list

    and check all your NICs. If they're not all there (Solarflare 10GbE for example), we need to get the driver and install it. Download the Solarflare “Driver CD” from VMware. Paradoxically, it's a zip file.

    To install, first copy the driver from your host:

    [mfenn@localhost drivers]$ scp -o GlobalKnownHostsFile=/dev/null -o UserKnownHostsFile=/dev/null sfc-3.2.1.6082B-834060.zip root@esxi:/vmfs/volumes/datastore1/drivers/
    Warning: Permanently added 'esxi' (RSA) to the list of known hosts.
    Password:
    sfc-3.2.1.6082B-834060.zip                    100%  875KB 875.2KB/s   00:00

    Then do the rest on the the hypervisor:

     /vmfs/volumes/51102cb6-c62a7e02-7bc8-00259075bb60 # cd /vmfs/volumes/datastore1/
    /vmfs/volumes/51102cb6-c62a7e02-7bc8-00259075bb60 # cd drivers/
    /vmfs/volumes/51102cb6-c62a7e02-7bc8-00259075bb60/drivers # mkdir sfc-3.2.1.6082B-834060
    /vmfs/volumes/51102cb6-c62a7e02-7bc8-00259075bb60/drivers # cd sfc-3.2.1.6082B-834060/
    /vmfs/volumes/51102cb6-c62a7e02-7bc8-00259075bb60/drivers/sfc-3.2.1.6082B-834060 # unzip ../sfc-3.2.1.6082B-834060.zip
    Archive:  ../sfc-3.2.1.6082B-834060.zip
      inflating: sfc-3.2.1.6082B-offline_bundle-834060.zip
      inflating: sfc.vib
      inflating: doc/README.txt
      inflating: source/driver_source_net-sfc_3.2.1.6082B-1OEM.500.0.0.472560.tgz
      inflating: doc/open_source_licenses_net-sfc_3.2.1.6082B-1OEM.500.0.0.472560.txt
      inflating: doc/release_note_net-sfc_3.2.1.6082B-1OEM.500.0.0.472560.txt
    /vmfs/volumes/51102cb6-c62a7e02-7bc8-00259075bb60/drivers/sfc-3.2.1.6082B-834060 # esxcli software vib install -d /vmfs/volumes/datastore1/drivers/sfc-3.2.1.608
    2B-834060/sfc-3.2.1.6082B-offline_bundle-834060.zip # YOU MUST GIVE A FULL PATH
    Installation Result
       Message: The update completed successfully, but the system needs to be rebooted for the changes to be effective.
       Reboot Required: true
       VIBs Installed: solarflare_bootbank_net-sfc_3.2.1.6082B-1OEM.500.0.0.472560
       VIBs Removed:
       VIBs Skipped:
    /vmfs/volumes/51102cb6-c62a7e02-7bc8-00259075bb60/drivers/sfc-3.2.1.6082B-834060 # esxcli system maintenanceMode set -e yes
    /vmfs/volumes/51102cb6-c62a7e02-7bc8-00259075bb60/drivers/sfc-3.2.1.6082B-834060 # esxcli system shutdown reboot -r "new driver"

    After reboot, verify that the new NICs are present and leave maintenance mode:

    ~ # esxcli network nic list
    Name    PCI Device     Driver  Link  Speed  Duplex  MAC Address         MTU  Description
    ------  -------------  ------  ----  -----  ------  -----------------  ----  -------------------------------------------------
    vmnic0  0000:002:00.0  igb     Up      100  Full    00:25:90:75:bb:60  1500  Intel Corporation I350 Gigabit Network Connection
    vmnic1  0000:002:00.1  igb     Up      100  Full    00:25:90:75:bb:61  1500  Intel Corporation I350 Gigabit Network Connection
    vmnic2  0000:004:00.0  sfc     Down      0  Half    00:0f:53:0b:21:50  1500  Solarflare BethpageA0
    vmnic3  0000:004:00.1  sfc     Up    10000  Full    00:0f:53:0b:21:51  1500  Solarflare BethpageA0
    ~ # esxcli system maintenanceMode set -e no
  3. Now to create a new vSwitch on the 10g for VMs (you can skip this if you are going to use the default vSwitch).
    ~ # esxcli network vswitch standard add -P 128 -v vSwitch1
    ~ # esxcli network vswitch standard uplink add -u vmnic3 -v vSwitch1
    ~ # esxcli network vswitch standard portgroup add -p "VLAN 9" -v vSwitch1

    If you need to add a VLAN tag to the portgroup (i.e. it's a tagged port at the switch, do this:

    ~ # esxcli network vswitch standard portgroup set -p "VLAN 9" -v 9
  4. Then deploy the appliance with ovftool (this happens on your host, not the hypervisor).
    [mfenn@localhost Downloads]$ chmod +x VMware-ovftool-3.0.1-801290-lin.x86_64.bundle
    [mfenn@localhost Downloads]$ sudo ./VMware-ovftool-3.0.1-801290-lin.x86_64.bundle
    [sudo] password for mfenn:
    ... GUI APPEARS ... (all defaults is fine)
     
    [mfenn@localhost ~]$ ovftool --name=vca --datastore=datastore1 --network="VLAN 9" /Downloads/vendor/vmware/VMware-vCenter-Server-Appliance-5.1.0.5300-947940_OVF10.ova vi://esxi
    Opening OVA source: /Downloads/vendor/vmware/VMware-vCenter-Server-Appliance-5.1.0.5300-947940_OVF10.ova
    The manifest validates
    Source is signed and the certificate validates
    Please enter login information for target vi://esxi/
    Username: root
    Password: **************
    Opening VI target: vi://root@esxi:443/
    Deploying to VI: vi://root@esxi:443/
    Transfer Completed
    Warning:
     - Error loading X509 certificate: 'Failed to open crt file: /etc/ssl/certs/ca-bundle.crt'.
    Completed successfully
  5. Next log into the hypervisor, we are going to set a static MAC for the appliance. Note that 00:50:56 is the VMware blessed prefix for static macs, but you can't use that whole range. I flipped the first octet to 02 to make it a locally administered address. I then generated the last 3 octets based on the IP address (gethostip on the assigned hostname, take the last 3 octects of the hex IP it gives you, and put those in).
    ~ # vi /vmfs/volumes/datastore1/vca/vca.vmx
    ~ # cat /vmfs/volumes/datastore1/vca/vca.vmx | grep ethernet0
    ethernet0.present = "TRUE"
    ethernet0.virtualDev = "vmxnet3"
    ethernet0.wakeOnPcktRcv = "FALSE"
    ethernet0.networkName = "VLAN 9"
    ethernet0.addressType = "static"
    ethernet0.address = "02:50:56:E8:09:14"
  6. Make sure that the MAC address you just generated will be given an IP via DHCP. The exact procedure for doing this is site-specific.
  7. Power on the appliance! (This is on the hypervisor)
    ~ # vim-cmd vmsvc/getallvms | grep vca
    3      vca   [datastore1] vca/vca.vmx   sles11_64Guest   vmx-07    VMware vCenter Server Appliance
    ~ # vim-cmd vmsvc/power.getstate 3
    Retrieved runtime info
    Powered off
    ~ # vim-cmd vmsvc/power.on 3
    Powering on VM:
    ~ # vim-cmd vmsvc/power.getstate 3
    Retrieved runtime info
    Powered on
  8. Browse to https://vca:5480/ to configure the VCA itself.
    Browse to https://vca:9443/vsphere-client/ to do your normal vSphere thing.
    The default username/pass is root/vmware