In this last and final article, I will share alternative methods of deploying vCenter Server management node using the VCSA 6.0 appliance. Take a look at the various deployment methods below and their respective instructions for more details. If you are deploying using one of the scripts below, you will need to extract the contents of the VCSA ISO. If you are deploying to Workstation/Fusion, you will need to extract the VCSA ISO and add the .ova extension to the following file VMware-VCSA-all-6.0.0-2562643->vcsa->vmware-vcsa before deploying.
Disclaimer: Though these alternative deployment options work, they are however not officially supported by VMware. Please use at your own risk.
Deploying to an existing vCenter Server using ovftool (shell script)
I have created a shell script called deploy_vcsa6_mgmt_to_vc.sh which requires using ovftool 4.1 (included in the VCSA ISO) to specify the appropriate OVF "guestinfo" properties for a vCenter Server Management Node deployment. You will need to edit the script and modify several variables based on your environment.
Here is an example of executing the script:
Deploying to an ESXi host using ovftool (shell script)
I have created a shell script called deploy_vcsa6_mgmt_to_esxi.sh which requires using ovftool 4.0 or greater to specify the appropriate OVF "guestinfo" properties for a vCenter Server Management Node deployment. You will need to edit the script and modify several variables based on your environment. The behavior of this script is similar to the one above, except you are deploying directly to an ESXi host.
Deploying to an existing vCenter Server using ovftool (PowerCLI)
I have created a PowerCLI script called Deployment-VCSA-Mgmt.ps1 which uses ovftool and specifies the appropriate OVF "guestinfo" properties for a vCenter Server Management Node deployment. You will need to edit the script and modify several variables based on your environment.
Deploying to VMware Fusion & Workstation
To properly deploy the new VCSA 6.0, the proper OVF properties MUST be set prior to the booting of the VM. Since VMware Fusion and Workstation do not support OVF properties, you will need to manually deploy the VCSA, but not power it on. Once the deployment has finished, you will need to add the following entries to the VCSA's VMX file and replace it with your environment settings. Once you have saved your changes, you can then power on the VM and the configurations will then be read into the VM for initial setup.
guestinfo.cis.deployment.node.type = "management"
guestinfo.cis.system.vm0.hostname = "192.168.1.50"
guestinfo.cis.vmdir.domain-name = "vghetto.local"
guestinfo.cis.vmdir.site-name = "vghetto"
guestinfo.cis.vmdir.password = "VMware1!"
guestinfo.cis.appliance.net.addr.family = "ipv4"
guestinfo.cis.appliance.net.addr = "192.168.1.64"
guestinfo.cis.appliance.net.pnid = "192.168.1.64"
guestinfo.cis.appliance.net.prefix = "24"
guestinfo.cis.appliance.net.mode = "static"
guestinfo.cis.appliance.net.dns.servers = "192.168.1.1"
guestinfo.cis.appliance.net.gateway = "192.168.1.1"
guestinfo.cis.appliance.root.passwd = "VMware1!"
guestinfo.cis.appliance.ssh.enabled = "true"
guestinfo.cis.appliance.ntp.servers = "0.pool.ntp.org"
For more information, you can take a look at this article here.
Deploying using new supported scripted install (bonus)
As mentioned earlier, there is also a new scripted installer included inside of the VMware-VCSA ISO under /vcsa-cli-installer which supports Windows, Mac OS X and Linux, but must be connected directly to an ESXi host. There are several templates that are also included within the /vcsa-cli-installer/templates. I thought as a bonus I would also share the template I have been using to deploy replicated PSC instances using a static IP Address which some of you may find useful.
{ "__comments": [ "William Lam - www.virtuallyghetto.com", "Example VCSA 6.0 vCenter Server Management Node Deployment w/Static IP Address" ], "deployment": { "esx.hostname":"192.168.1.200", "esx.datastore":"mini-local-datastore-1", "esx.username":"root", "esx.password":"vmware123", "deployment.option":"tiny", "deployment.network":"VM Network", "deployment.option":"management-tiny", "appliance.name":"vcsa-mgmt-node", "appliance.thin.disk.mode":true }, "vcsa": { "system": { "root.password":"VMware1!", "ssh.enable":true, "ntp.servers":"0.pool.ntp.org", "platform.service.controller":"192.168.1.50" }, "sso": { "password":"VMware1!", "domain-name":"vghetto.local", "site-name":"virtuallyGhetto" }, "networking": { "ip.family":"ipv4", "mode":"static", "ip":"192.168.1.52", "prefix":"24", "gateway":"192.168.1.1", "dns.servers":"192.168.1.1", "system.name":"192.168.1.52" } } }
The use the scripted installer, you just need to change into the appropriate OS platform directory (win32,mac or lin64) and there should be a binary called vcsa-deploy. To use this template, you just need to save the JSON to a file and then specify that as the first argument to vcsa-deploy utility.
Here is an example of deploying a PSC using the vcsa-deploy scripted installer.
- Part 0: Introduction
- Part 1: Embedded Node
- Part 2: Platform Services Controller Node
- Part 3: Replicated Platform Services Controller Node
- Part 4: vCenter Server Management Node
paulbraren says
This article gives all sorts of home lab users all sorts of crazy ideas, in a very good way 😉
I notice your sample scripts tend to hard code everything by IP address, rather than names for ESXi and VCSA. I agree, this works easily, smoothly. Scripted as you've shown, or the the regular vcsa-setup.html way, easy.
But I've also found deploying the VCSA appliance configured for DHCP, with a DHCP reservation in my WiFi router leasing the name and domain name, works very nicely as well. I then simply PuTTY in to add a host file line for the esxi host by FQDN, and tada, nice pretty names for ESXi and VCSA, seen in this UI screenshot:
http://cdn.tinkertry.com/wp-content/uploads/2015/03/heres-my-working-vSphere-6.0-home-lab-with-nice-FQDN-names.png
FYI, letting VCSA it auto-choose "localhost" doesn't tend to work out so well, should lesser DHCP servers (crap WiFi router) not give an IP and a name. Only host vcenter and domain lab.local were used did I have everything working just peachy.
Without resorting to (Windows Server 2012 R2) with FQDN and forward and reverse lookup DNS services (and all the complexity this entails for newbies):
http://kb.vmware.com/selfservice/microsites/search.do?language=en_US&cmd=displayKC&externalId=1003735
I have found some ways of repeatedly documenting my deployment techniques that work, but they're a bit clumsy to try to make repeatable for anybody's home lab. My focus is on common WiFi routers that worked well enough for 5.5 and earlier, and the common Windows client PC that folks are most likely to be deploying from, with the script templates inside the VMware-VCSA-all-6.0.0-2562643.iso here:
\vcsa-cli-installer\templates\VC.example.json
So, finally, now for the goofy question.
Have you found a more elegant (scripted?) way to deploy a vSphere 6.0 home lab, with a FQDN name for the vCSA appliance (so the SSO stuff works, and the appliance comes up clean)?
Thanks!
Jorge says
VCSa is not free... so we can just play 60 days with this setup, correct?
Scott says
Is it possible to deploy a VC when you have an external PSC? I don't see in any of your script an option for configuring SSO.
William Lam says
This is exactly the scenario for Part 4 🙂 It deploys a VC Management Node when an External PSC is used
Scott says
I get that but it isn't working. The VM deploys no problem but it can't find the PSC. When I go through the manual install it ask for the FQDN or IP of the PSC (or SSO system). Based on what's in the powershell script it doesn't contain the PSC just the SSO domain. How does the install know where to lookup the SSO domain?
William Lam says
Huh?
http://www.virtuallyghetto.com/2015/02/ultimate-automation-guide-to-deploying-vcsa-6-0-part-2-platform-services-controller-node.html <-deployes PSC which includes SSO among other services http://www.virtuallyghetto.com/2015/03/ultimate-automation-guide-to-deploying-vcsa-6-0-part-4-vcenter-server-management-node.html <-deploys VC which it expects you to specify hostname/IP Address of your PSC Server along with several other params such as the SSO Domain + Site Name If you look at the PowerCLI script, you'll see that it does in fact specify these additional parameters but if you've not specified it, then the deploy will not be successful.
Scott says
I got it working. I had built a VC manually and then deleted it. When I ran the script to re-create the same VC is already exited in SSO so the install would fail. Thanks for the help much appreciated.
Henrik M. Jensen says
I had a very good setup with vCenter Server 5.5 (Linked mode) + 5 Robo sites with your VCSA Script. Managing/monitoring everything from the HQ vCenter Server (Nice).
Now I have upgraded my HQ vCenter Server 5.5 -> 6.0, running fine, but unable to manage or connect my Robo Sites.... (License is Essential Plus in HQ, and Essestial in Robo Sites.)
Hope you can guide, what is possible with Essential Plus license,
Alex says
Do you specify whether to configure the database as postgres or Orcale anywhere in the json file? If not, does it default to Postgres?
Tim Walkenhorst says
I am loading on Fusion Pro 8.1 using VMX files. I am using Update 2. i can get the "embedded" and "External PSC" to work. i can not get the "Vcenter to external PSC" to work.
On the appliance main screen " Failed to Start Services Firstboot Error". when i dig deeper in the "firstboot/soluser_firstboot.py_5449_stderr.log" file i find "OSError: [Errno 2] No such file or directory"
When i try to repoint the VCenter to the external PSC using the command "/usr/lib/vmware-vmafd/bin/vmafd-cli set-dc-name --server-name localhost --dc-name systemname_of_second_PSC" the "vmware-vmafd" director is not there. i could use some help. Has anyone tried this VSphere 6.0 Update 2?
VMX file info:
guestinfo.cis.deployment.node.type = "management-tiny"
guestinfo.cis.system.vm0.hostname = "Test830.xxxx.tdw"
guestinfo.cis.vmdir.domain-name = "vsphere.local"
guestinfo.cis.vmdir.site-name = "KCC"
guestinfo.cis.vmdir.password = "xxxxxxxxx"
guestinfo.cis.appliance.net.addr.family = "ipv4"
guestinfo.cis.appliance.net.addr = "10.10.50.31"
guestinfo.cis.appliance.net.pnid = "Test831.xxx.tdw"
guestinfo.cis.appliance.net.prefix = "24"
guestinfo.cis.appliance.net.mode = "static"
guestinfo.cis.appliance.net.dns.servers = "10.10.50.230"
guestinfo.cis.appliance.net.gateway = "10.10.50.2"
guestinfo.cis.appliance.root.passwd = "xxxxxxx"
guestinfo.cis.appliance.ssh.enabled = "true"
guestinfo.cis.appliance.ntp.servers = "1.pool.ntp.org"
Ben says
Template key 'deployment.option' appears more than once