hywards - Fotolia

Manage Learn to apply best practices and optimize your operations.

How to use the EVO:RAIL JSON file format

The proprietary EVO:RAIL JSON file format can be used for hyper-converged system configuration, but administrators need to be extremely wary of errors.

When an organization deploys a large number of hyper-converged storage systems, it needs to ensure they are configured in a consistent manner. One way to accomplish this is to use JSON file format configuration rather than configuring systems manually.

JSON is a proprietary file format created by VMware. The JSON file format is VMware-specific, but the vendor licenses its EVO:RAIL software to various hardware vendors, each of which creates its own hyper-converged infrastructure based on VMware software. As such, the JSON file format is supported by most hyper-converged vendors.

VMware makes it relatively easy to work with JSON files, but there are a few things to be aware of:

  • The JSON file version has to match the EVO:RAIL release used. If, for example, you attempt to use a JSON file from EVO:RAIL 1.0.0 to configure a newer version of EVO:RAIL software (such as 1.0.1 or 1.0.2), the configuration process will fail when it is approximately 96% complete. You will then have to contact your vendor and ask them to reset your appliance.
  • Check for incorrect files. When you tell EVO:RAIL to use a JSON file, the product assumes the file is configured correctly and does not check the contents for errors. Something as simple as a missing comma can cause the configuration process to fail.
  • Ensure you have backup. It's a good idea to make a backup copy of your default JSON file prior to making any modifications. That way you will have something to fall back on in case you make a mistake.

Assigning values in the JSON file format

The JSON file is really just a text file. It assigns values to a series of variables. The values must be enclosed in quotation marks and must be followed by a comma. Values can be optional, mandatory and conditional. For example, some values must be set in response to specific logging levels, but are otherwise left blank.

Optional values tend to be related to the Windows Active Directory and network configuration. Optional variables include:

  • activeDirectoryDomain
  • activeDirectoryUsername
  • activeDirectoryPassword
  • activeDirectoryPasswordConfirm
  • ntpServerCSV
  • syslogServerCSV
  • proxyServer
  • proxyPort
  • proxyUsername
  • proxyPassword

If these variables are not used, there should be nothing between the quotation marks that contain values. For example, a null proxyPassword would look like this:

proxyPassword": "

This brings up another important point. As you will recall, it was previously stated that each value must be followed by a comma. If you look at the line of code above, you will notice that there is no comma. There is a very good reason for this.

The JSON file is broken into sections. The proxyPassword variable is the final declaration in a section called Global. The comma is not required until the section ends. To give you a better example, here is an abbreviated version of the Global section:

"global": {

            "proxyUsername": "",

            "proxyPassword": ""


The Global section contains more variable declarations than what is shown above, but this code block is fine for illustrative purposes. Notice that the proxyUsername ends with a comma because there are more variable declarations in the section. The proxyPassword section does not end with a comma because it is the last variable declared in the section, but the section block (the last line of code) does end with a comma.

Although the JSON file format is relatively easy to follow, there are a number of rules that must be adhered to; they can be found on VMware's website.

Next Steps

Warehouse built to handle JSON data lakes

Four EVO:RAIL takeaways from its early days

Most IT pros still evaluating EVO:RAIL

Integrating JSON framework with iOS

Dig Deeper on Storage vendors