So here it goes:
1. Make a file, call it vcenter-hosts.txt or whatever you want, and put it in c:\temp, put all your hosts that you want to enter. Mine looks like this:
vmhost-la01-ch01-bl01.dvirt.net
vmhost-la01-ch01-bl02.dvirt.net
vmhost-la01-ch01-bl03.dvirt.net
vmhost-la01-ch01-bl04.dvirt.net
Get-Content c:\temp\vcenter-hosts.txt | Foreach-Object { Add-VMHost $_ -Location (Get-Datacenter LosAngeles01) -User root -Password changeme-RunAsync -force:$true}
You will see this:
On the vCenter it will look like this:
That's it.
Of course your hosts need to be resolved by the vCenter, or you will get a nice error like this:
Add-VMHost : 6/22/2015 8:23:45 PM Add-VMHost Cannot contact the
specified host (host01.blah.net). The host may not be available on
the network, a network configuration problem may exist, or the management
services on this host may not be responding.
At line:1 char:45
After you add all these hosts, you may want to use Ansible to configure them all, or if you rather, you can do some stuff such as set hostname and DNS and others via command line such as below:
Set ESXi hostname via Command line (SSH directly to the host)
esxcli system hostname set --host=esxi08.abcdomain.net
Set ESXi search domains: (SSH directly to the host)
esxcli network ip dns search add -d yahoo.com domain.local
Set up nameserver/s: (SSH directly to the host)
esxcli network ip dns server add -s 4.2.2.2
Another issue that may come up (especially if you use Ansible) is that you want to name all your datastores the same thing, if they are not, or you want to name them a good name, this would be the command in PowerCLI:
get-vmhost esxi08.abcdomain.net | get-datastore | set-datastore -name esxi08-local
It would look like this:
However you need to do this when the host is NOT in vCenter. When you import say 16 hosts into vCenter, the first one will have its datastore called "datastore1" then the next one will be datastore1 (1) and the one after that datastore1 (2) and so on. example:
So in order for ansible to work, when it's expecting datastore1, you need to rename the datastore to that (or just leave it if you didnt bring it into vCenter) Once you remove it from vCenter, the name remains, but then you can use the command above to change it back or change it to whatever name you want.