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.

embedded-vcsa-6.0
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:

vcsa-6.0-embedded-deployment

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.

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.

vcsa-6.0-embedded-node-scripted-install

27 thoughts on “Ultimate automation guide to deploying VCSA 6.0 Part 1: Embedded Node

  1. 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.

  2. 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.

  3. 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?

    • 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 🙂

      • 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.

      • 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 🙂

  4. 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!!

  5. 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.

    • 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.

      • 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.

        • 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.

          • 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.

  6. 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 ?

  7. 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.

  8. 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

  9. 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

Thanks for the comment!