In order to handle disparate requests that may be required to service its components, VIA deploys multiple services. Each service has a specific goal, and is instantiated based on the state of the imaging activity.

Bundle Inventory Service

VIA deploys the bundle inventory service before starting an imaging activity. The service creates a bundle inventory using all the information in the bundle manifest. It ensures that the software bundle contains the files listed in the manifest and lists the manufacturer and hardware for which the bundle can be used.

The bundle inventory service includes a bundle manager and bundle controller. They manage the software bundles, mount the active bundle to be used for an imaging run, and set up TFTP and PXE Linux configuration to image the servers.

Device Manifest Service

The device manifest service creates a new manifest file when an imaging activity is performed for the first time. It also tracks changes to the device status and stores hardware information for the rack components.

Imaging Service

The imaging service can start, stop, or cancel an imaging run. It tracks the imaging workflow and maintains the state of the imaging run as well as details about the device being imaged. Details being tracked include the IP address of the device, imaging task being performed, status of the imaging task, and completion time of the imaging task.

DHCP Service

VIA deploys the DHCP service before starting an imaging run. The DHCP service discovers the physical rack components and their PXE images using the DHCP Protocol. It keeps track of the IP addresses allocated to the devices to ensure that a device can be provided with the same IP address in case it needs to be reimaged.

Cipher Service

The imaging service uses a cipher service to generate passwords to access the imaged rack components. The cipher service ensures that each imaged component is always associated with a unique password. However, all ESXi hosts have the same password.

Rack Inventory Service

The rack inventory service is deployed when the components have been successfully imaged. It collects access information for the imaged components such as connection protocol, IP address, and username and password and generates an inventory file. This inventory file is then transferred to the management switch.