Invoke-VMHostProfile is just one of the HostProfile related cmdlets in PowerCLI.
You can find them all with
Get-Command -Name *VMHostProfile*
Invoke-VMHostProfile is indeed used to apply a HostProfile to an ESXi node. But the profile is provided on the Profile parameter.
The Variable parameter is used to provide values, in the form of a hash table, for the HostProfile entries that are set to 'prompt'.
Use the Get-VMHostProfileRequiredInput cmdlet to find out which settings to provide in that hash table.
You can create a new HostProfile
- by copying the settings of an existing ESXi node (ReferenceHost on the New-VMHostProfile cmdlet)
- same as the previous option, but change settings. The specific settings are currently limited to Cache,Storage,User and Portgroup settings (see all the Set-VMHostProfile*Configuration cmdlets)
- by importing one with Import-VMHostProfile cmdlet