This article provides an overview of the IBM Image Construction and Composition Tool and demonstrates how to create and maintain packages on the IBM SmartCloud Enterprise. Use an example to describe the steps to create a Google chrome package, including defining chrome package metadata, adding installation scripts, and registering on the SmartCloud Enterprise. You should have a basic understanding of the basic concepts of cloud computing. To try the steps in this article, you need an IBM smartcloud Enterprise user account.
Image Construction and Composition Tool
The ICCT on SmartCloud is a WEB application that simplifies and automates the creation of virtual machine images. ICCT is provided as an image that can be configured on SmartCloud.
The ICCT on the SmartCloud classifies tasks performed in the virtual image lifecycle by role:
Operating system Expert role: Create an underlying image for the operating system that the Image Builder role uses as a starting point. The underlying image represents a standard OS configuration, license agreement, and security policy for an enterprise.
Software expert role: Create packages and reusable assets that contain software products and components.
Image Builder role: Collection base image and one or more packages to create a virtual image template.
Image Deployer Role: Identifies the parameters of a particular instance and deploys an instance in SmartCloud.
ICCT supports package creation, the creation and deployment phases of the virtual image lifecycle.
Now, let's explore package creation, virtual image creation, and virtual image deployment.
Package creation
Software experts have great flexibility in defining packages and choosing the granularity of packages. Packages encapsulate the installation and configuration tasks of one or more products into a simple container. ICCT helps users set dependencies, prerequisites, firewall rules, and collects scripts and binaries into a package.
Software experts must decide where to pack the installation media. All files associated with package operations are uploaded and stored in a reusable package asset in Rational Asset Manager (RAM). The directory structure of the package asset ensures that all files associated with the operation are stored in the same subdirectory. This structure prevents conflicts when the files associated with different operations have the same file name.
Packaging product installation media in a package usually means a large number of package transfers during synchronization. Product installation media can be located on an external WEB server and are available using wget or NFS.
Use the Install and Configuration tabs in ICCT to process package installation and configuration:
Install tab: Software experts can define scripts that are executed when a virtual image is built. This may include legacy product installation scripts and binaries.
Configuration tab: Software experts can define configuration scripts that can be replicated to a virtual image at build time, but not until a virtual image is deployed. These configuration scripts might include a traditional configuration script or a script to reconfigure a default that has been applied in the installation operation.
Reset Tab: Hosts a script to clean up the logs or temporary files created during synchronization. The script is run by ICCT during the capture process.
Firewall tab: Hosts many packages that provide services to remote clients; For example, IBM HTTP Server provides a WEB server. To successfully access this type of service, product installation and configuration may require network access to be enabled. Software experts must specify a collection of inbound service ports to open and allow access to the service. For example, an IBM HTTP Server package might require opening a management port (8080) and a service port (80, 443).
The key task that software experts must perform is to write installation, configuration, and reset scripts that are performed during the creation and deployment of virtual images. The ICCT dependent script completes the following operations:
Implement the installation and configuration of software and software components in the package.
Allows the package to use deployment parameters to customize the software during deployment.
Cleans up the state created during package installation and configuration before capturing a virtual image that installs the package.
ICCT relies on feedback in the script to determine whether an operation was executed successfully. Software experts must be aware that ICCT will end code 0 as a success, while other end codes are considered failures.
Virtual Image creation
After the virtual image has been formed, synchronized, and captured, it begins the virtual image lifecycle creation phase. The following steps are included:
Composition: In this step of the creation phase, a recipe called image design was fabricated as a virtual image that was created with a new name and version. Select an underlying image and one or more bundles to add to the recipe for customization.
Sync: The image design is transformed into a temporary virtual machine instance. Create a virtual machine instance and install the package. The install script that executes each package silently installs the bundled software on the temporary virtual machine. Configuration and reset scripts are replicated to the virtual machine for subsequent execution of the process.
Capture: This is the process of capturing an image that is preinstalled on a temporary instance and when a package is captured as a private image. ICCT runs the reset script on each package in the virtual image and resets the operating system so that SmartCloud completes the capture. Finally, when SmartCloud completes the capture, ICCT updates the semantic topology file in RAM.
Virtual Image Deployment
When a mapping Deployer deploys a virtual machine instance from a private image created during the creation phase, the virtual Image Lifecycle deployment phase begins. The following steps are included:
Configuration: The image Deployer assigns specific instance parameters to the virtual image that will be deployed. The image deployment parameters associated with the package, such as user ID, password, or port (which can be configured on a per-instance basis), are also collected.
Configuration: SmartCloud configures instances and virtual machines in active mode. When the operating system first starts, the package activation phase begins.
Activation: Activation Engine receives the deployment value and invokes the appropriate configuration script. Packages and their components use the values provided by the image Deployer for autonomic refactoring. Activation Engine is a ICCT component that is installed into the underlying image during the underlying image extension. ICCT expands each virtual image to include an enabling package. If not, ICCT will add an enabling package when the virtual image design is first constructed.
Figure 1 illustrates the virtual image lifecycle and the tasks that each role performs.
Figure 1. ICCT Supported virtual Image lifecycle