In this article, I will share alternative methods of deploying the new VCSA 6.0 using an Embedded Node configuration. 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_embedded_to_vc.sh which requires using ovftool 4.1 (included in the VCSA ISO) to specify the appropriate OVF "guestinfo" properties for an Embedded configuration. 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_embedded_to_esxi.sh which requires using ovftool 4.0 or greater to specify the appropriate OVF "guestinfo" properties for an Embedded configuration. 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-Embedded.ps1 which also allows you to specify the appropriate OVF "guestinfo" properties for an Embedded configuration. 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 = "embedded"
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.54"
guestinfo.cis.appliance.net.pnid = "192.168.1.54"
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"
For more information, you can take a look at this article here.
Deploying using new 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 an Embedded VCSA 6.0 using a static IP Address which some of you may find useful.
{ "__comments": [ "William Lam - www.virtuallyghetto.com", "Example VCSA 6.0 Embedded 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", "appliance.name":"embedded-vcsa-node", "appliance.thin.disk.mode":true }, "vcsa": { "system": { "root.password":"VMware1!", "ssh.enable":true, "ntp.servers":"0.pool.ntp.org" }, "sso": { "password":"VMware1!", "domain-name":"vghetto.local", "site-name":"virtuallyGhetto" }, "networking": { "ip.family":"ipv4", "mode":"static", "ip":"192.168.1.60", "prefix":"24", "gateway":"192.168.1.1", "dns.servers":"192.168.1.1", "system.name":"192.168.1.60" } } }
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 an Embedded VCSA 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
jQuestion says
Hi William,
Could you explain me how you run the PowerShell script? I installed the OVFTool 4.1 but I do not understand how to run the Deployment-Embedded.ps1 since there are no information of the VC where is the VCSA going to be deployed.
Thanks in advanced.
Mathieu Buisson says
Hi William,
Great stuff !
Just to let you know, I built upon your PowerCLI script.
I didn't want to fork the whole repository, because there is too much stuff for me.
Here is what I did :
- Packaged it as a module so the function Install-VCSA6 behaves just like a native cmdlet
- Got rid of most hard-coded values and added them as parameters
- Merged the 3 scripts into a single cmdlet which works for 3 the deployment modes : Embedded, Management node, and Platform Services Controller.
- Parameter validation for most parameters (to avoid user mistakes and to allow the user to "browse" possible values with Tab completion)
- Default values for parameters where it makes sense
- Check that the required PowerCLI snap-in is loaded
- Run Connect-VIServer if not already connected
- Very detailed help information accessible via Get-Help
Thanks.
Mathieu Buisson says
By the way, the PowerCLI module is available here :
https://github.com/MathieuBuisson/Powershell-VMware/tree/master/Install-VCSA6
Jason says
Fusion 7.1.1 doesn't seem to like having "guestinfo.cis.appliance.xxxxx" lines in the vmx file. The VM fails to start and Fusion complains about a dictionary problem. Any advice?
William Lam says
This issue is most likely due to your "quotes", they're probably copied/paste and turned into "Smart Quotes". If you manually add quotation, you'll see it's slightly different and that's whats causing the dictionary problem. Took me awhile to figure this out 🙂
Drew says
Removing and manually adding the quotes (" ") before and after each value for the guestinfo.cis.appliance.xxxxx lines in the .VMX file was the fix for me too! Copy/paste screws them up, apparently.
Ibrahim Mubasher says
Extreme! Dude! Extreme! I mean awesome. I was perplexed with this problem and then tumbled onto your blog! It worked. THANK YOU THANK YOU THANK YOU 🙂
David K Lee says
Hi Jason (and William),
I had that error mentioning a dictionary problem. For me, I finally succeeded by completely closing the Fusion app, and editing the vmx file using vi at the command line. Previously, I had been editing the vmx file adding the guestinfo lines in TextMate and/or TextEdit. By closing Fusion, I avoided file lock issues. By using vi, I avoided adding any extraneous characters to the vmx. My vcsa6 is working well for me now. Thanks William for doing all this great work for VMware customers!!
Jason says
Thanks guys, I used TextWrangler to edit the .vmx file and it worked.
Russ says
Hi William, thanks again for the great post.. I'm trying to install under fusion 7.1.1 pro, and I don't see how to configure it beyond the basic password/network parameters. I see a flash of blue when I launch the venter web client, and then it disconnects.
William Lam says
Russ,
Not sure what you mean by "it disconnects"? Were there any errors when you open up the VMRC, if there were any configuration errors there should be a note on the blue console. If there's not, the vSphere Web Client does take a few minutes to initialize depending on the resources of your system.
Russ says
Okay, I finally got VC 6 going by applying the following hack to /etc/hosts:
localhost:~ # cat /etc/hosts
# VAMI_EDIT_BEGIN
127.0.0.1 localhost
#172.16.233.200 localhost.localdom localhost <<<<<<----------- all the trouble caused by this!!
# VAMI_EDIT_END
172.16.233.131 myhostexi #esxi55u2 on fusion 7.1.1 pro
172.16.233.132 myhostvc #vcenter 55u2e on fusion
172.16.233.200 myhostvc6 #vcenter 6.0.0 on myhostexi.
This is the same hack I had to apply to get vCenter 5.5U2 working (see: https://tinkertry.com/vcenter-server-appliance-5-5-in-a-home-lab-without-sso-errors ). There may be an easier way to fix it, but the basic problem is that the VMWARE setup creates a bogus localhost entry if you don't have a valid DNS hostname, which generally I don't because I'm on an isolated VLAN under fusion.
The timing is a bit tricky as you have to boot up the machine and change the local /etc/hosts file while it is starting up the services. There is probably a better way so that it will boot correctly the first time after the install.
I'm also able to connect to the VC6 console using VMRC (new mac version), since VC6 is nested under ESXI on fusion. However, the VMRC url links in vCenter 55U2e on the summary page for my VC6 system didn't work for me. I tried both safari and firefox - each launched VMRC and asked me to accept the certificate, and then VMRC promptly exited.
However, I can confirm that when I construct the VMRC url by hand, I can get to the console using VMRC. I just had to look up the MOID's by hand, e.g.:
On the vCenter 55U2e host:
vmrc://@myhostvc/?moid=vm-43
On the ESXi host:
vmrc://@myhostexi/?moid=3
When I connect to the console, sometimes it is a text-based unix login, and sometimes it is the normal esxi-like console. Once it switches to text mode, it seems to stay there and dump out system log messages periodically.
William Lam says
Yes, this is why in my example if you don't have valid DNS then you should specify the IP Address for the PNID entry this way you can use IP and you won't get the localhost entry problem. This really crops up if you leave it blank, use a false entry or DHCP. I ran into this problem when I had first set it up and was wondering why it didn't work.
Russ says
hmm, I most definitely set the PNID entry when I attempted the fusion-based install (by editing the vmx parameters), and for the HTML installer, I set the "System name [FQDN or IP address]:" to be the IP address, which appears to have been translated to the PNID parameter:
localhost:~ # cd /etc/vmware
localhost:/etc/vmware # grep -ri PNID .
./systemname_info.json:{"status": "success", "PNID": "172.16.233.200", "PNIDChangeAllowed": false}
However, I do see mention in the logs:
localhost:/storage/log # grep -ri PNID .
./vmware/applmgmt/server.log:2015-04-28T04:58:28.118:WARNING:com.vmware.appliance.networking.utils:PNID configuration failure /etc/vmware/systemname_info.json {[Errno 2] No such file or directory: '/etc/vmware/systemname_info.json'}
… repeated
/vmware/applmgmt/multiserve.log.1:2015-04-28T04:58:27.118:WARNING:com.vmware.appliance.networking.utils:PNID configuration failure /etc/vmware/systemname_info.json {[Errno 2] No such file or directory: '/etc/vmware/systemname_info.json'}
… repeated
./vmware/vmafdd/vmafdd-syslog.log:2015-04-28T05:00:25.439807+00:00 info vmafdd t@139876460779264: VmAfSrvSetPNID succeeded
so it seems that /etc/vmware/systemname_info.json is created at some point during the install but maybe not early enough?
BTW, the json/vcsa-cli-installer "Bonus" method is starting to sound pretty good, since at least you can see what is going on a little better.
Joakim says
Is it possible to deploy vSphere Replication 6.0 with ovftool also?
William Lam says
Yes, you can use ovftool to deploy any OVF/OVA
Zac Thomas says
Hi William, I edit the vmx file using vi to add the guestinfo.cis parameters, but it appears that these are being ignored after powering up the VCSA 6. I am using Fusion 8.0.1 and the latest VCSA 6. Have you seen this ?
William Lam says
I've not had this problem and I've used Fusion 8.0.1 & in fact colleague of mine just blogged about this yesterday http://www.yellow-bricks.com/2015/10/22/running-vcenter-server-appliance-6-0-in-fusion/
I would say make sure you're actually using the right networking info but you can always take a look at the console of the VM to see exactly what went wrong as it usually provides an error if something did not go through.
Zac Thomas says
It must have been a funky character or something in the lines because I typed all the lines into the vmx file and everything worked after that.
Drew says
Hi William, I'm trying to deploy vCSA 6.0 to my Mac Mini via VMware Fusion, but I keep just getting "Failed to configure network." I've tried removing and manually typing out ALL the entries added to the .VMX file, but it didn't work. I have the VM's network set to Bridged>Ethernet, is that not right?? Thanks.
Drew says
...also, I cannot get any password at all to work, for either Root or even GRUB.
R says
Hi,
Wondering if it's possible to configure the PNID (guestinfo.cis.appliance.net.pnid) as something else i.e. a simple string untied to IP or FQDN e.g. "VCSA1". Would this work on VCSA 6?
tks
William Lam says
No, it must either be FQDN if you have DNS or an IP Address
Patrick Ryan says
Hello William - Great articles on VCSA. I have a need to use VCSA 6.0 but the client does not have a domain since they're on a workgroup. How do you setup VCSA for DNS forward and reverse or do you have a PDF that shows how to setup Forward and Reverse DNS before VCSA 6.0 installation? - thank you
Drew the IT Admin says
How can they have the need for vCSA and *not* have a domain controller with DNS?! That's like saying I'm gonna ride with training wheels on my kid's bike while wearing a Harley jacket...makes zero sense.
Use BIND I guess, smh.
patrick says
I didn't ask the question for the IT lol admin to answer. Apparently you have no experience riding or viewing a Twist of the Wrist "either" !
Drew the IT Admin says
Your question makes no sense and neither does your reply.
Kenneth Sliger says
Your PowerCLI scripts literally saved my life! You rock!!!