Skip to main content

By clicking Submit, you agree to the developerWorks terms of use.

The first time you sign into developerWorks, a profile is created for you. Select information in your profile (name, country/region, and company) is displayed to the public and will accompany any content you post. You may update your IBM account at any time.

All information submitted is secure.

  • Close [x]

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerworks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

By clicking Submit, you agree to the developerWorks terms of use.

All information submitted is secure.

  • Close [x]

IBM SmartCloud Enterprise management, Part 4: Create images with ICCT

Alex Amies (aamies@cn.ibm.com), Senior Software Engineer, IBM
Alex Amies photo
Alex Amies is a senior software engineer in the IBM GTS Development Lab in the China development lab. He is currently an architect working on the design of the IBM SmartCloud Enterprise. Previously, he acted as an architect and a developer on cloud and security products in other groups within IBM.
Alexei Karve (karve@us.ibm.com), Senior Software Engineer, IBM
Alexei Karve is a senior software engineer in the IBM Thomas J Watson Research Center. He is a member of the SmartCloud Enterprise design team focussing on software bundles and VPN/VLAN for the cloud business support systems. Alexei's experience includes broad experience with operational support services, virtualization, and Tivoli Provisioning Manager. He has a long and varied past in the system management area since joining IBM in 1993.
Scott Peddle (peddle@ca.ibm.com), Advisory Software Developer, IBM
Photo of Scott Peddle
Scott Peddle is an advisory software developer on the IBM SmartCloud Enterprise. Scott leads projects focusing on integration of Rational Asset Manager within a cloud environment. Scott's experience includes leading a project for integration of WebSphere BPM tools, such as WebSphere Business Modeler and WebSphere Integration Developer via Rational Asset Manager. Scott also was a release engineer for Rational design and construction products, such as Rational Software Architect and Rational Application Developer.
Hidayatullah Shaikh (hshaikh@us.ibm.com), Senior Technical Staff Member, IBM
Shaikh is an IBM Master Inventor and technical lead of the Business Support Systems for IBM SmartCloud Enterprise and Enterprise+ offerings, based in the United States.
Qiangguo Tong (tongqg@cn.ibm.com), Advisory Software Engineer, IBM
Qiang Guo Tong joined IBM in 2004. He is one of the IBM SmartCloud Enterprise development team leaders responsible for creation of new features. He is also the globalization enablement solution architect of SmartCloud. His technical expertise is both globalization and also JavaEE technologies. He has over 8 years web application development experience based on the JavaEE architecture and focusing on web 2.0 technologies such as Dojo, JSON-RPC.
Pan Xia Zou (zoupx@cn.ibm.com), Staff Software Engineer, IBM
Pan Xia Zou is staff software engineer at IBM and works as a build and deployment automation architect for IBM SmartCloud Enterprise.

Summary:  A software bundle is a collection of software installation files, configuration files, and metadata that can be deployed on a virtual machine instance. In this final article, the authors describe the three mechanisms to create images using the IBM Image Construction and Composition Tool (ICCT) to capture a customized image, and the mechanism to manually add a dependency between an image and a software bundle by updating the semantic topology file.

The ICCT performs bookkeeping tasks and provides a step-by-step process and a graphical interface to conveniently create software bundles, customize virtual machine instances, and capture images. This series shows how to use ICCT to create a software bundle, then register and maintain it on IBM SmartCloud Enterprise.

View more content in this series

Date:  10 Jan 2013
Level:  Intermediate PDF:  A4 and Letter (1859 KB | 34 pages)Get Adobe® Reader®
Also available in:   Chinese  Vietnamese

Activity:  4183 views
Comments:  

Previous articles in this series covered the creation and maintenance of software bundles in SmartCloud Enterprise Asset Catalog using ICCT. The articles also covered creating a simple image using ICCT with a software bundle. This article dives deeper into different ways to create an image with software bundles. It illustrates three mechanisms for creating images using ICCT to capture a customized image with XAMPP. It also shows how to manually add a dependency between an image and a software bundle by updating the semantic topology file.

Three mechanisms are described to create an image design — a recipe using ICCT that uses the XAMPP software bundle created in Part 3, together with the dependent Google Chrome software bundle to create new images:

  • Apply an image design template/recipe to a base image on another datacenter.
  • Extend a base image.
  • Extend a custom image that was previously captured using ICCT.

Using a template to extend an image

To apply an image design template to a base image on another datacenter:

  1. Create a new cloud provider for the Raleigh- RTP datacenter.

    Figure 1. Create a new cloud provider
    Create a new cloud provider

    We previously created a private customized image with Google Chrome using the SmartCloud Enterprise_Ehningen cloud provider. That image is used here as a template to reapply the same recipe to the base image in this SmartCloud Raleigh datacenter. XAMPP is also added to the previous recipe.

  2. Select SCE_Raleigh as the cloud provider in the drop-down menu on the top-right of the ICCT user interface.

    Figure 2. Select a cloud provider
    Select a cloud provider

  3. Restrict the search to Red Hat Enterprise Linux 6 and import the Red Hat Enterprise Linux 6 (64-bit)(RTP) using the Images drop-down.

    Figure 3. Import images from cloud provider
    Impor images from cloud provider

  4. Click the + icon to create a new image.

    Figure 4. Create new image RHEL6WithGCandXAMPP
    Create new image RHEL6WithGCandXAMPP

  5. Use the previously created image with Google Chrome as the template to create the new image. Select the RHEL6WithGoogleChrome as the template and click Next.

    Figure 5. Selecting RHEL6WithGoogleChrome as the template
     Selecting RHEL6WithGoogleChrome as the template

  6. Apply the previously selected template to a base image from RTP. Select the Red Hat Enterprise Linux 6 (64-bit) RTP as the base and click Next.

    Figure 6. Select a base image
    Select a base image

  7. The summary page is displayed. Note GoogleChrome is already applied from the template under Additional Software Bundles. Click Done.

    Figure 7. New image summary
    New image summary

  8. Figure 8 shows the new image.

    Figure 8. New image created from template
    New image created from template

  9. Expand Software Bundles. Since a previous design already included Google Chrome, the new private image already has the recipe for Google Chrome included. Note that it is yellow, indicating that it is not installed on the image, but the recipe is included. Now you need to add the XAMPP software bundle.
  10. Click the pencil icon. Click Add Bundle, select the XAMPP bundle, and click Add.

    Figure 9. Add XAMPP bundle to image
    Add XAMPP bundle to image

  11. Figure 10 shows the added bundle.

    Figure 10. XAMPP bundle added to image
    XAMPP bundle added to image

  12. Expand XAMPP Software Bundle, Install, and Deploy Parameters. You can see the default values provided for the Archive Name and Apache Web Server Port. Also see the unlocked icon on the right side of the Apache Web Server Port as Deploy parameter. You want this unlocked so that it is exposed in SmartCloud Enterprise Portal through the parameters.xml and is available to change during deployment.
  13. Click Save. This saves the image design/recipe locally on the ICCT Virtual Machine.

    At this point you can synchronize and capture this image in the Raleigh datacenter. You can also, of course, use this same mechanism to apply the template/recipe to an image in the same Ehningen datacenter or any other datacenter through a relevant cloud provider. This feature is useful for migrating images with software bundles between datacenters without having to export and import the images. This can also be applied to any relevant operating system — SUSE Linux Enterprise Server or Red Hat Enterprise Linux image — with applicable architecture that was indicated as dependency in the software bundle. We applied the same recipe to the Red Hat 6.2 64 bit Base Image in Ehningen datacenter and proceeded to synchronize.

  14. The License Agreement is displayed. Click I agree and Done.

    Figure 11. Agree to license agreement
     Agree to  license agreement

    The status changes from Out of Sync to Synchronizing and waits for a temporary VM instance to be created and started by SmartCloud.

  15. After the instance is active, check the software bundles grid for the instance. Because of a bug in the pre-release version of ICCT, it shows the Google Chrome bundle twice. This should be fixed in the released version.

    Figure 12. RHEL6WithGCandXAMPP in instance tab
    RHEL6WithGCandXAMPP in instance tab

  16. Use the REST API to delete the extra association to the Google Chrome software bundle. Use your correct userid and password in requests below. Note that you need to do this only if you see the extra association.
curl -k -H 'Accept: application/json' -u <userid>:<password> 
https://www-147.ibm.com/computecloud/enterprise/api/rest/20100331/
instances/211835/swbundle
{"SwBundleInstanceDetails":[{"SwBundleNum":1,"SwBundleName":"GoogleChrome",
"SwBundlePricingDetails":{"rate":0,"unitOfMeasure":"UHR","countryCode":"897","
effectiveDate":1313107200000,"currencyCode":"USD","pricePerQuantity":1},
"SwBundleDescription":"Install Latest Google Chrome using yum","SwBundleState":"1",
"name":"211835","id":"2909","description":"GoogleChrome installed"},{"SwBundleNum":2,
"SwBundleName":"GoogleChrome","SwBundlePricingDetails":{"rate":0,"unitOfMeasure":"UHR",
"countryCode":"897","effectiveDate":1313107200000,"currencyCode":"USD",
"pricePerQuantity":1},"SwBundleDescription":"Install Latest Google Chrome using yum"
,"SwBundleState":"1","name":"211835","id":"2909","description":"GoogleChrome installed"},
{"SwBundleNum":1,"SwBundleName":"XAMPP","SwBundlePricingDetails":
{"rate":0,"unitOfMeasure":"UHR","countryCode":"897","effectiveDate":
1313107200000,"currencyCode":"USD","pricePerQuantity":1},"SwBundleDescription":
"An easy to install Apache distribution containing MySQL, 
PHP and Perl.","SwBundleState":"1","name":"211835","id":"3555",
"description":"XAMPP installed"}]}

  1. Delete the second association to Google Chrome. Note the id and SwBundleNum and use it in request with action=disassociateSWBundle below.
    curl -k -H 'Accept: application/json' -X PUT -u 
    <userid>:<password> -d "action=disassociateSWBundle&
    swBundleId=2909&swBundleNum=2" https://www-147.ibm.com/computecloud/
    enterprise/api/rest/20100331/instances/211835
    

    It returns:

    {"success":true}
    

    Notice that the request to retrieve the association of SWBundle to this instance has the SwBundleState=3, which means it is deleted.

    curl -k -H 'Accept: application/json' 
    -u <userid>:<password
    > https://www-147.ibm.com/computecloud/enterprise/api/rest/
    20100331/instances/211835/swbundle
    {"SwBundleInstanceDetails":[
    {"SwBundleNum":1,"SwBundleName":"GoogleChrome","SwBundlePricingDetails":
    {"rate":0,"unitOfMeasure":"UHR","countryCode":"897","effectiveDate":1313107200000,
    "currencyCode":"USD","pricePerQuantity":1},"SwBundleDescription":"Install Latest 
    Google Chrome using yum","SwBundleState":"1","name":"211835","id":"2909",
    "description":"GoogleChrome installed"},
    {"SwBundleNum":2,"SwBundleName":"GoogleChrome","SwBundlePricingDetails":
    {"rate":0,"unitOfMeasure":"UHR","countryCode":"897","effectiveDate":1313107200000,
    "currencyCode":"USD","pricePerQuantity":1},"SwBundleDescription":"Install Latest 
    Google Chrome using yum","SwBundleState":"3","name":"211835","id":"2909",
    "description":"GoogleChrome installed"},
    {"SwBundleNum":1,"SwBundleName":"XAMPP","SwBundlePricingDetails":{"rate":0,
    "unitOfMeasure":"UHR","countryCode":"897","effectiveDate":1313107200000,
    "currencyCode":"USD","pricePerQuantity":1},"SwBundleDescription":"An easy 
    to install Apache distribution containing MySQL, PHP and Perl.","SwBundleState":"1",
    "name":"211835","id":"3555","description":"XAMPP installed"}]}
    

  2. Click Control Panel and select the instance. This time it shows only one association to Google Chrome software bundle.

    Figure 13. Instance showing the software bundles in grid
    Instance showing the software bundles in grid

  3. After ICCT is finished installing the software bundles successfully, the status shows "Synchronized". ICCT shows that everything was successful if your script returned a 0. You should still manually verify. Login to this temporary instance as idcuser and check that Google Chrome and XAMPP are installed by looking for the /opt/google and the /opt/lampp directories. You can also start and verify that the applications work. If they are not installed or do not work, check the logs by logging to your ICCT VM at /drouter/ramdisk2/mnt/raid-volume/raid0/logs/trace.log. It should indicate the error.

    You can manually install if something failed or your install script had an error but did not return a non-zero value. ICCT copies all installer, config, and reset files you provided into the /tmp folder on the temporary instance. You can check the installer files in the /tmp/IconExecutionPackage* directory.

    For example, the following shows the packages that ICCT runs in the temporary directory.

    [idcuser@vhost4180 IconExecutionPackagea7791a5b-955e-4f5a-b879-561aa636ac3a]$ ls
    activate.txt com.apache.xampp_1.0.0 com.ibm.icon.abstraction.cc_1.0.0.0  
    IconImageSynchronizer.zip
    cloud-startup3.txt com.google.chrome_1.0.0  
    IconImageSynchronizer.sh rule_template.xml
    

  4. You can see /tmp/IconExecutionPackagea7791a5b-955e-4f5a-b879-561aa636ac3a/com.apache.xampp_1.0.0/execution/installXAMPP.sh. If something is wrong in any script, fix it and run it manually so you can continue working with this instance. Note that any such manual fix requires you to fix the software bundle asset in Rational Asset Manager and the relevant install scripts cached in the ICCT instance by searching for the erroneous file in the /drouter directory and making the same fixes.
  5. When everything looks correct, click the Capture icon in ICCT. This captures a customized image with Google Chrome and XAMPP installed and deletes the temporary instance. The status in ICCT changes to Completed Capture Complete. Now you can use this captured customized image to create additional instances. The notifications are displayed on the SmartCloud Enterprise Portal Overview tab.

    Figure 14. Compiled notifications of creating image from RHEL6WithGCandXAMPP
    Compiled notifications of creating image from  RHEL6WithGCandXAMPP

To see the new image RHEL6WithGCandXAMPP with both the GoogleChrome and XAMPP software bundles:

  1. Click the Images tab on SmartCloud Enterprise Portal Control Panel.

    Figure 15. RHEL6WithGCandXAMPP image in images tab
    RHEL6WithGCandXAMPP image in images tab

  2. Verify the asset in Rational Asset Manager and check the two associated software bundles in the semantic topology file rhel62-x64.topology in the Template Topology Asset for RHEL6WithGCandXAMPP.

    Figure 16. RHEL6WithGCandXAMPP image in Rational Asset Manager
    RHEL6WithGCandXAMPP image in RAM interface

    It shows the software bundles associated with the requirements and dependencies and also lists the products installed. Listed below are the software bundles ICCT added in the topology file.

    <core:extendedAttribute uuid="_2VJVg3nsEeGp3r7QPxS4HQ" name="bundleName">
    <core:data xsi:type="xsd:string" uuid="_QpUHvXnaEeGp3r7QPxS4HQ"
    >GoogleChrome</core:data>
    </core:extendedAttribute>
    <core:extendedAttribute uuid="_2VJVhHnsEeGp3r7QPxS4HQ" 
    name="bundleRepoId">
    <core:data xsi:type="xsd:string" uuid="_QpUHv3naEeGp3r7QPxS4HQ">
    ryo-asset://07356E0D-3868-1709-0F95-AD9FF0355FF4_1.0.0
    @https://www-147.ibm.com/cloud/enterprise/ram.ws</core:data>
    </core:extendedAttribute>
    
    <core:extendedAttribute uuid="_2VJVg3nsEeGp3r7QPxS4HQ" name="bundleName">
    <core:data xsi:type="xsd:string" uuid="_QpUH-3naEeGp3r7QPxS4HQ">
    XAMPP</core:data>
    </core:extendedAttribute>
    <core:extendedAttribute uuid="_2VJVhHnsEeGp3r7QPxS4HQ" 
    name="bundleRepoId">
    <core:data xsi:type="xsd:string" uuid="_QpUH_HnaEeGp3r7QPxS4HQ">ryo-asset:
    //842DE67C-2E85-70B4-318A-940EC239D44E_1.0.0
    @https://www-147.ibm.com/cloud/enterprise/ram.ws</core:data>
    </core:extendedAttribute>
    

  3. When you place an order for an instance of this image, you see both bundles.

    Figure 17. Add instance from image RHEL6WithGCandXAMPP
    Add instance from image  RHEL6WithGCandXAMPP

  4. The configuration script configureXAMPPPort.sh that you added earlier to the software bundle runs when the instance is created. Set up the instance to use the port you entered.

    Figure 18. Specify a port for instance
    Specify a port for instance

  5. Check that the request http://<yourinstanceHostName>:8081 works. If your XAMPP Apache Web Server does not respond as expected, you can check the logs in the /opt/ibm/ae/log/trace.log and /opt/ibm/ae/AR directory. Also check the scripts in the /opt/ibm/ae/AL directory.

To delete the customized image captured by ICCT, remove the meta data from ICCT and delete the image from SmartCloud:

  1. Select the image in ICCT and click the red X icon on the right pane.

    Figure 19. Deleting RHEL6WithGCandXAMPP in ICCT
    Deleting RHEL6WithGCandXAMPP in ICCT

  2. Click Yes to confirm and remove the metadata for the customized Image from ICCT.

    Figure 20. Confirm deletion of RHEL6WithGCandXAMPP in ICCT
    Confirm deletion of  RHEL6WithGCandXAMPP in ICCT

  3. Go back to the SmartCloud Portal and delete the image from SmartCloud Portal, or use the SmartCloud REST API or command line API to delete the image from SmartCloud.

    Figure 21. Delete image RHEL6WithGCandXAMPP in SmartCloud
     Delete image RHEL6WithGCandXAMPP in SmartCloud


Extending the base image

Switch back to the Ehningen datacenter in the drop-down. These steps describe the second way to extend the base image directly with both software bundles and dependencies.

  1. Select Red Hat Enterprise Linux 6 (64-bit) and click the Extend (double CD) icon in the right pane.

    Figure 22. Extend image
    Extend an image

  2. Enter the information and click Create.
  3. To see how ICCT helps with unsatisfied dependencies and bundle order, click the pencil icon add the XAMPP software bundle.

    Figure 23. Add bundle to image
    Add bundle to image

  4. Click Add and then click Save. A warning message is displayed in the Validation Status because the dependency on required Google Chrome software bundle is not satisfied.

    Figure 24. Validation status
    Validation status

  5. The bundle dependencies can be satisfied in two ways. Either the original image can have the required products or software bundles pre-installed, or additional required software bundles that provide the capabilities can be added and installed. In this case (the second example), the base image does not have Google Chrome, so you need to add it. In the third example that is demonstrated later, Google Chrome is pre-installed on the customized image used as the base image, so Google Chrome software bundle does not need to be added separately. In the first example described previously, the template added the dependent Google Chrome software bundle.

    Figure 25. Problem details
    Problem details why bundle requirement is not satisfied

  6. The problem details shows the com.google.chrome software bundle is required. Add the bundle now and click Save.

    Figure 26. Add GoogleChrome bundle
    Add GoogleChrome bundle

  7. Now the Validation Status shows Invalid. That is because the bundle order is invalid. You need the Google Chrome bundle installed before the XAMPP bundle.

    Figure 27. Invalid status message
    Invalid status message: Build order is invalid

  8. Hover over the XAMPP and click move down arrow to fix the order. Click Save.

    Figure 28. Bundle XAMPP added successfully
    Bundle XAMPP added successfully

  9. The warning should go away and the Validation Status show "Valid". Expand XAMPP and lock the port to 8081.

    Figure 29. Expand XAMPP
    Expand XAMPP

  10. Click Save. A temporary instance is created and ICCT shows synchronized. After it is synchronized, you see 8081 as the locked port.
  11. Login to the temporary instance and check the directories to make sure that Google Chrome and XAMPP are installed. Also note the single IconEcecutionPackage in the /tmp folder that installed both the software bundles and the activation scripts for both in the /opt/ibm/ae/AS folders.
    [idcuser@vhost4214 ~]$ ls /opt/lampp/
    bin error htdocs lampp libexec logs phpmyadmin sbin tmp
    cgi-bin etc icons lib licenses modules RELEASENOTES share var
    [idcuser@vhost4214 ~]$ ls /opt/google/
    chrome
    [idcuser@vhost4214 ~]$ ls /tmp
    backup rule_template.xml
    IconExecutionPackageada25d26-cf27-4791-bbd1-20161e13748b
    [idcuser@vhost4214 ~]$ ls /opt/ibm/ae/AS
    com.apache.xampp_1.0.0 com.ibm.icon.abstraction.cc_1.0.0.0 ConfigIcon.py
    

  12. This has the same problem — Google Chrome is associated to the instance twice. You can delete the second association or ignore it. Click Capture to capture an image that can be used to provision additional instances. The captured image has the correct associations regardless of whether you delete the extra association from the instance or not. ICCT updated the topology file in Rational Asset Manager correctly so that the associations appear with the image.
  13. You can also check the parameters.xml in Rational Asset Manager. It shows the new Apache Web Server Port exposed as a parameter that is visible during provisioning.

    Figure 30. parameters.xml in RAM
    parameters.xml in RAM

  14. When you provision new instances with this customized image, you should be able to request http://<instancehostname>:<selectedport> from a browser, receive the standard response from XAMPP, and browse the pages.

    Figure 31. View XAMPP
    View XAMPP


Extending a previously customized image

Again, select the Ehningen datacenter where you previously created the customized image with Google Chrome using ICCT. Extend this customized image further using ICCT. Since this image already has Google Chrome, you only need to add XAMPP.

  1. Select the RHEL6WithGoogleChrome image and click the Double CD icon (Extend) on the right pane.

    Figure 32. Select the image to extend
     Select the image to extend

    Similar to the case where you used the template, this time Google Chrome is already present. However, note the color of the Google Chrome icon is green, indicating that it is already installed, as opposed to the yellow icon in the template case.

  2. Enter the information in the Extend an Image window and click Create. Click the Pencil icon to edit RHEL6WithGCAndXAMPP3.

    Figure 33. Extend image RHEL6WithGoogleChrome
    Extend image  RHEL6WithGoogleChrome

  3. Click Add Bundle and select the XAMPP software bundle check box to add it.

    Figure 34. Add bundle XAMPP to image RHEL6WithGoogleChrome
    Add bundle XAMPP to image  RHEL6WithGoogleChrome

  4. Expand the XAMPP software bundle Deploy Parameters, as shown in Figure 35. Note that you set the Deploy Parameter to port 8081 and locked it.

    Figure 35. Port 8081 is locked
    Port 8081 is locked

  5. Click Save and Synchronize. Check-mark the License Agreement and click Done.
  6. Refresh the ICCT. Check that it shows Synchronized. Look up the temporary instance IP address on the SmartCloud Portal. Login to the temporary instance and check that /opt/lampp/lampp is present. Also check that /opt/ibm/ae/AS/com.apache.xampp_1.0.0/activation/ConfigurePort/configureXAMPPPort.sh is present. This runs during instance deployment after the captured image is deployed. Note that the /tmp has two IconExecutionPackage* directories. One is the old one created when the Google Chrome bundle was installed. The second is for the XAMPP software bundle that is being installed.
  7. If all looks okay, click the Capture icon in the right pane in the ICCT GUI. An image is captured and the temporary instance is deleted. You can use the captured image to create more instances.

    Figure 36. RHEL6WithGCandXAMPP3 image in Images tab
    RHEL6WithGCandXAMPP3 image in Images tab

Note that the port is locked to 8081. When you deploy, this parameter should not be available for configuration in the SmartCloud Portal. You might expect the instances to be created with fixed 8081 as the Apache Web Server port. However, in the current 2.0 release, SmartCloud does not directly support read-only parameters in parameters.xml, so you can change the port during provisioning and locking does not have any effect. Any locking using this mechanism with parameters.xml leaves parameters open to alteration by a user who manually edits parameters.xml directly in RAM Template topology asset.

If the image designer wants to hard code the port, it needs to be done manually. To ignore the port parameter and just hard code it before doing the capture using ICCT, update the configuration script created for the XAMPP software bundle /opt/ibm/ae/AS/com.apache.xampp_1.0.0/activation/ConfigurePort/configureXAMPPPort.sh on the temporary instance after the synchronize. That prevents any changes in parameters.xml from affecting the locked port.

Check that the image shows both software bundles. You need to refresh the Instances tab in the SmartCloud Portal after ICCT completes the capture and shows status "Completed: Capture Complete". Locking a parameter value in ICCT should prevent the need for a user to enter it for deployment.

You can also update the image asset to add a link in the GettingStarted.html page in Rational Asset catalog to allow directly connecting to XAMPP on port 8081 from the Instance tab after the instance is selected. By including this tag, SmartCloud Portal automatically includes the host name and opens the URL in a new browser tab when the user clicks the XAMPP Index page link.

<a onclick="javascript:ibmcloud.common.controlOpen
('http', 8081, '/xampp/index.php')" 
href="#">XAMPP Index page</a>


Updating topology file to associate software bundles

After using ICCT and demonstrating the three mechanisms for capturing images, lets get back to the original image clone RHEL6.2WithLampAndGoogleChrome, which was created in a previous article.

Although you installed XAMPP on this, you noticed that it only showed Google Chrome in the software bundles grid in the Images tab when you selected that image. That is because you did not update the asset with the dependency on XAMPP software bundle because you did not have any such bundle at that time. You can leave it as is, or for completeness, now that you have the XAMPP bundle, you can add this dependency. Since the association to the software bundle does not do any provisioning time changes to the instance, the association is essentially for viewing. You can edit the content for Template Topology Asset in Rational Asset Manager. Update the Semantic topology file Rhel6.1_x64.topology with the following section below the core:unit section for Google Chrome (near the bottom of the topology file).


Figure 37. Topology file location in RAM
 Topology file location in RAM UI
<core:unit uuid="_mw5dOnzaEeGp3r7QPxS4HQ" 
name="xamppbundle" goalInstallState="installed" initInstallState="installed">
<core:capability uuid="_mw5dO3zaEeGp3r7QPxS4HQ" 
name="cap" linkType="any">
<core:extendedAttribute uuid="_qhXYcXzsEeGp3r7QPxS4HQ" 
name="symbolicName">
<core:data xsi:type="xsd:string" 
uuid="_mw5dPHzaEeGp3r7QPxS4HQ">com.apache.xampp</core:data>
</core:extendedAttribute>
<core:extendedAttribute uuid="_qhXYcnzsEeGp3r7QPxS4HQ" 
name="version">
<core:data xsi:type="xsd:string" 
uuid="_mw5dPXzaEeGp3r7QPxS4HQ">1.0.0</core:data>
</core:extendedAttribute>
<core:extendedAttribute 
uuid="_qhXYc3zsEeGp3r7QPxS4HQ" name="bundleName">
<core:data xsi:type="xsd:string" 
uuid="_mw5dPnzaEeGp3r7QPxS4HQ">XAMPP</core:data>
</core:extendedAttribute>
<core:extendedAttribute 
uuid="_qhXYdHzsEeGp3r7QPxS4HQ" name="bundleRepoId">
<core:data xsi:type="xsd:string" 
uuid="_mw5dP3zaEeGp3r7QPxS4HQ"
>ryo-asset://842DE67C-2E85-70B4-318A-940EC239D44E_1.0.0
@https://www-147.ibm.com/cloud/enterprise/ram.ws</core:data>
</core:extendedAttribute>
</core:capability>
</core:unit>

Go back to the Control Panel or refresh it if you have a different window open. Note that the same imageId 20047812 displays XAMPP in the software bundles grid. This illustrates that you can use a combination of both approaches for the same image: ICCT and manual.

You did not add any products or any dependency between the XAMPP and the Google Chrome software bundles. Adding these using the genericsoftware:unit.softwareInstallUnit with changes to the server:unit.serverUnit, os:unit.operatingSystemUnit, core:unit, core:requirement, core:link.member tags is fairly complicated and best left to the ICCT tool. You can look at the topology file that the ICCT tool creates when creating the image with both bundles installed for more details.


Figure 38. RHEL6.2WithLampAndGoogleChrome image in Images tab
RHEL6.2WithLampAndGoogleChrome image in Images tab

Both the name and description of an image can be updated in IBM Rational Asset Catalog after the image has been captured. However, as of this writing, the name and description of software bundles cannot be updated.


In conclusion

In this article series, you learned how to clone and modify a Rational Asset Manager asset for customized provisioning using ICCT on IBM SmartCloud Enterprise by walking through a simple example. You also learned three mechanisms to create an image design:

  • Apply an image design template/recipe to a base image on another datacenter.
  • Extend a base image.
  • Extend a custom image that was previously captured using ICCT.

Resources

Learn

Get products and technologies

  • Evaluate IBM products in the way that suits you best: Download a product trial, try a product online, use a product in a cloud environment, or spend a few hours in the SOA Sandbox learning how to implement service-oriented architecture efficiently.

Discuss

  • Get involved in the developerWorks community. Connect with other developerWorks users while exploring the developer-driven blogs, forums, groups, and wikis.

About the authors

Alex Amies photo

Alex Amies is a senior software engineer in the IBM GTS Development Lab in the China development lab. He is currently an architect working on the design of the IBM SmartCloud Enterprise. Previously, he acted as an architect and a developer on cloud and security products in other groups within IBM.

Alexei Karve is a senior software engineer in the IBM Thomas J Watson Research Center. He is a member of the SmartCloud Enterprise design team focussing on software bundles and VPN/VLAN for the cloud business support systems. Alexei's experience includes broad experience with operational support services, virtualization, and Tivoli Provisioning Manager. He has a long and varied past in the system management area since joining IBM in 1993.

Photo of Scott Peddle

Scott Peddle is an advisory software developer on the IBM SmartCloud Enterprise. Scott leads projects focusing on integration of Rational Asset Manager within a cloud environment. Scott's experience includes leading a project for integration of WebSphere BPM tools, such as WebSphere Business Modeler and WebSphere Integration Developer via Rational Asset Manager. Scott also was a release engineer for Rational design and construction products, such as Rational Software Architect and Rational Application Developer.

Shaikh is an IBM Master Inventor and technical lead of the Business Support Systems for IBM SmartCloud Enterprise and Enterprise+ offerings, based in the United States.

Qiang Guo Tong joined IBM in 2004. He is one of the IBM SmartCloud Enterprise development team leaders responsible for creation of new features. He is also the globalization enablement solution architect of SmartCloud. His technical expertise is both globalization and also JavaEE technologies. He has over 8 years web application development experience based on the JavaEE architecture and focusing on web 2.0 technologies such as Dojo, JSON-RPC.

Pan Xia Zou is staff software engineer at IBM and works as a build and deployment automation architect for IBM SmartCloud Enterprise.

Report abuse help

Report abuse

Thank you. This entry has been flagged for moderator attention.


Report abuse help

Report abuse

Report abuse submission failed. Please try again later.


developerWorks: Sign in


Need an IBM ID?
Forgot your IBM ID?


Forgot your password?
Change your password

By clicking Submit, you agree to the developerWorks terms of use.

 


The first time you sign into developerWorks, a profile is created for you. Select information in your profile (name, country/region, and company) is displayed to the public and will accompany any content you post. You may update your IBM account at any time.

Choose your display name

The first time you sign in to developerWorks, a profile is created for you, so you need to choose a display name. Your display name accompanies the content you post on developerWorks.

Please choose a display name between 3-31 characters. Your display name must be unique in the developerWorks community and should not be your email address for privacy reasons.

(Must be between 3 – 31 characters.)

By clicking Submit, you agree to the developerWorks terms of use.

 


Rate this article

Comments

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=1
Zone=Cloud computing, Rational
ArticleID=854507
ArticleTitle=IBM SmartCloud Enterprise management, Part 4: Create images with ICCT
publish-date=01102013