This is part of the continuing series of Blog posts regarding Troubleshooting the Application, this article will discuss more advance issues that some clients and customer have encountered while building or using ThingWorx Analytics.

 

Packer Script Error – Unable to Download CentOS Image

As the application is developed and built inside a CentOS image, the ThingWorx Analytics Packer Script tool for Virtual Machine Appliance creation utilizes the CentOS mirror repository in the creation process.

When the end user is attempting to build the Virtual Machine Appliance with the Packer Script media creation tool, part of the process is to download the CentOS 7 ISO image file as the basis for the operating system that the ThingWorx Analytics Server software will be installed to.

 

If CentOS updates or changes their mirror links for the source file ISO, you may encounter the following error:

 

==> virtualbox-iso: Downloading or copying Guest additions

virtualbox-iso: Downloading or copying: file:///C:/Program%20Files/Oracle/VirtualBox/VBoxGuestAdditions.iso


==> virtualbox-iso: Downloading or copying ISO

virtualbox-iso: Downloading or copying: file:///local-file-repo/CentOS-7-x86_64-Minimal-1511.iso

virtualbox-iso: Error downloading: open local-file-repo/CentOS-7-x86_64-Minimal-1511.iso: The system cannot find the path specified.

virtualbox-iso: Downloading or copying: http://mirror.spro.net/centos/7/isos/x86_64/CentOS-7-x86_64-Minimal-1511.iso

virtualbox-iso: Error downloading: checksums didn't match expected: 88c0437f0a14c6e2c94426df9d43cd67


==> virtualbox-iso: ISO download failed.

Build 'virtualbox-iso' errored: ISO download failed.

 

==> Some builds didn't complete successfully and had errors:

--> virtualbox-iso: ISO download failed.

 

==> Builds finished but no artifacts were created.

 

Solution


Method 1: Configuration File Replacement

We have created a custom JSON configuration file that resolves the mirror issue for CentOS 7 v1611.

You can download the JSON file here; you may have to right-click and “save link as” a JSON extension file. Also note, you will have to save/rename this JSON file as neuron-solo-variables.json.

 

Using this file, navigate to your Packer Script builder directory, usually this is found in the following path:

<PATH>\ThingWorx-Analytics-Server-Standalone\components\vm-builder\neuron-vm-builder

 

Copy the new JSON file into this directory, and replace the current existing copy.

You can now re-run the Packer Script for your desired Virtual Machine Appliance output.

 

Method 2: Manual Configuration File Adjustment

 

You will have to locate an active mirror for CentOS 7. A list of current active mirrors can be found here. When selecting a mirror, you will need to select the Minimal ISO install, as this is the base image that is used for the VM creation.

Next, you will have to open the current neuron-solo-variables.json configuration file located in the <PATH>\ThingWorx-Analytics-Server-Standalone\components\vm-builder\neuron-vm-builder directory.

 

You will have to replace the os_image_download_url value with an active Mirror URL from the list above.

Next, for the os_iso_md5_checksum variable, you will need to replace the entry with the new SHA256 checksum from CentOS, which can be located here.

 

Default Settings:

1.png

 

New Settings:

2.png

 

Save changes and close the neuron-solo-variables.json configuration file.

 

CentOS has switched over from MD5 to SHA256 checksums. Even though in the following the variable name has “MD5” in the string, we will be modifying a second JSON configuration file to address this.

 

In the same directory that we are currently working in, open the neuron-solo.json configuration file.

 

You will need to modify the attribute iso_checksum_type to sha256

 

Default Settings:

3.png

 

New Settings:

4.png

 

Save changes and close the neuron-solo.json configuration file.

 

You can now re-run the Packer Script for your desired Virtual Machine Appliance output.