The present invention generally relates to software configuration, and more particularly relates to cross-configuring software with reusable software cross-configuration modules.
Cloud computing platforms and virtualization technologies enable the provisioning of computing utilities as a service. This includes, but is not limited to, infrastructure-as-a service (IaaS), platform-as-a-service (PaaS), or software-as-a-service (SaaS). Software providers, solution providers, and end-users commonly use pre-packaged software solutions that are provided as virtual images. These virtual images are pre-packaged with software that exposes a set of configuration parameters specific to certain software packages. The pre-packaged software is referred to as a composable software bundle (bundle) and represents a cloud independent description of software that captures those aspects needed to install and configure it in a virtual appliance/machine (VM). This description allows the bundle to be used to support image construction for multiple target cloud platforms. However, many distributed software applications require multiple virtual images for deployment and provisioning. Therefore, software on one virtual image generally needs to be cross-configured with software on another virtual image. Conventional configuration methods usually require a human to manually cross-configure software across multiple virtual images and even within the same virtual image. Manual cross-configuration of software is very time consuming, costly, and error prone.