Virtual images - PureApplication

+

Search Tips   |   Advanced Search

  1. Overview
  2. IBM Image Construction and Composition Tool
    1. Install
    2. Upgrade
    3. Manage
    4. Backup database
    5. Uninstall
  3. Get started
    1. The basics
    2. Universal identifiers
    3. System requirements
    4. Change user password
    5. Manage the firewall
    6. Configure cloud providers
  4. Work with virtual images
    1. Import virtual machines
    2. Import base images
    3. Build virtual images
    4. Manage software bundles
  5. Use the command-line interface
    1. Command-line interface overview
    2. Download and configure the command-line interface
    3. Invoke the command-line interface
    4. Command-line interface resource object reference
    5. Bundles reference
    6. Problem determination reference for the command-line interface
    7. Get help on the command-line interface
  • The preinstalled IBM WAS Hypervisor Edition virtual images
  • The preinstalled IBM OS Image for Red Hat Linux Systems
  • DB2 Enterprise virtual image
  • Tune the Windows Server 2008 R2 virtual image


    Work with virtual images

    Hypervisor edition images provide the operating system and product binary files required to create a virtual system instance. The IBM OS Image for Red Hat Linux Systems virtual image, for example, is preinstalled on your system. These images can be extended to customize the virtual images and the operating system. To view a virtual image, you must be granted access to the virtual image or assigned the Workload resources administration with full permissions.


    IBM Image Construction and Composition Tool

    Use the Image Construction and Composition Tool to build Open Virtualization Appliance (OVA) files that can be deployed into VMware and IBM PureApplication System clouds. The tool can be installed standalone or enabled as a virtual application in IBM PureApplication System. If you are installing the tool as a standalone application, you will only be able to create a cloud provider based on the existing set of cloud providers. To use the PureApplication System cloud provider, enable the tool as a virtual application pattern in PureApplication System.


    Install IBM Image Construction and Composition Tool on Linux

    Hardware requirements (physical or virtual)...

    • Minimum 1 CPU and 1 GB of memory
    • Suggested 2 CPUs and 2 GB of memory
    • 100 GB of disk space for building native VMware images
    • 60 GB of disk space, depending on your cloud providers

    Ensure that additional disk space is reserved for the growth of the /drouter directory. This directory is used by the tool. 100 GB is recommended. If the partition is full, you can extend it using the capabilities provided by the operating system. Ports 80 (default HTTP) and 443 must not be in use or reserved by other applications. For the VMware ESX cloud provider, ensure that the operating system ulimit for file size (-f) and data size (-d) are set to unlimited.

    Supported operating systems...

    Guest operating systems OS
    SLES 11 SP1 and SP2, 32-bit and 64-bit SLES 11 SP1 and SP2, 32-bit and 64-bit
    SLES 11 for IBM System z, 64-bit
    RHEL 5.x, RHEL 6.1
    RHEL 6.3, 32-bit and 64-bit
    RHEL 6.0, 6.1, 6.2
    RHEL 6.3, 32-bit and 64-bit.
    RHEL 6 for IBM System z, 64-bit
    Windows Server 2012 (64-bit)
    Windows 2008 R2 64-bit
    Windows 7 64-bit

    AIX V6.1 and V7.1 64-bit AIX V6.1 and V7.1 64-bit

    Minimal installations of Red Hat Enterprise Linux are not supported.


    Install on Linux

    1. Before downloading Image Construction and Composition Tool, enable the Foundation Pattern type. To enable the Foundation Pattern type, on the IBM PureApplication System Welcome page, click...

        Cloud | Pattern Types | Foundation Pattern Type 2.0.0.0 | Enable

    2. On the IBM PureApplication System Welcome page, Download the compressed file that contains the installation binary files...

        Download Tooling | Download IBM Image Construction and Composition Tool

    3. Go to the directory where the compressed file is saved and extract the compressed file. The format of the compressed file is ICCT_Install_<version>.zip.

    4. Run sh ./install

      IBM Installation Manager is installed if it is not already installed. When IBM Installation Manager is installed, it installs IBM Image Construction and Composition Tool.

    5. On the Packages page, verify that IBM Image Construction and Composition Tool is selected and the version is correct. Click Next.

    6. Accept the license agreement, and click Next.

    7. Select the Shared Resources directory and click Next.

    8. Accept the default installation location, or provide a location where you want to install the tool and click Next.

      The installation location can contain English characters only.

    9. Accept the default values for the language panel. Click Next.

    10. On the Feature panel, ensure that IBM Image Construction and Composition Tool is selected. Click Next.

    11. Provide a user name and password for the Image Construction and Composition Tool instance.

      The password must be 8-12 characters and contain at least one number, one lowercase letter, and one uppercase letter. These restrictions are not automatically enforced during installation. Click Next.

    12. Click Install.

    Image Construction and Composition Tool is installed and the user interface is available from the following web address:

      https://<IP_address>/icn/ui/
    Use the credentials that you provided during installation to log in to the tool.


    Silent installation steps

    To install IBM Installation Manager and Image Construction and Composition Tool silently on Linux:

    1. Before downloading the tool, enable the Foundation Pattern type. To enable the Foundation Pattern type, on the IBM PureApplication System Welcome page, click...

        Cloud | Pattern Types | Foundation Pattern Type 2.0.0.0 | Enable

    2. On the IBM PureApplication System Welcome page, download the compressed file that contains the installation binary files.

        Download Tooling | Download IBM Image Construction and Composition Tool

    3. Go to the directory where the compressed file is saved and extract the compressed file. The format of the compressed file is...

        ICCT_Install_<version>.zip

    4. Open the file install.xml in a text editor and remove the following lines:

      <repository location='icon'/>
      <offering id='com.ibm.cloud.icon'/>
      

    5. In the compressed file that contains the tool binary files, open the response file...

        icon/icon_silent_install_response_file.xml

      Edit the file so that the repository location points to the icon directory in the directory where the compressed file is extracted. This directory must contain the file repository.config. For example:

      <repository location='/path/to/icon_im_repository/icon'/>
      
      If you want to change the installation directory from the default location, update the parameter installLocation to point to the location that you want by updating the following line in the file:

      <profile id="Image Construction and Composition Tools" 
                   installLocation="/opt/IBM/icon"/>
      
      The installation location can contain English characters only.

    6. Generate the encrypted password for the response file by running:

      <IM_INSTALL_DIR>/eclipse/tools/imcl encryptString<password>
      
      The password must be 8-12 characters and contain at least one number, one lowercase letter, and one uppercase letter. These restrictions are not automatically enforced during installation. For information about providing command-line arguments and encrypting passwords, see the IBM Installation Manager information center.

    7. Set the user name and password by updating the following line in the file:

      <data key='user.username,com.ibm.cloud.icon' value='admin'/>
      <data key='user.password,com.ibm.cloud.icon' value='fufgZbY47EfxLYarBAIxeQ=='/>
      <data key='user.confirmPassword,com.ibm.cloud.icon' value='fufgZbY47EfxLYarBAIxeQ=='/>
      

    8. If installing the tool on a computer where IBM Installation Manager is installed, run the following command to install the tool:

      <IM_INSTALL_DIR>/eclipse/tools/imcl input <response_file> 
                            -log <log_file> -acceptLicense
      
      where <IM_INSTALL_DIR> is the Installation Manager home directory. The default directory is /opt/IBM/InstallationManager.

    9. If installing the tool on a computer where Installation Manager is not installed, run the following command to install both Installation Manager and the tool:

      ./install --launcher.ini silent-install.ini -input <response_file> 
                              -log <log_file> -acceptLicense
      
      The install command is in the directory where the tool binary files were extracted.

    The tool is installed and is accessible from https://<IP_address>/icn/ui/. You can log in to this instance by using the credentials that were used in the response file.


    Install IBM Image Construction and Composition Tool on AIX

    Review the requirements and install the the tool using the silent installation procedure. A graphical user interface installation for AIX is not available. This silent installation is the only procedure to install Image Construction and Composition Tool on AIX. There is no option to enable the tool as a virtual application in IBM PureApplication System.


    Prerequisites


    Hardware requirements (physical or virtual)

    • Minimum requirements: 1 CPU and 1 GB of memory
    • Suggested requirements: 2 CPUs and 2 GB of memory
    • 100 GB of disk space for building native VMware images
    • 60 GB of disk space, depending on your cloud providers


    Additional requirements

    • Ensure that additional disk space is reserved for the growth of the /drouter directory. This directory is used by the tool. 100 GB is recommended. If the partition is full, you can extend it using the capabilities provided by the operating system.

    • Ports 80 (default HTTP) and 443 must not be in use or reserved by other applications.

    • For the VMware ESX cloud provider, ensure that the operating system ulimit for file size (-f) and data size (-d) are set to unlimited.


    Supported operating systems

    • AIX V6.1 or V7.1 (64-bit)


    Silent installation steps

    To install IBM Installation Manager and Image Construction and Composition Tool silently:

    1. Before downloading the tool, enable the Foundation Pattern type. To enable the Foundation Pattern type, on the IBM PureApplication System Welcome page, click...

        Cloud | Pattern Types | Foundation Pattern Type 2.0.0.0 | Enable

    2. To download the IBM Installation Manager binary files, go to http://public.dhe.ibm.com/software/rationalsdp/v7/im/15/zips/agent.installer.aix.motif.ppc_1.5.0.20110909_1200.zip.

    3. Go to the directory where the compressed file is saved and extract the compressed file.

    4. Run the following command to install IBM Installation Manager to /opt/IBM/InstallationManager/eclipse:

      ./installc -log <log_file> -acceptLicense
      
      where <log_file> is the full path and name of the log file on the Image Construction and Composition Tool server.

    5. In the compressed file that contains the tool binary files, open the response file named icon/icon_silent_install_response_file.xml. Edit the file so that the repository location points to the icon directory in the directory where the compressed file is extracted. This directory must contain the file repository.config. For example:

      <repository location='/path/to/icon_im_repository/icon'/>
      
      If you want to change the installation directory from the default location, update the parameter installLocation to point to the location that you want by updating the following line in the file:

      <profile id="Image Construction and Composition Tools" 
                   installLocation="/opt/IBM/icon"/>
      
      The installation location can contain English characters only.

    6. Replace the following lines in the response file:

      <data key='cic.selector.os' value='linux'/>
      <data key='cic.selector.ws' value='gtk'/>
      <data key='cic.selector.arch' value='x86'/>
      
      with the following lines:

      <data key='cic.selector.os' value='aix'/>
      <data key='cic.selector.arch' value='ppc64'/>
      

    7. Generate the encrypted password for the response file by running:

      <IM_INSTALL_DIR>/eclipse/tools/imcl encryptString<password>
      
      The password must be 8-12 characters and contain at least one number, one lowercase letter, and one uppercase letter. These restrictions are not automatically enforced during installation. For information about providing command-line arguments and encrypting passwords, see the IBM Installation Manager information center.

    8. If installing the tool on a computer where IBM Installation Manager is installed, run the following command to install the tool:

      <IM_INSTALL_DIR>/eclipse/tools/imcl input <response_file> 
                            -log <log_file> -acceptLicense
      
      where <IM_INSTALL_DIR> is the Installation Manager home directory. The default directory is /opt/IBM/InstallationManager.

    Image Construction and Composition Tool is installed and is accessible from https://<IP_address>/icn/ui/. You can log in to this instance by using the credentials that were used in the response file.


    Upgrade the Image Construction and Composition Tool

    Upgrade the tool using the standard upgrade procedure or using the silent upgrade procedure.


    Upgrade from a previous version

    You can upgrade from a previous version of IBM Image Construction and Composition Tool. You can also install a fix pack on top of an existing installation.

    You can upgrade Image Construction and Composition Tool directly from the latest version of the product that you are using it with, or you can get the compressed upgrade file from IBM Fix Central.


    Procedure

    1. Download and extract the compressed file to the computer where you want to upgrade or install the Image Construction and Composition Tool fix pack. The format of the compressed file is ICCT_IM_Repository_<version>.zip.

    2. Important: If you are upgrading from IBM Image Construction and Composition Tool V1.1 (with any interim fix applied) to V1.2 (no fixes applied), you must delete or move the files from the directory <ICCT_INSTALL_DIR>/license. The default value for <ICCT_INSTALL_DIR> is /opt/IBM/icon.

      For any other upgrade paths, do not delete or move these files, or you will get an error message.

    3. Start IBM Installation Manager by running <IM_INSTALL_DIR>/eclipse/IBMIM. The default value for <IM_INSTALL_DIR> is /opt/IBM/InstallationManager.

    4. Add the new repository by clicking File > Preferences in Installation Manager. The location of the new repository is <extract_dir>, where <extract_dir> is the directory where you extracted the compressed file. Ensure that the <extract_dir> is not the same directory that you used in previous installations.

    5. From the Installation Manager start page, select Update. Go through the panels to upgrade or install the fix pack.

    Image Construction and Composition Tool is upgraded to the latest version.


    Upgrade silently from a previous version

    You can upgrade silently from a previous version of IBM Image Construction and Composition Tool. You can also install a fix pack on top of an existing installation.

    If you want to upgrade from IBM Image Construction and Composition Tool V1.2.0.x to V2.2.0.x, do not use the instructions in this topic to complete the upgrade process. Instead, you must uninstall Image Construction and Composition Tool while keeping their contents of the /drouter directory, and then install Image Construction and Composition Tool V2.2.0.x, by using the existing /drouter directory.

    You can upgrade Image Construction and Composition Tool directly from the latest version of the product that you are using it with, or you can get the compressed upgrade file from IBM Fix Central.

    If Installation Manager is not installed on your system, complete the following steps before attempting to upgrade:

    1. Edit the file install.xml to remove the following two lines:

      <repository location='icon'/>
      <offering id='com.ibm.cloud.icon'/>
      

    2. Install the Installation Manager agent, ...:

      ./installc .acceptLicense
      


    Procedure

    1. Download and extract the compressed file to the computer where you want to upgrade or install the Image Construction and Composition Tool fix pack. The format of the compressed file is ICCT_IM_Repository_<version>.zip.

    2. Important: If you are upgrading from Image Construction and Composition Tool V1.1 (with any interim fix applied) to V1.2 (no fixes applied), you must delete or move the files from the directory <ICCT_INSTALL_DIR>/license. The default value for <ICCT_INSTALL_DIR> is /opt/IBM/icon.

      For any other upgrade paths, do not delete or move these files, or you will get an error message.

    3. Modify the following line in <extract_dir>/icon_silent_install_response_file.xml to point to <extract_dir>:

      <repository location='/path/to/icon_im_repository/icon'/>
      

    4. Run the following command:

      <IM_INSTALL_DIR>/eclipse/IBMIM --launcher.ini <IBM_INSTALL_DIR>/eclipse/silent-install.ini -input <extract_dir>/icon_silent_install_response_file.xml -acceptLicense
      

    Image Construction and Composition Tool is upgraded to the latest version.


    Manage the Image Construction and Composition Tool server

    You might need to start or stop the Image Construction and Composition Tool server.

    To start or stop the Image Construction and Composition Tool server, run the following commands from the directory that you specified during the installation.

    Start the server

    start.sh

    Stop the server

    stop.sh


    Backup and restore the Image Construction and Composition Tool database

    Use the following steps to back up and restore the Image Construction and Composition Tool database.


    Back up the database

    Procedure

    1. Log out from Image Construction and Composition Tool and stop the Image Construction and Composition Tool server ...:

       <ICCT-install-dir>/stop.sh
      
      For example:

      /opt/IBM/icon/stop.sh
      

    2. Back up the /drouter directory along with all its subdirectories.

    3. Optional: Start the Image Construction and Composition Tool server again by running the following command:

      <ICON-install-dir>/start.sh
      
      For example:

      /opt/IBM/icon/start.sh
      

    4. Take note of the Image Construction and Composition Tool user name and password that you use when you back up the /drouter directory.


    Restoring the database

    Procedure

    1. Log out from Image Construction and Composition Tool and stop the Image Construction and Composition Tool server ...:

       <ICCT-install-dir>/stop.sh
      
      For example:

      /opt/IBM/icon/stop.sh
      

    2. Replace the /drouter directory with the backup directory taken.

    3. Start the Image Construction and Composition Tool server again ...:

      <ICON-install-dir>/start.sh
      
      For example:

      /opt/IBM/icon/start.sh
      

    4. Log in using the same Image Construction and Composition Tool user name and password that you used when you backed up the /drouter directory.


    Uninstall the product

    You can uninstall a fix pack or uninstall IBM Image Construction and Composition Tool completely.


    Uninstall a fix pack

    About this task

    You can uninstall a fix pack to roll back to a previous maintenance level. To uninstall a fix pack:

    Procedure

    1. Start Installation Manager.
    2. Click Roll back.
    3. Select the maintenance level to be rolled back.
    4. Go through the rollback panels to uninstall the fix pack.

    Results

    The fix pack is rolled back to the maintenance level that you selected.


    Uninstall the Image Construction and Composition Tool product

    About this task

    To uninstall the Image Construction and Composition Tool:

    Procedure

    1. Export any bundles or images created with the current Image Construction and Composition Tool version. For information about exporting, see your cloud provider documentation.

    2. Stop the Image Construction and Composition Tool by running the following command:

      /opt/IBM/icct/stop.sh
      

    3. Start the uninstallation wizard ...:

      /opt/IBM/InstallationManager/eclipse/IBMIM
      

    4. After completing the wizard, remove image and bundle repositories ...:

      rm -rf /drouter/*
      


    Uninstall the Image Construction and Composition Tool silently

    About this task

    To uninstall the Image Construction and Composition Tool silently:

    Procedure

    1. Export any bundles or images created with the current Image Construction and Composition Tool version.

    2. Stop the Image Construction and Composition Tool by running the following command:

      /opt/IBM/icct/stop.sh
      

    3. Uninstall the Image Construction and Composition Tool by running the following command:

      /opt/IBM/InstallationManager/eclipse/tools/imcl uninstall com.ibm.cloud.icon
      

    4. Uninstall IBM Installation Manager ...:

      /var/ibm/InstallationManager/uninstall/uninstallc
      

    5. Remove image and bundle repositories ...:

        rm -rf /drouter/*


    Get started


    When you access the Image Construction and Composition Tool for the first time, you are prompted to create a cloud provider definition. All actions performed are based on a cloud provider.

    The Welcome page contains links to each of the main Image Construction and Composition Tool pages that provide access to the key functions of the tool. The main pages are briefly described in the following table.

    Main Image Construction and Composition Tool pages

    Page You can:
    Images

    • Import virtual images from your cloud provider
    • Create virtual images
    • Extend virtual images
    • Capture virtual images
    • Delete virtual images
    • Search for virtual images
    • Share software bundles by either importing them from or exporting them to a remote system
    • Create software bundles
    • Extend software bundles
    • Publish software bundles
    • Delete software bundles
    • Search for software bundles

    Administer

    • Configure cloud provider
    • Change password
    • Download log files


    Universal identifiers

    When you create virtual images, bundles, and other assets, you enter a unique universal identifier (ID) for the asset.

    The universal ID identifies an Image Construction and Composition Tool asset across different repositories.

    The universal ID uses an Open Service Gateway Interface (OSGI) notation, with a reverse domain name and a version in the format major.minor.macro and an optional qualifier, for example, com.ibm.images.was_1.0.0 for a WebSphere Application Server (WAS) base virtual image. In this example, the version is not the WAS version, it represents the virtual image version. In general, you can use any dotted notation to create a universal ID, for example icct.image.base.rhel56_1.0.0.

    Based on universal ID, bundles can be looked up independently from the repository in which they are stored. If there are different bundle repositories, the virtual image builder or Image Construction and Composition Tool can assume that if two assets have the same universal ID, they are identical and the tool can use either. The universal ID is required and provides a unique way of referencing an Image Construction and Composition Tool asset across several repositories.


    Universal IDs combined with version

    If you enter a universal ID with a version, you can enter the same universal ID value for multiple assets if you enter a different value in the version field.

    These values provide uniqueness to assets across repositories, allowing resources to be identified. For the universal ID value, you can use alphanumeric characters, an underscore, a dash, or a period. A period is not allowed as the first character. For version, the format is: <major>.<minor>.<micro>.<qualifier> where major, minor, and micro are all numeric and required, while qualifier is optional and can contain the same type of characters as the universal ID.


    System requirements

    Ensure that your system meets the cloud provider and browser requirements for using IBM Image Construction and Composition Tool.


    Supported versions

    Supported Image Construction and Composition Tool versions and pattern types in IBM PureApplication System

    PureApplication System version Image Construction and Composition Tool Supported as stand-alone application? Supported as virtual application?
    V1.0.0.4 V2.2.0.0 (build 26) Yes. Included in foundation pattern type V2.0.0.6. Yes. Included in Image Construction and Composition Tool pattern type V1.2.0.4.
    V1.0.0.3 V1.2.0.2 (build 28) Yes. Available on Fix Central. Yes. Available as an eFix.
    V1.0.0.2 V1.2.0.1 (build 179) Yes. Included in foundation pattern type V2.0.0.5. Yes. Included in Image Construction and Composition Tool pattern type V1.2.0.3.
    V1.0.0.1 V1.2.0.0 (build 572) Yes. Included in foundation pattern type V2.0.0.4. Yes. Included in Image Construction and Composition Tool pattern type V1.2.0.2.
    V1.0.0.0 V1.2.0.0 (build 562) Yes. Included in foundation pattern type V2.0.0.3. Yes. Included in Image Construction and Composition Tool pattern type V1.2.0.1.


    Windows targets

    Windows Server 2008 R2 (64-bit)

    Port 445 must not be blocked by firewalls.


    Operating system targets

    Supported versions

    The following table describes the operating systems that are supported by Image Construction and Composition Tool.

    Operating systems supported by Image Construction and Composition Tool

    Guest operating systems Operating system where Image Construction and Composition Tool can be installed

    SLES 11 SP1 and SP2 (32-bit and 64-bit)
    RHEL 5.x, RHEL 6.1, and 6.3, (32-bit and 64-bit) RHEL 6.0, 6.1, 6.2, and 6.3, (32-bit and 64-bit)
    Windows 2008 R2 (64-bit)

    AIX 6.1 and 7.1 (64-bit)


    VMware ESX cloud provider requirements

    Supported versions

    • VMware ESX V4.0 or V4.1
    • ESXi V4.0, V4.1, or V5.0

    The documentation uses the following terminology for the supported versions:

    • ESX server: for VMware ESX or VMware ESXi servers.
    • vCenter Server: for VMware Virtual Center or VMware vCenter servers.

    Note: The OVA images that are created by Image Construction and Composition Tool are typically deployed by using IBM PureApplication System. However, if you plan to deploy the OVA directly with VMware, VMware vCenter Server is required. OVA deployment directly to ESX is not supported.

    ESX requirements

    • The ESX hosts must be licensed. Trial versions are not supported.
    • The ESX hosts must not use resource pools.
    • VMware tools must be installed.
    • Any virtual machine that is accessed by Image Construction and Composition Tool must not contain snapshots.

    Requirements for installing Image Construction and Composition Tool as a virtual server

    • Minimum requirements: 1 CPU (physical or virtual) and 1 GB memory (physical or virtual).
    • Recommended requirements: 2 CPUs (physical or virtual) and 2 GB memory (physical or virtual).
    • 300 MB of disk space for product binary files.
    • Ports 80 (default HTTP) and 443 must not be in use or reserved by other applications.

    Additional requirements:

    • Image Construction and Composition Tool uses a read/write area known as the /drouter directory. In general, virtual images, software bundles, and logs are stored here. Additional disk space requirements vary greatly depending on which cloud providers are in use and the number of virtual images that are being created. 100 GB of disk space is recommended. When Image Construction and Composition Tool is deployed as a virtual application pattern, a disk of 100 GB is automatically allocated and mounted on your behalf. If the partition is full, you can extend it using the capabilities provided by the operating system.

    • The VMware ESX cloud provider stores all virtual images and software bundle content on the Image Construction and Composition Tool server. Estimating the amount of disk space required is directly proportionate to the number of base virtual images to be imported and created. Additional space is required for software bundle content. For example, if an installation imports eight base images consisting of four Red Hat Enterprise Linux and four SUSE Linux Enterprise images, covering 32/64 bit variations and operating system versions, each has an average size of 40 GB. Total space for eight base virtual images is 320 GB. Each base image is extended once for another eight virtual images. This amounts to 320 GB plus 320 GB totalling 640 GB. Allowing an additional average virtual image (40 GB) for working space gives 680 GB.

    The network must be configured properly for DNS. The TCP/IP DNS configuration must be configured so that both forward and reverse DNS lookups work. This is required because Image Construction and Composition Tool uses DNS lookups to find and use the host names of the deployment IP addresses entered for VMware ESX cloud providers.

    Note: These requirements are based on an SSH-enabled server. For VMware ESX, there are additional steps that you must perform to use SSH connections as the root user to the Image Construction and Composition Tool virtual machine. For more information, see the VMware Knowledge Base.


    Browser requirements

    The following browsers are supported:

    • Mozilla Firefox V10 or V11
    • Microsoft Internet Explorer V7, V8, or V9 (in V8 compatibility mode)

    Ensure that the following requirements are met:

    • JavaScript is enabled in the browser.
    • The minimum recommended screen resolution is 1024 by 768.


    User requirements

    To be able to work with Image Construction and Composition Tool in IBM PureApplication System, you must have the correct user permissions to complete the following tasks:

    • Deploy patterns into the cloud
    • Create new patterns
    • Create new catalog content

    Additionally, you require at least read access to the following items:

    • The image or images that you work with
    • The cloud group or groups that you synchronize images to
    • The environment profile or profiles that you synchronize images to


    Change your user password

    If you enabled Image Construction and Composition Tool as a virtual application pattern in PureApplication System, there is no separate user ID and password to log onto the Image Construction and Composition Tool user interface. When deployed as a virtual application pattern, Image Construction and Composition Tool uses a single sign-on model, where the user ID and password are the same as the user ID and password for the IBM PureApplication System user interface. If you installed Image Construction and Composition Tool as a standalone application, outside of PureApplication System, you can change your user password using these steps.


    Procedure

    1. Click Administer > Change password.

    2. Enter your new password in the New password field and verify it. Password requirements are:

      • Alphanumeric characters only.
      • Minimum of 8 and maximum of 20 characters.
      • At least one uppercase character.
      • At least one lowercase character.
      • At least one number.

    3. Click OK.


    Manage the firewall

    When extending an image, if you enable the firewall on the virtual machine after synchronize and before capture, ensure that the ports required for SSH communication are open for inbound and outbound traffic. Access is required for the Image Construction and Composition Tool to complete the image building process.

    For information about opening ports, see your operating system documentation.

    Redhat Linux

    cat /etc/sysconfig/iptables | grep 22

    cat /etc/sysconfig/ip6tables | grep 22

    SUSE Linux

    cat /etc/sysconfig/SuSEfirewall2 | grep 22

    AIX

    lsfilt .v 4

    Lists all of the ipv4 ports. Check if port 22 is in the list.

    lsfilt -v 6

    Lists all of the ipv6 ports. Check if port 22 is in the list.


    Configure cloud providers

    You can configure a cloud provider for Image Construction and Composition Tool.

    The first time you open Image Construction and Composition Tool, you see the Create a new cloud provider wizard. If the wizard does not open automatically, to configure the cloud provider, click...

      Administer | Manage cloud providers

    You cannot edit your cloud provider configuration after it is created.


    Configure the PureApplication System cloud provider

    You can configure IBM PureApplication System as a cloud provider. Creating a virtual image directly on an IPv6 network is not supported. If you are using the PureApplication System cloud provider, deploy Image Construction and Composition Tool on an IPv4 IP group and you must use an IPv4 IP group for your synchronized images.

    A cloud provider is a service provider that offers storage or software services on a private or public network, which is called a cloud. It means that the storage and software are available to be accessed from the internet.

    By configuring PureApplication System as a cloud provider, you make the assets from PureApplication System available for use in Image Construction and Composition Tool.

    To create a PureApplication System cloud provider in Image Construction and Composition Tool, you must wait for approximately five minutes after the cloud group is created in PureApplication System. Then, start a new Image Construction and Composition Tool session for the target cloud provider to appear in the drop-down menu.


    Procedure

    1. From the main menu of Image Construction and Composition Tool, click...

        Administer | Manage cloud providers
    2. On the Cloud Providers page, click .
    3. On the Welcome page, click Next.
    4. On the General page, specify the following details:

      • Name: Enter a name for the provider, for example, IPAS.
      • Description: Enter a description.
      • Cloud Provider Type: Select IBM PureApplication System and click Next.

    5. On the Credentials page, enter a user name and password. The user name must have access to the PureApplication System user interface and must have permissions to perform the intended actions.

      Image Construction and Composition Tool dynamically retrieves data from the cloud, based on the user information.

    6. On the Cloud details page, enter the host name or IP address of PureApplication System, then click Done to complete the process.
    7. To ensure that the user configured on the PureApplication System cloud provider has permissions to complete the required tasks in PureApplication System, you must complete the following steps on the PureApplication System user interface:

      1. Click Administration.

      2. Click Users.

      3. Select the user in the left navigation pane.

      4. In the Permissions section, ensure that the following options are selected:

        • Create new patterns
        • Create new catalog content
        • Cloud administration: Read-only view


    Configure the VMware ESX cloud provider

    You can configure VMware ESX as your cloud provider. The following requirements and limitations apply:

    • Create a virtual image directly on an IPv6 network is not supported. If you are using the VMware ESX cloud provider, you must specify IPv4 network information when you configure the cloud provider.

    You cannot edit your cloud provider configuration after it is created. The VMware ESX cloud provider does not support images in which the virtual machine has snapshots. You must remove the snapshots from the virtual machine before attempting to use the virtual machine in the Image Construction and Composition Tool. The VMware ESX cloud provider does not support ESX hosts that use resource pools.


    Procedure

    1. On the Create a new cloud provider Welcome page, click Next.

    2. On the General page, enter the name, description, and cloud provider type and click Next:

    3. On the Credentials page, enter your user name, password, and location for the VMware ESX server. The server can be either the host name or IP address.

    4. On the Cloud details dialog box, enter network information. Enter the subnet address, netmask, gateway address, primary DNS, and secondary DNS for the network to build the virtual machines. In addition, provide one or more IP addresses for the virtual machine creation:

        Deployment network name Automatically populated value.
        Datastore Automatically populated value. If there is more than one data store available, select one from the list.
        Subnet address Enter the subnet address for the configuration, for example, 92.42.78.0.
        Netmask Enter the netmask value for the configuration, for example, 255.255.255.0.
        Gateway address Enter the gateway address for configuration, for example, 92.42.78.1.
        Primary DNS Enter the primary DNS, for example, 92.42.106.2.
        Secondary DNS Enter the secondary DNS, for example, 92.42.106.2.

      To enter IP addresses or IP address ranges, click . Ensure that you add available IP addresses that can be resolved with a reverse DNS lookup. Press the Enter key after entering each IP address so that it is saved in the table. You cannot edit your cloud provider configuration after creating it, so ensure that you enter valid IP addresses. Click Next.

    5. Click Done.


    Clean up the cache on the VMware ESX server

    The Image Construction and Composition Tool data store cache on a VMware ESX server is created automatically. You must periodically remove used images from the cache to ensure that it does not grow indefinitely.

    You can manually log in to your VMware ESX server and remove used images from the cache.

    On each VMware ESX data store used by the VMware ESX cloud provider, a cache is created to speed up image synchronization. The cache is created in the datastore_path/cloudburst_cache/virtualimages/ directory. Depending on how much free space you have in the data store and how many different images you synchronize, the size of this cache can grow and reduce the free space on the data store. To free space, clean up the cache periodically.


    Procedure

    1. Ensure that the VMware ESX server is in a quiesce state. Ensure no synchronizations or new deployments to the VMware ESX server by using the VMware ESX server cloud provider are in progress.

    2. Periodically delete the subdirectories of the datastore_path/cloudburst_cache/virtualimages/ directory to clean up the cached space.


    Work with virtual images

    You can build virtual images.

    The virtual images created by the Image Construction and Composition Tool contain all the information required for specific deployment platforms to create specific deployed VM instances.

    The virtual images that you create will include the OVF file and other metadata to support PureApplication System patterns, including being able to provide configuration parameters during the pattern deployment process. The tool creates OVA-formatted virtual images, ready for import and use in PureApplication System. The OVA includes OVF extensions to be used in the PureApplication System pattern editor.

    In many organizations, virtual image creation is logically divided into two roles, although one person can perform both roles if they have the knowledge:

    Operating system specialist

    Creates the base operating system virtual images following company and cloud specifications.

    Virtual image builders

    Uses these base virtual images and adds software content, such as middleware and applications. Virtual image builders can reuse resources such as software bundles that were created by other experts. Some software bundles, for example DB2 or WAS software bundles can be specialized and complex, and the virtual image builder does not need to be involved in their creation. Instead, the virtual image builder reuses the software bundles created by the DB2 or WAS specialists and needs only to work with the parameters and configuration made available by the specialists.

    To work with virtual images, click Build and Manage Images on the Welcome page.


    Import virtual machines into Image Construction and Composition Tool

    To import a virtual machine that runs on a VMware ESX hypervisor, you must first capture the virtual machine as a base image and then import it into the tool. The VMware ESX cloud provider does not support virtual images in which the virtual machine has snapshots. You must remove the snapshots from the virtual machine before attempting to use the virtual machine in Image Construction and Composition Tool. The virtual machine (VM) that you are importing must meet the following conditions:

    • The following base operating systems are supported on the virtual machine:

      • Red Hat Enterprise Linux V6.2
      • SUSE Linux Enterprise Server V11. Note that some features, such as dynamic CPU and memory add, do not work.

    • VMware tools must be installed on the virtual machine that you are importing.

    • Python 2.5 or later must be installed on the virtual machine that you are importing.

    • The virtual machine hard disks must be of the SCSI type. IDE disk types are not supported.

    • The virtual machine hard disks must be defined as thick provisioned or VMFS flat. Disks that are defined as thin provisioned or VMFS Sparse are not supported.

    • The virtual machine hard disks must be stored with the virtual machine. They must not be in different data stores or different directories on the same data store.

    • The virtual machine hard disks must be stored under the location specified in the VMware virtual machine setting for Virtual Machine Working Location under Edit Settings > Options tab > General Options.

    • The virtual machine must have one or more hard disks.

    • Delta disks are not supported.

    • Multiple network interfaces are not supported. The virtual machine must have only one network interface.

    • Capturing virtual machines with a Network Adapter type of "E1000E" is not supported. This limitation applies to all operating systems (Windows, Red Hat Enterprise Linux, and SUSE Linux Enterprise Server) on the VMware ESX cloud provider.

    • Snapshots must be deleted.

    • On Linux operating systems:

      • Network Manager must be disabled or uninstalled.

      • SELINUX must be set to permissive or disabled.

      • SSH must be running and available.

    • On Windows operating systems:

      • The Remote Registry service must be running to enable RXA.
      • Microsoft Business Use Notice (BUN) must not be enabled.
      • Ethernet adapters must have IPv4 and IPv6 protocols available if the image uses IPv6, for example, when used with PureApplication System.
      • IPv6 must not be disabled if the image uses IPv6, for example, when used with PureApplication System. The registry key HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\TCPIP6\Parameters\DisabledComponents must be set to 0x0.
      • Port 445 must not be blocked by firewalls.

    Before beginning this task, you must create and select a VMware ESX cloud provider in Image Construction and Composition Tool. The hypervisor address used in the cloud provider must be the hypervisor on which the virtual machine to import is running. The virtual machine must be started and must be configured with and available on an IP address that Image Construction and Composition Tool can reach on the network.

    Do not perform this procedure on a production machine. Image Construction and Composition Tool installs additional software to allow the machine to reconfigure during deployment. These deployment changes might include system password and network settings to the VM. The VM is shut down and captured as part of the process.

    If you are importing a virtual machine (VM) on the VMware ESX cloud provider, creating an image where the .vmdk file contains spaces or special characters is not supported. To check if the VM to capture meets this requirement: in the VMware vCenter client, find the VM Edit Settings and view the Disk File field of the hard disk for the VM.


    Procedure

    1. From the Image Construction and Composition Tool Welcome page, click Images > Build images.

    2. Click and click Create image from a running virtual machine, then click Proceed.

    3. In the Import Images from Running VM wizard, enter the following details:

      • Name: enter a name for the virtual machine.
      • Universal ID: Enter a universal ID for the virtual machine.
      • Version: Enter a version number for the new virtual machine that you are creating.
      • Description: Enter a description for the new virtual machine that you are creating.
      • IP Address: Enter the IP address of the virtual machine that you are importing.
      • User ID: Enter the user name of the user to connect to the virtual machine.
      • Password: Enter the password for the user.

    4. Click Create.

    If you are using the VMware ESX cloud provider, on completion of the import process, the virtual machine remains shut down. You might need to re-configure the network information on the virtual machine. The passwords to use for configuration are:

    • On Linux operating systems, the root password is set to password.
    • On Windows operating systems, the Administrator password is set to Passw0rd2.


    Import base images from PureApplication System

    You can import base images from PureApplication System.


    Procedure

    1. Select the PureApplication System provider in the upper right corner drop-down list.

    2. Click Images > Build Images from the Image Construction and Composition Tool main menu.

    3. Click .

    4. Select the image to import from the list of images that are displayed in the left pane of the Images page. You can search for images by name or keyword.

    5. Select the images to add, and click Add. The actual image content does not transfer to Image Construction and Composition Tool, only a copy of the metadata is saved to Image Construction and Composition Tool.

    6. Click Import.


    Build virtual images

    You can build a virtual image by selecting a base image, adding one or more software bundles, and specifying the installation and configuration requirements. To work with virtual images, click Build and manage images from the Welcome page.

    This task describes the high level tasks involved in creating a virtual image. Each of these tasks is described in detail in subsequent topics.


    Procedure

    1. Choose a base image: Select the base operating system virtual image and use the Extend option to copy the information about the base virtual image into Image Construction and Composition Tool. The tool does not copy or modify the base OS virtual image during this step.

    2. Add software bundle: Select the software bundles to add to the new virtual image and specify the installation and deployment parameters for the software bundle. This step creates a list of software to install on the virtual image. The tool does not install the actual software during this step.

    3. Install (automatically): Save the new virtual image definition and synchronize it. The synchronization process starts your base virtual image in the build environment, installs the software bundle, and then performs any additional configuration specified in the software bundles. The Image Construction and Composition Tool starts a deployed VM from the base operating system virtual image, and during this step, files are copied and installation tasks run.

    4. Optional: Test: Manually log on to the deployed VM and test the correct installation of the software bundles.

    5. Save disk image: After testing, save the virtual image.


    Extend virtual images

    You can extend a virtual image to customize the parameters of a base image. When you extend a virtual image, you clone it so you can reuse the original image without having to rebuild it from the beginning every time.

    Note: You can use wildcard searches to search for a virtual image.


    Procedure

    1. From the Welcome page, click Build and manage images.

    2. Select the virtual image to extend and click .

    3. Enter the following details in the Extend an Image dialog box:

      Name

      Enter a name for the new virtual image that you are creating. The name you enter must not exceed 50 characters.

      Universal ID

      Enter a unique identifier for the new virtual image that you are creating.

      Version

      Enter a unique version number for the new virtual image that you are creating.

      Description

      Optional. Enter a description for the new virtual image that you are creating.

    4. Click Create to extend the virtual image.

    You are ready to start configuring the extended image.


    Add software bundles to virtual images

    You can use a software bundle to add software content to a virtual image. If you add a bundle to an image, and the bundle is in planned state and you change the bundle, the bundle already added to the image is a copy of the old bundle. You must delete and add the bundle to the image to pick up the bundle changes before synchronization.


    Procedure

    1. Click to start configuring the extended virtual image. You can change the name and description for the new virtual image on the page that is displayed.

    2. Click the Software Bundles section and click .

    3. Select the software bundles to include in the virtual image and click Add. Use the icons to specify the order of installation for the software bundles into the virtual image. The Up and Down arrow icons are displayed only for planned software bundles, not for software bundles that are already installed.

    4. Click a software bundle to see its parameters. If the software bundle creator provided configuration options for the software bundle, the first set of parameters is displayed in the Install Parameters section. The second set of parameters defines configuration options that are made available during the deployment of the virtual image.

    5. Review the values for Licenses and Products and identify to change any parameters or accept the default values. The Products values cannot be changed.

    6. Review the values for Install Parameters and identify to change any parameters or accept the default values. If needed, customize these parameters for the specific virtual image that you are creating. Installation parameters are used during virtual image synchronization to install the products in the software bundle. For example, if you are installing a DB2 software bundle, you might need to specify parameters values for DB2 binary files or the location of a DB2 response file. Ensure that all parameters have a value assigned and that the parameter settings match your specific requirements. Otherwise, you might encounter errors in the virtual image or during run time.

    7. Review the values for Deploy Parameters and identify to change any parameters or accept the default values. These parameters define the default parameter values used during virtual image deployment when the selected personality is deployed. The deployment parameters are used to customize the product for the environment for which they are being created, for example, an LDAP server host name and port numbers. You can make the deployment parameters configurable or not at deployment time by clicking the corresponding Lock icon.
    8. When you are done with your changes, click .

    As you edit the virtual image, missing or invalid input is highlighted and any validation messages are displayed in the validation status section. When you save, semantic validation is performed to ensure that the virtual image definition is consistent. For example, if the specified software bundle order satisfies any dependency requirements. This validation is performed by the server and is done only when you save your changes. The validation report entries have three severities, info, warning, or error. If the virtual image has any error severity validation entries, any synchronize or capture action for the virtual image is likely to fail. Even if the synchronize or capture action succeeds, the resulting virtual image might not be usable.


    Add licenses to virtual images

    You can add licenses in any language to a virtual image.

    When you edit a new or extended virtual image, you can add or delete licenses. You can add licenses for any supported language and multiple translations of the same license.

    Note: Licenses must be text files. Other formats are not supported.


    Procedure

    1. Click to start configuring the extended virtual image. If you want, you can change the name and description for the new virtual image on the page that is displayed.

    2. Click the License section, and click .

    3. Enter a license name and select the language for the license. Click Browse to select the file for upload, then click Add.

    4. Repeat steps 2 and 3 for additional licenses.

    5. When you are done with your changes, click .


    Add personalities to virtual images

    A personality is a set of custom configuration settings for a subset of software bundles in a virtual image. All the software bundles defined for the image are always installed, even if they are not in the personality used. During deployment, only the software bundles included in the personality are configured, according to the deployment parameters specified in the personality. The concept of personality in Image Construction and Composition Tool maps to the concept of a virtual system image part in PureApplication System.


    Procedure

    1. To start configuring the extended virtual image, click . You can change the name and description for the new virtual image.

    2. To add a personality, click the Personalities section, and click .

    3. In the Add personality to image dialog box, review and complete the information:

      Name

      Enter a name for the personality that you are adding.

      Note: The personality name is the part name in the captured image. If you want the part name to be different from the part name in the base image, change the personality name before you run the synch operation in Image Construction and Composition Tool.

      Description

      Optional. Enter a description for the personality that you are creating.

      Key

      Enter a unique identifier for the personality within the image.

      Product GUID

      This field cannot be changed.

      Enter a unique identifier for the product GUID within the image.

      Supports IPv6

      Check this box if you want the personality to support both IPv4 and IPv6. If cleared, the personality supports IPv4 only.

      Enable instance count selection

      Check this box to indicate that multiple instances of the personality can be included in a virtual system pattern. In the Pattern Editor window, you can specify the number of instances to create for the corresponding part.

      Enable dynamic instance count

      Check this box if the image supports dynamic resizing of the number of instances at run time. By using this option, you can add or remove instances from a deployed virtual system pattern.

    4. Select the software bundles to include in the personality. You can select only software bundles that exist in the image. By default, all personalities include the OS and Enablement software bundles. When you are done, click Add.

    5. Click a software bundle and review the values for Deploy Parameters and identify to change any parameters or accept the default values. These parameters define the default parameter values used during virtual image deployment when the selected personality is deployed. The deployment parameters are used to customize the product for the environment for which they are being created, for example, an LDAP server host name and port numbers. You can make the deployment parameters configurable or not for this personality, by clicking the corresponding Lock icon.
    6. When you are done with your changes, click .

    As you edit the virtual image, any missing or invalid inputs are highlighted any messages are displayed in the validation status section. When you save, your changes are validated to ensure that the virtual image definition is consistent, for example, if the specified software bundle order meets any dependency requirements. The validation report contains the following entries: info, warning, or error. If the virtual image has any error entries, any synchronize or capture action for the virtual image is likely to fail. Even if the synchronize or capture actions succeed, the resulting virtual image might not be usable.


    Synchronizing virtual images

    Synchronization is the process where Image Construction and Composition Tool creates a running deployed VM from the base operating system virtual image that you specify. After that, it executes the selected software bundles into the environment, by copying files and running scripts as defined in the software bundle. The software bundles are executed according to the order specified in the virtual image definition. To complete the synchronization process in Image Construction and Composition Tool, ensure that you use the Administrator user.

    To synchronize a virtual image, the image must be extended and have software bundles in a planned state. Any software bundles that were previously executed as part of a synchronization process are not executed again if you synchronize the virtual image.

    Note: Synchronize parameters are supported only for the VMware ESX cloud provider. Synchronize parameters are not supported for the PureApplication System cloud provider.


    Procedure

    1. Click Images and then Build images. Select the extended virtual image with the planned software bundles that you want to synchronize.

    2. Click Synchronize.

      The Cloud provider parameters wizard is displayed if the image has any deployment configuration parameters. The wizard prompts you to enter values for the deployment parameters. Choose the user and the arrangement for Environment Profile, Cloud Group, and IP Group.

    3. If environment profiles are defined in PureApplication System, select an environment profile for deployment. A corresponding cloud group and IP group for the specified profile are selected automatically.

      If multiple cloud or IP groups are available for the profile, you can change the selection from the default value. If no environment profiles are defined in PureApplication System, select a cloud group for deployment.

      An environment profile is linked to one or more cloud groups and one or more IP groups. If environment profiles are defined, but you select None instead of specifying an environment profile, the first applicable environment profile is selected. If you do not have access to any applicable environment profiles, the synchronization operation might fail.

      Restriction: If the IP addresses provided by field in the environment profile is set to the value Pattern Deployer, then the environment profile cannot be used for Image Construction and Composition Tool or the Image Construction and Composition Toolvirtual application pattern.

    4. Ensure that root is entered for the user name and enter a password to be set for the deployed VM.

    5. Click to view the progress of the synchronization process. You can perform the synchronize step multiple times. If you synchronize a virtual image more than once, each synchronization executes any additional planned software bundles. After executing a software bundle, the tool moves that software bundle to the Installed section under the Software tab for the virtual image.

      If the synchronization process fails, you can edit the list of planned software bundles or edit the arrangement for Environment Profile, Cloud Group, and IP Group. Then resynchronize by clicking Synchronize again. When you resynchronize, use the same password as the one from the previous synchronization operation.

      Note: After a failure, resynchronization of the virtual image deletes the deployed virtual machine and starts the synchronization step from a new state. That is, it deploys a new instance of the base image and it installs all planned bundles no matter how many intermediate synchronization steps were successfully completed. If there are errors detected, you are prompted to confirm to proceed with the synchronization. Errors do not prevent synchronization from completing. If errors are reported during a synchronization process, some of these errors might cause a failure of the virtual image. If the synchronization process is successful, the resulting virtual image might not be usable. Investigate any errors reported and make sure that they are not significant.

    When the synchronization process starts, a deployed VM is created by using the base virtual image. After the deployed VM is created, its IP address and host name are visible in the Virtual System section on the virtual image details panel.

    If the synchronization fails for an image, Image Construction and Composition Tool attempts to roll back, or basically delete, the virtual system that PureApplication System was attempting to create before the virtual image is fully created or synchronized with Image Construction and Composition Tool. Image Construction and Composition Tool does not associate the correct virtual system ID from PureApplication System when it tries to issue the deletion request. The virtual system is not deleted automatically and the virtual system must be removed manually from PureApplication System for the related image synchronization attempt in Image Construction and Composition Tool.


    What to do next

    To check the status of the image, you can complete one of the following these steps:

    • On the Image Construction and Composition Tool user interface, go to the image details page and click the Refresh icon.

    • On the PureApplication Systemuser interface, click Catalog > Virtual Images and locate the image.

    To locate the correct image, you can complete one of the following these steps:

    • Find the properties.txt file that is located in the \drouter\ramdisk2\mnt\raid-volume\raid0\local\images\<image_reference_number>\ directory on your Image Construction and Composition Tool machine, and find the value of the property describes_image.

    • Open a browser and go to the following web address:

        https://<icct_url>/resources/images/repositoryId=local&uri=<image_reference_number>&version=1.0.0

      ...and find the value of the JSON property remoteImage.

    Note: On the Image Construction and Composition Tool user interface, in the image detail panel, the virtual system ID displayed is an internal reference number. This ID is not the same as the virtual system ID for the virtual system that is created on the PureApplication Systemuser interface, which corresponds to the virtual image created during the synchronization process.


    Capturing virtual images

    You can capture a virtual image when the image is in the synchronized state. Ensure that the following requirements are met:

      The actions that occur during a capture depend on the cloud provider that you are using.

      For a synchronized VMware ESX cloud provider image, the capture process captures the updated disks from the deployed VM and creates a new, updated, physical copy of the virtual image disks. Image Construction and Composition Tool stores the new virtual image in the local repository.

      Note: If you capture images using IBM SmartCloud Provisioning, to locate the image registered on the hypervisor, you must check the name of the volume of the new image, which is accessible through Hardware properties. If the image is registered from a high scale low touch or VMware cloud group, after the extend and capture, the name of the volume becomes the name of the new captured image that is stored in the cloud group.


      Procedure

      1. Clean up your hard disks. Ensure that there is nothing on the hard disks that you do not want to be captured. Whatever is on the hard disks when the capture is performed is available to the user of the image. Depending on your situation, perform the following steps:

        1. Delete any files and directories that you do not need, including any software binary files used during the installation and configuration of this VM.

        2. Unmount any disks used during the installation and configuration of the VM that are not to be available to the VM after a capture is performed.

        3. Disks that are copied during capture are compressed to save disk space. To ensure efficient compression, all free disk space is automatically zero filled. For the VMware ESX cloud provider, this feature is controlled by the configuration parameter /config/icn/zeroFillFreeDiskSpaceVMware in the file install_dir/icn.app/config/zero.config. Valid values are true and false. The default is true.

      2. To start the capture process, click Capture.


      Export virtual images

      The export task takes the image specification and the virtual machine disks and creates a virtual image ready for use by a deployment tool. Image Construction and Composition Tool exports the image as an OVA file ready for use in IBM PureApplication System. When using a PureApplication System cloud provider, the export operation is supported only for VMware cloud providers within Image Construction and Composition Tool.

      If you want to export an image built by using a PureApplication System cloud provider, perform this action from PureApplication System.


      Procedure

      1. Click Export and provide the target location and credentials for the export.

        For the VMware ESX cloud provider, you can specify a private key and passphrase or user name and password when specifying the credentials. Select an Open Virtualization Format (OVA) format for your deployment from the OVA file format list:

        WebSphere CloudBurst Appliance

        Click this option if the OVA is for WebSphere CloudBurst Appliance.

        PureApp, IWD 3.1.x, SCP 2.x, VMware vCenter

        Click this option if you are planning to use the OVA in PureApplication System, Workload Deployer V3.1 and later, SmartCloud Provisioning V2 and later, or VMware ESX.

        You can monitor the status of the export process in Image Construction and Composition Tool, and when complete, the image is ready for use.

      2. For PureApplication System, use the PureApplication System user interface, command-line interface, or the REST API to import the image into the catalog.

      3. For VMware, deploy through a VirtualCenter and not directly to ESX or ESXi. For example, if you are using the VMware vSphere Client, click File > Deploy OVF Template to deploy a VMware OVA.


      Create virtual images from a template

      You can use an existing virtual image as a template to create another virtual image.

      To create an image by using an existing virtual image as a template, select the virtual image to use as the template. Before using an existing template to create an image, verify that the contents of the template is correct and that you can edit the image. Then select a base virtual image to extend with the virtual image you used as a template. When applying a template, Image Construction and Composition Tool focuses on the products mentioned by the template, regardless of the bundles from which they come. You do not have to use the same bundles as the bundles in the template.

      When you are using a template to create a virtual image, Image Construction and Composition Tool identifies the valid base virtual image options for the virtual image rather than listing all of the base virtual image options available from your cloud provider. You can use a virtual image template to create a virtual image even if there are no bundles defined in the virtual image that you are using as a template.


      Procedure

      1. From the Cloud Provider menu, select your cloud provider.

      2. From the Welcome page, click Build and manage images.

      3. Click and then click Create image from a template image. Click Proceed.

      4. From the General section on the Create Image wizard, enter a name, universal ID, version, and description for the virtual image. Click Next.

      5. From the Template section of the Create Image wizard, select a template to use for the virtual image that you are creating. To choose a template, you select a virtual image that has software products to include in the virtual image that you are creating. Click Next.

      6. Optional: From the Base Image section of the Create Image wizard, select a base virtual image from the completed virtual images of the target cloud provider.

        If you select a base virtual image, the base virtual image that you select is the base for the new virtual image to be created.

        If you do not select a base virtual image, Image Construction and Composition Tool checks all base virtual images of the target cloud provider that are compatible with the template virtual image. Click Next.

        The Image Construction and Composition Tool searches for solutions that match the template virtual image that you selected. A solution comprises a base virtual image plus any software bundles. After the search is completed, you see up to 10 closest matching solutions. Each solution comprises one base virtual image and any software bundles. The top-ranking solution is selected by default, but you can browse through all solutions and choose any one. A solution with no software bundles corresponds to a virtual image that exists, and therefore does not need to be created. A solution with at least one software bundle corresponds to a virtual image that Image Construction and Composition Tool creates for you using the name, universal ID, version, and description that you provided.

      7. From the Summary section of the Create Image wizard, select the virtual image that you want and click Done.


      Manage software bundles

      A software bundle contains and describes the software available for use in a virtual image. The software bundle includes information about how to install the software, prerequisites of the software, and parameters available for customizing the software.

      You can use the existing sample bundles or you can define your own bundles.

      Create a software bundle requires specialized knowledge of how the software works and is normally completed by a software specialist. Because the software specialist creates the bundle, the virtual image builder using the software bundle does not require understanding of the specifics of installation, activation, and reset of the software.

      Understanding the integration between Image Construction and Composition Tool and the deployment tools helps in designing your bundles. The software bundle specification uses a process where a set of installation tasks is performed once, by the virtual image builder initially creating the virtual image. A set of configuration tasks is then performed for each virtual image deployment. The recommendation is to define common tasks for all instances or time-intensive tasks, such as, installing large binary files, as part of the software bundle installation so the tasks run only once. Along with the installation tasks, the software bundle provides for different deployment-time configurations of the software. The use of deployment-time configuration parameters reduces the number of virtual images that you require by providing you with a means of customizing the software for each deployment.


      Prepare to create software bundles

      Before you create a software bundle, prepare the necessary information.

      The following list describes information that you can specify for each software bundle that you create:

      Requirements

      You can list prerequisites, for example, operating system and version, in the requirements section of a software bundle. A prerequisite check is performed when you add a software bundle to a virtual image.

      Installation tasks

      You can define the files to copy and the command to run to install the software. If the binary files are not included in the bundle, you must provide the information to automate the transfer of files and execution of your installation program. If the binary files are included in the bundle, they are transferred by Image Construction and Composition Tool.

      You can also define parameters to your installation scripts, such as the mount points in the virtual image and the target location for the application you are installing.

      Activation tasks

      Virtual images can capture the state of a system, including preinstalled and preconfigured software. Along with preserving an installed software stack, virtual images also preserve the configuration of that software. Some of the software configuration, for example, IP addresses, host names, user names, passwords, and other parameters, might vary for each deployment of the virtual image.

      Instead of manually updating this dynamic configuration information after each activation process, you can define tasks that run during the virtual image activation process and make the necessary configuration updates.

      You can define activation scripts for configuration updates that run during the virtual image deployment process. These scripts are used for deployment time reconfiguration of settings based on data such as new IP addresses, host names, and other deployment characteristics. You define these activation scripts and any associated parameters, and they are copied into the virtual image during the synchronize step.

      The base operating system virtual images used with the ESX Cloud Provider must contain the provided IBM Virtual System Activation Engine. Any activation tasks you specify as configuration steps in the bundle are automatically added. This means that your activation scripts are performed automatically as part of the virtual image deployment process. Any activation scripts that you provide run after the scripts included in the Activation Engine. The activation process follows the Open Virtualization Format (OVF) standard.

      Firewall rules

      If a firewall might be blocking certain port numbers, you can indicate that those network ports and port ranges, including their protocol, must be opened.

      Reset tasks

      The virtual image build process starts the deployed VM and software installed in the virtual image. You can include scripts to clean up and reset any files that you do not want in the final virtual image. For example, you might want to reset passwords, or remove log files or temporary passwords generated during the virtual image creation process before using the virtual image for deployments. Reset scripts are run just before the virtual image is captured to reset the virtual image state to ensure that any unplanned content is not captured. When creating a software bundle, if a software bundle installation added a state to the virtual image, the software bundle creator can provide a reset script to clean up that state.


      Create software bundles

      You can create software bundles for software installations on the virtual image. To create software bundles, you must have expert knowledge of the software to include. The software bundle can be accessed by other users who can then add it to the virtual images that they create.

      The software bundles that you create are validated.


      Procedure

      1. On the Welcome page, click Build and manage software bundles and click .

      2. Enter a name, universal ID, version, and optionally, a description. From the Storage Location menu, choose where you want to store the software bundle.

        If you want to enable software bundle creation by using IBM Installation Manager, select Uses IBM Installation Manager. The Create a New IM Bundle wizard is displayed. Complete the wizard and click Create.

        Note: For each password-protected Installation Manager repository, you must provide the repository URL, the repository user name, and the repository password on the Install tab. A script file is generated to complete the following tasks:

        • Disables SELinux which is required by IBM Installation Manager.
        • Optional. Creates product installation system user.
        • Downloads and installs IBM Installation Manager from public repositories. The virtual machine that is created during synchronize must be able to access the internet to access the Installation Manager binary files.
        • Creates a credential file for password-protected repositories.
        • Installs the product by using IBM Installation Manager.

      3. Add any additional information to the General tab. You can enter details for the publisher and the products in the software bundle.

      4. To create prerequisites, complete the following steps:

        1. Click the Requirements tab.

        2. Click to add requirements for operating systems, software, or bundles. If you are adding supported operating system requirements, complete the Supported Operating Systems section for your software bundle, describing the supported operating system, operating system distribution, architecture, and version requirements.

        3. Complete the Required Software section to specify the software requirements for your software bundle. You can enter the name of the software and the version.

        4. Complete the Required Bundles section to specify the bundles required for the installation. You can choose from bundles available in the bundles repository. To add bundles, select the software bundle from the list and click Add.

        The supported operating systems are checked against the operating system in the base virtual image selected by the virtual image builder. The software prerequisite information is checked against other software bundles selected for or installed in the virtual image. To use software prerequisites, ensure that the name provided for the Name field matches the name of the software bundle on which there is a dependency.

      5. Specify how to install the software content on the Install tab, following the steps that are described in the following table:

        Specify the software to install on your instances

        Task Description
        1. Specify files to copy to the targets Specify the software installation packages to install on the targets from the Install tab. Include any installation scripts required for the installation:

        1. In the Files to copy section, click .

        2. Select the files to copy to the target. All of the files that you select are included in the same directory before the Run Command runs. You can upload files from your local system or from a remote system. Select the Upload and package with bundle option if you want the file to be copied into the software bundle. If you do not select the Upload and package with bundle option, the file is copied to the virtual image from which the software bundle is installed.

        3. Select Make executable if the file that you are uploading is an executable file.

        4. Click Upload. The files that you include are displayed as a hyperlink that you can click and download after you created the software bundle.

        Ensure that the scripts that you are using to install the software return a zero value to indicate successful installation. The installation script must check for error conditions relevant to the installation of the software bundle. For errors that you think compromise the software bundle installation, ensure that an exit code value greater than zero is returned, indicating failure. If a script returns no exit code explicitly, the exit code of the last command of the script is implicitly returned. Make sure that the software bundle installation script can accept parameters in the following format:

        scriptname -parameter1 <parameter1 value> -parameter2
        <parameter2 value>
        
        You must save your installation script in the correct format for your operating system.

        Note: If you upload scripts from a Windows system to Image Construction and Composition Tool installed on an AIX or UNIX system, you must remove the ^M characters from the script files before you upload them onto Image Construction and Composition Tool. If cygwin is installed on your Windows system, you can use the dos2unix command to clean up the script files.

        2. Specify the command to install the software From the Run Command menu, select a command to install the software. The command is run from the directory to which it was copied. It can reference entries that are selected for Files To Copy by using only the file name, because all files are in the same directory. One directory is created per software bundle being added to the virtual image Conflicting file name are not allowed.
        3. Specify the user that installs the software

        In the Run as field, specify one of the following users:

        • For Windows operating systems, the Administrator user. When this user is specified, the internal user NT Authority\System is used.

        • For UNIX and Linux operating systems, the root user. You must run the script as the root user.

        Note: The user is not created or validated on the deployed VM. Ensure that you specify a valid user.

        4. Define the parameters that the installation scripts can access In the Arguments section, define parameters that your installation scripts can access. To define an installation parameter, define a name, label, and value. The Name column defines the name by which your scripts access the parameter, for example, the environment variable name. Use the Label column to specify the display name in Image Construction and Composition Tool. The Value column represents the default value for the parameter. You can override the default values before the installation process. If you want the value to be hidden from view, check Hide Value.

        If you are using IBM Installation Manager for software bundle creation, values such as repoURL, repoUserName, and repoPassword values are displayed in the Arguments list.

      6. To define activation scripts and other artifacts necessary for deployment-time configuration, click the Configuration tab to configure the software in a new instance of a deployed VM. Complete the following steps:

        1. In the File To Copy section, define the location of the files to copy or upload them from your local machine and the target location in the virtual image. The files that you include are displayed as a link. Users can click and download the files after you created the software bundle.

        2. After you define the necessary files to copy, define the different configuration steps required for successful activation. First, define an operation name. A service name is created based on the operation name. The service name is the name of the operating system service that is automatically created during the synchronization process. The service is placed in the /etc/init.d directory on the virtual image. The operation name becomes the name of the configuration step in the activation engine.

        3. From the Run Command menu, select an option for the command to run during the configuration step. You can define parameters to be available to your activation scripts in the Arguments section. You can click an existing parameter or create a parameter for the activation script.

        When you include the software bundle, a number of events occur during the synchronization process:

        1. The ConfigSample.sh script is copied to the Activation Engine directory. It is copied to either /opt/IBM/AE/AS or /opt/ibm/ae/AS for Activation Engine 2.1.

        2. A new operating system service is added in the /etc/init.d directory named ConfigSample.

        3. A new configuration step named ConfigSample is added to the list of steps that are saved in the activation engine metadata. The data for this step includes information about what command to run during the completion of the step. This information comes directly from the command you enter in the Run Command field for the software bundle in Image Construction and Composition Tool.

        The result of adding the configuration step is that during the virtual image deployment process, the new ConfigSample operating system service starts. This service invokes the core components of the IBM Virtual System Activation Engine, and submits the name of the configuration step to start, in this example, ConfigSample. The activation engine searches the information for the ConfigSample step, and starts the /opt/IBM/AE/AS/ConfigSample.sh script that you provided and that was previously copied into the virtual image. The activation engine passes all of the parameters and their values that are listed in the Arguments section as arguments to the script.

        The tool ensures that the OVA produced includes any parameters as part of the product section of the OVF file. The deployment products pass the parameters and their values in an OVF environment document. If some of your activation scripts access parameters that are not defined as part of the configuration step they belong to, they can do so by reading from the /opt/IBM/AE/AP/ovf-env.xml file.

        Note: This file might be in a slightly different directory such as /opt/ibm/ae/AP/ovf-env.xml Because the tool automatically integrates your activation scripts into the activation engine, the activations scripts do not need to understand the specifics of the activation engine or OVF standard.

      7. On the Firewall tab, specify the port numbers that must be open. Specify either fixed single ports or port ranges, each with the TCP/UDP protocol.

        Firewall settings have no effect on VMware ESX virtual images.

        Note: This step does not apply for Windows images.

      8. When you create a software bundle, the software bundle author can provide a reset script. The purpose of the reset script is to clean up any state that the corresponding software bundle installation might have added to the virtual image. On the Reset tab, define reset tasks:

        1. Upload the reset script and related files in the Files to Copy section. Although you can specify the location of the uploaded files in the Files to Copy destination folder, they are always put in the directory of the activation framework. The files that you include are displayed as a link and users can click and download them after you created the software bundle.

        2. From the Run Command menu, select an option for the name of the script that you want Image Construction and Composition Tool to use to reset the software bundle.

        3. Use the Run As field to specify the root user. You must run the script as the root user.

        4. The arguments section is ignored for the reset scripts. Parameters from the first Configuration Operation defined on the Configuration tab are passed to the reset command.

      9. To save your software bundle, click . Validation is completed to ensure that your software bundle is consistent. Review any errors, warnings, or information messages and take corrective action, if necessary.

      10. If you want to publish the software bundle, click . If you publish the software bundle, you can no longer edit the software bundle or change it, but you can still extend it.

      You can view the new software bundle in the asset catalog of your Exploiter Name account, by completing the following steps:

      1. Log in to your Exploiter Name account.

      2. Click Control Panel.

      3. Click View asset catalog.

      4. Click the Developer Cloud filter.

      5. Search for the software bundle that you created. You can also check for the most recently modified software bundle.


      Extend software bundles

      You can extend a software bundle to create a new software bundle. When you extend a software bundle, all the data that you provided in the requirements, installation, configuration, and reset sections of the source software bundle is copied to the new software bundle in a draft state. You can then make revisions and changes.

      You can use wildcard searches to search for a software bundle.


      Procedure

      1. Select the software bundle and click .

      2. Accept the default values or specify a name, unique version number, universal ID, and optionally, a description for your new software bundle.


      Upload large files when creating software bundles

      When you create software bundles that use large files for product installation, such as large RPM files or large executable files, do not try to upload these files into the software bundle.

      Instead, access the large files at installation time using the software bundle installation scripts. You must write the software bundle installation scripts so that they are provided with the location of the binary files at run time, and can be copied to the new deployed VM on which the software bundle is to be installed. You can do this in either of the following ways:

      • Hardcode the location of the external large files in the installation script.

      • In the installation script, use parameters for the location of the external large files.

        This option allows other users of the software bundle to put the large files in locations that are suitable for their network and environment. In this case, the software bundle script must specify parameters such as LOCATION, the values for which are provided when a user is synchronizing a new virtual image with the software bundle in planned state. The LOCATION value is then used by the software bundle installation script at run time to find the external large files.


      Share software bundles

      You can share a software bundle with other systems and users.

      Share a software bundle involves either importing a software bundle from another system or exporting a software bundle to another system. You can also import a software bundle from a local system or export a software bundle to a local system. By sharing software bundles you can access and reuse software bundles that already exist and that contain encapsulated expertise of software experts who created the software bundles.

      To import the software bundle, you must know the name of the remote system and have access to that system.

      The procedure for exporting a software bundle is similar. If you want to export a software bundle to another system, select the software bundle and click . Then enter the required values for the export, which are similar to the values for importing a software bundle. If you are exporting a software bundle to another system, you can authenticate using a private key file and passphrase or using a password.


      Procedure

      1. On the Welcome page, click Build and manage software bundles.

      2. To begin importing a software bundle, click .

      3. Enter the following information:

        File location

        The complete path of the file to import from the remote system.

        User name

        The name of the user to connect to the remote system. The user name is optional and is needed only if the remote system requires it.

        Password

        The password of the remote system. The password is optional and is needed only if the remote system requires it.

        Storage Location

        The location where the software bundle is stored.

      4. Click OK.

      5. In the Importing <filename> screen, enter the details for the software bundle that you are importing. If the universal ID or version of the software bundle that you are importing is not unique on the system on which you are importing the software bundle, you must enter a unique ID or version.

      The software bundle is imported into the system. You can use it to create virtual images or you can modify it to suit your requirements.

      Use the command-line interface

      To perform administrative functions for Image Construction and Composition Tool, you can download and run the command-line interface on a local machine.

      The command-line interface communicates with Image Construction and Composition Tool so you can manage the system in a scripted, non-graphical environment. Minimal functions are available without a network connection to the system.

      Note: If you are migrating to Image Construction and Composition Tool from a previous version, you must download the command-line interface code from the Welcome page of Image Construction and Composition Tool.

      Ensure that you have Java Runtime Environment (JRE) V6, installed on the machine on which the command-line interface is to run. JRE exists on the virtual machine running You can download this JRE for Linux from the following web address: http://www.ibm.com/developerworks/java/jdk/linux/download.html. Because the command-line interface is a scripting language based on Python 2.5.1, using the command-line interface requires some familiarity with version 2.5.1 of the Python language. For information about using Python, see http://www.python.org/doc/2.5.1/index.html.

      If you are running the command-line interface on the same VM that Image Construction and Composition Tool is already using, the JRE exists in /opt/IBM/icct/jre.

      Command-line interface high-level procedure

      This section provides the high-level steps for using the command-line interface with links to more detailed information about each section. In the command-line interface examples, >>> denotes the Python command prompt, meaning the three greater than symbols together in these examples, >>>, precede code that you enter.


      Procedure

      1. Download the command-line interface

      2. Start the command-line interface

      3. You can get help for command syntax, available commands, and using interactive mode.

      After you download and initialize the command-line interface, you are ready to use it to work with the Image Construction and Composition Tool resources.


      Command-line interface overview

      Image Construction and Composition Tool command-line interface provides a scripting environment based on Jython. Jython is the Java-based implementation of Python. In addition to issuing commands specific to Image Construction and Composition Tool, you can also issue Python commands at the command prompt. To manage Image Construction and Composition Tool with the command-line interface, you can download the command-line interface to any machine and then point to where tool is running. You can use the command-line interface on Windows and Linux operating systems.

      Use the command-line interface, you can manage Image Construction and Composition Tool remotely. The command-line interface communicates with Image Construction and Composition Tool over a hypertext transfer protocol secure (HTTPS) session. The command-line interface does not cache updates and has only minimal caching for reads. If the machine on which the command-line interface is running loses connectivity to port 443 of the tool, you can perform only rudimentary operations.

      The Jython interpreter included with the command-line interface implements some of the Python 2.5.1 language. The command-line interface uses the Jython interpreter to help you manage Image Construction and Composition Tool. In addition to the standard Jython libraries, the command-line interface provides functions and classes.

      The command-line interface can run in both interactive and batch modes.

      Note: Each of these methods of passing commands to the command-line interface supports the same Jython scripting language.

      For more information about how to invoke the command-line interface, specify the --help parameter to the icct or icct.bat command.


      Download and configuring the command-line interface

      To perform administrative functions for Image Construction and Composition Tool, you can download and run the command-line interface on a local machine. Ensure that you have Java Runtime Environment (JRE) V6 installed on the machine on which the command-line interface is to run. To download this JRE for Linux, go to http://www.ibm.com/developerworks/java/jdk/linux/download.html.

      The command-line interface is currently supported on Windows and Linux systems.


      Procedure

      1. To download the command-line interface, click Download command line tool on the Welcome page of Image Construction and Composition Tool.

      2. Save the compressed file to a local drive.

      3. Open the compressed file and expand the contents to a local directory. A subdirectory named icct.cli is created in the local directory.

      4. Change directory to the icct.cli directory.

      5. Ensure that either the JAVA_HOME or the PATH environment variable is set to the location of your JRE. To verify, enter java -version at the command line.

      6. For Windows Server 2003 and Windows Server 2008 operating systems only: In the icct.cli directory, find the directory lib\<version>, and create a registry file in it with the following line:

        python.os=nt
        

        This change allows Jython to bypass the normal operating system detection logic and treat the system as a Windows computer.

        By default, the only thing in the lib directory is a <version> subdirectory that matches the firmware level of the tool from which the command-line interface was downloaded. If you use this command-line interface installation to communicate with tools at different firmware levels, there is one subdirectory under the /lib directory for each of these firmware levels. You must copy the registry file into each of these subdirectories. For example, \lib\1.2.0.0-20120131-0830-11\registry

      Verify that the command line is installed correctly by running the icct command. For example:

      • On Windows:

        bin\icct -h myicct.mycompany.com -P 443 -u username -p password -c icct.version
        

      • On Linux:

        bin/icct -h myicct.mycompany.com -P 443 -u username -p password -c icct.version
        

      If the environment is set up correctly, a message is displayed with information about the command-line interface.


      What to do next

      You can now invoke the command-line interface.


      Invoke the command-line interface

      To perform administrative functions for Image Construction and Composition Tool, you can invoke the command-line interface in either interactive mode or batch mode from a local machine running either Windows or Linux operating systems. Download and extract the command-line interface. If you recently upgraded your system, download the new version of the command-line interface. The command-line interface is invoked on your local machine. You can run the command-line interface in interactive mode or in batch mode. A command-line interface session uses the timeout value specified in Image Construction and Composition Tool. When a user session expires, you are prompted to reenter your user ID and password. If the ICCT_REAUTHENTICATE environment variable is set, a new session is automatically started for the user when an existing session expires.

      A set of sample scripts that demonstrate some of the command-line interface function are located in the cli_install_dir\sample directory.


      Invoke in interactive mode

      To invoke the command-line interface in interactive mode, use these parameters.

      -u <userid> or --userid

      Optional. Specifies the user ID to authenticate to the Image Construction and Composition Tool. Use the same user ID and password that you use to log on to the the tool. If the userid parameter is not specified, the value of the ICCT_USERID environment variable determines the user ID. When the user ID is not included on the command-line interface and the environment variable is not set, you are prompted to enter a user ID.

      -p <password> or --password

      Optional. The parameter -p is case sensitive. Specifies the password used to authenticate to the Image Construction and Composition Tool. Use the same user ID and password that you use to log on to the tool. If the password parameter is not specified, the value of the ICCT_PASSWORD environment variable determines the password. When the password is not included on the command-line interface and the environment variable is not set, you are prompted to enter a password.

      -P <port> or --port

      Optional. The parameter -P is case sensitive. Specifies the TCP/IP port used to communicate with the Image Construction and Composition Tool. Use the same port that you use to log on to the tool. If the port parameter is not specified, the value of the ICCT_PORT environment variable determines the port. When the port is not included on the command-line interface and the environment variable is not set, the default value of 443 is used.

      -h <host> or --host

      Required. Specifies the host name or IP address of the Image Construction and Composition Tool. If you specify this option, do not use the URL to access the web interface. If this parameter is not specified, the value of the ICCT_HOST environment variable determines the host name.

      -d or --debug

      Optional. Enable the logging of communication between the Image Construction and Composition Tool server and the command-line interface. File cli.log in the logs directory is not used.

      Note: Because this log contains unencrypted HTTP data, delete the cli.log file when you are finished with it.

      $ icct -h myicct.mycompany.com -P 443 -u username -p password


      Invoke in batch mode

      To invoke the command-line interface in batch mode, use these optional parameters in addition to those parameters used to start the command-line interface in interactive mode.

      -c <command>

      Optional. Passes a command to the command line to be run. You can specify this option multiple times to run multiple commands. If the command is a Jython expression, it is evaluated and the command-line interface displays the result. If the command is not a Jython statement, it is run but no output is generated unless the statement itself causes output to be generated. Do not specify this parameter to run the command-line interface in interactive mode.

      Example: $ icct -h myicct.mycompany.com -P 443 -u joeadmin -p password -c "icct.version"

      -f <script_file><arg>*

      Optional. Causes the command line to run the specified Jython script file with the specified arguments. Any arguments following the script file name are passed to the Jython script. Only one -f parameter can be specified on the command line.

      Example: $ icct -h myicct.mycompany.com -P 443 -u joeadmin -p password -f sampleScript.py arg1 arg2 arg3

      -d

      Optional. This parameter is used for debugging. The log files are stored in .icct.cli\logs\cli.log".

      Example: $ icct -h myicct.mycompany.com -P 443 -u joeadmin -p password -d

      On Linux, you can make the shell automatically use the Image Construction and Composition Tool command to execute your Jython scripts. If the Image Construction and Composition Tool command is on your PATH, insert the following line at the top of your script to have the shell execute it using the command-line interface:

      #!/usr/bin/env icct

      Passing commands to the command line by any of these methods, on the command line using the -c parameter, or in a script file specified using the -f parameter, support the same Jython scripting language.


      Invoke the samples

      You can invoke the samples by invoking as in batch mode.

      The samples are in the cli_install_dir\samples directory and are invoked as in batch mode.


      Create a cloud provider by using the samples

      Review the following samples to learn how to add cloud providers and images, and how to import bundles.

      Add a VMware ESX cloud provider

      .\bin\icct -h localhost -P 443 -u icctuser -p icctpwd 
      -f ..\samples 
      createESXCloudProvider.py -h 172.1.1.100 
      -u root -p mypwd -n "VMware ESX" 
      -d .description. -s 172.1.1.0 -m 255.255.248.0 
      -g 172.1.1.1 -1 172.1.1.2 
      -2 172.1.1.3 172.1.1.34 172.1.1.35 172.1.1.36
      

      Add an IBM PureApplication System cloud provider

      .\bin\icct -h localhost -P 443 -u icctuser -p icctpwd 
      -f ..\samples\createIBMPureApplicationSystemCloudProvider.py
      -h 172.1.1.140 -u ipasuser -p ipaspwd -n 
      "My IBM PureApplication System" -d "Description" 
      

      Add an image

      .\bin\icct -h localhost -P 443 -u icctuser -p icctpwd 
      -f ..\samples
      importImage.py "http://localhost/tmp/redhat55OS.ova" "VMware ESX"
      

      Import a bundle

      .\bin\icct -h localhost -P 443 -u icctuser -p icctpwd 
      -f ..\samples
      importBundle.py "http://localhost/tmp/bundles/com.ibm.mybundle_1.0.0.ras"
      


      Command-line interface resource object reference

      Anything that can be managed in the Image Construction and Composition Tool is a resource object on the command-line interface.

      The Image Construction and Composition Tool command-line interface manages different types of resources, for example bundles, cloud providers and images instances. The following objects are available:


      Bundles reference

      You can manage bundles using the command-line interface. Bundles provide the definition of software and the scripts and parameters needed for installation, configuration, and deployment of software on a virtual machine.


      Bundles object

      A bundles object represents the collection of bundles defined in Image Construction and Composition Tool. Objects of this type are used to create, delete, iterate over, list, and search bundles.


      Bundles methods

      The bundles object has the methods described for a typical resource collection. The following methods are unique to bundles as their parameters and return values differ from what is expected:

      getBundles()

      This method returns a Python list of bundle objects representing all bundles. You can optionally filter the list using regular expressions. The method accepts the following parameters:

      nameRegEx

      String for a regular expression to match against the bundle name. Default is none.

      universalIdRegEx

      String for a regular expression to match against the bundle universalId (symbolicName). Default is none.

      versionRegEx

      String for a regular expression to match against the bundle version. Default is none.

      descriptionRegEx

      String for a regular expression to match against the bundle description. Default is none.

      import()

      Imports a bundle to the Image Construction and Composition Tool. The attributes to import the new bundle can be specified in any of the following ways:

      • As a string specifying a non-authenticated URL from which the bundle can be downloaded:

        >>> icct.bundles.import('http://localhost/myBundle.ras')
        

      • As a string specifying a file local to the Image Construction and Composition Tool machine:

        >>> icct.bundles.import('/tmp/myBundle.ras')
        

      • As a string specifying an authenticated URL, username, and password

        >>> icct.bundles.import('http://localhost/myBundle.ras', 
                      'username', 'password')
        

      This method returns a bundle object for the newly imported bundle. This method queues the operation in the Image Construction and Composition Tool and returns immediately. The returned bundle object can be used to track the status of the import process. The waitFor() method can also be used to pause until the import completes.


      Bundles examples

      To get a list of all the bundles, without filtering out any bundle, use the following method:

      >>> icct.bundles.getBundles()
      

      To get a list of all the bundles, with a specific bundle listed first, use the following method. Only an exact match for the entire bundle name results in the bundle being listed first.

      >>>bundles = icct.bundles['bundle abc']
      

      To get a list of all the bundles that have .Linux. in the name, use the following method:

      >>> icct.bundles.getBundles('Linux')
      

      To get a list of all the bundles that have .suse. in the universalId and .1.0.0. in the version, use the following method:

      >>> icct.bundles.getBundles(None, 'suse', '1.0.0')
      

      To import a bundle and wait for the import to complete, use the following code:

      >>> importingBundle = icct.bundles.import('http://localhost/myBundle.ras')
      >>> importingBundle.waitFor()
      >>> if importingBundle.currentState == 'import_failed':
      >>>     print 'Bundle import failed!'
      


      Bundle object

      A bundle object represents a particular bundle defined in the Image Construction and Composition Tool. Use the object to query and manipulate the bundle. Attributes of the bundle resource are represented as Jython attributes on the bundle object. Manipulate these Jython attributes using standard Jython mechanisms to change to the corresponding data in the Image Construction and Composition Tool.


      Bundle attributes

      The bundle object has the following attributes which are read-only unless otherwise noted:

      currentState

      The state of a bundle: importing, import_failed, draft, published.

      currentState_text

      Textual representation of currentState. This field is a string representation of currentState in the preferred language of the requester and is automatically generated by the tool.

      description

      The description of the bundle. Read/write.

      id

      The universal identifier of the bundle.

      name

      The name of the bundle. Read/write.

      uri

      The URI used to access the bundle.

      version

      The version of the bundle.


      Bundle methods

      The bundle object has the methods described for a typical resource collection. The following methods are unique to bundle objects as their parameters and return values differ from what is expected:

      clone()

      This method returns a copy of the bundle object. The method accepts the following parameters:

      dict

      A Jython dict object where the valid keys are:

      name

      The name of the cloned bundle. If this value is not supplied, it defaults to the current bundle name + .- Clone..

      description

      The description of the cloned bundle. If this value is not supplied, it defaults to the current bundle description.

      symbolicName

      The universal ID of the cloned bundle. If this value is not supplied, it defaults to the current bundle universal ID.

      version

      The version of the cloned bundle. If this value is not supplied, it defaults to the current Bundle version + .1..

      For example:

      >>> bundle = icct.bundles[0]
      >>> dict = { 'name' : 'My cloned bundle', 
                     'version' : '1.2.3.4-20120131' }
      >>> bundleClone = bundle.clone(dict)
      

      delete()

      This method deletes the bundle.

      export()

      This method starts the asynchronous process of exporting a bundle to a remote location. This method accepts the following parameters:

      export_host

      The IP address of the computer where the image is to be copied.

      export_path

      The directory to copy the bundle to. By default, the universal id and version are used to create the filename. To specify a different filename, include the filename with a .ras extension.

      export_userid

      The user ID for UNIX Secure Copy.

      export_password

      The password for UNIX Secure Copy.

      privateKeyFile

      Optional: The private key file name. If specified, the export_password parameter is used as the passphrase.

      This file is copied to the given location, as shown in the following example:

      >>> bundle = icct.bundles[0]
      >>> bundleExportId = bundle.export('localhost', '/tmp', 
                       'userid', 'password')
      >>> bundle.waitForExport(bundleExportId)
      
      This method returns an identifier for the exporting bundle task and queues the operation on the Image Construction and Composition Tool. It is returned immediately. The returned identifier can be used to track the status of the export process. The waitForExport() method can also be used to pause until the export completes. The exportStatus() method can be used to query the last known export status but you must call the refresh() method prior to calling the exportStatus() method to be sure that you get the latest status.

      exportStatus()

      This method checks the status of the asynchronous process that is exporting the bundle:

      >>> bundle.export('localhost', '/tmp', 'userid', 'password')
      >>> bundle.refresh()
      >>> bundle.exportStatus()
      
      This method returns a string specifying the current export status of the Bundle object. To ensure the latest status, call the refresh() method prior to calling the exportStatus() method. Valid export status values are .Exporting., .Complete., .Failed..

      getBundleRequirements()

      This method returns a Python list of BundleBundleRequirement objects representing all the bundle requirements in this bundle. The function accepts no arguments. Get a list of bundle requirements in the bundle:

      >>>bundle = icct.bundles[0] 
      >>>bundlereqs=bundle.getBundleRequirements()
      

      getConfigurations()

      This method returns a Python list of BundleConfiguration objects representing all of the configuration and deployment definitions in this bundle. The function accepts no arguments. Get a list of configuration operations in the bundle:

      >>>bundle = icct.bundles[0] 
      >>>configs=bundle.getConfigurations()
      

      getDeployParameters()

      This method returns a list of Python dict objects representing parameters used for deployment of the bundle. Each dict object contains information about a bundle deployment parameter.

      >>> icct.bundles[0].getDeployParameters()
      
      The keys in the dict are:

      defaultVal

      Default value used if a value is not provided.

      direction

      Value is always "input"

      isPassword

      Value is true, if the deployment parameter is a password.

      label

      Text label for the user interface display

      name

      Name identifier

      type

      Value is always "string".

      value

      Current parameter value.

      getFirewallRules()

      This method returns a Python list of BundleFirewallRule objects representing all the firewall port opening definitions in this bundle. The function accepts no arguments. Get a list of firewall ports in the bundle:

      >>>bundle = icct.bundles[0] 
      >>>firewallports=bundle.getFirewallRules()
      

      getInstallation()

      This method returns a BundleInstallation object representing all the bundle installation operation in this bundle. The function accepts no arguments. Get the bundle installation in the bundle:

      >>>bundle = icct.bundles[0] 
      >>>install=bundle.getInstallation()
      

      getInstallParameters()

      This method returns a list of Python dict objects representing parameters used for installation of the bundle. Each dict object contains information about a bundle installation parameter.

      >>> icct.bundles[0].getInstallParameters()
      
      The keys in the dict are:

      defaultVal

      Default value used if a value is not provided

      direction

      Value is always input.

      isPassword

      Value is true, if the deployment parameter is a password.

      label

      Text label for the user interface display

      name

      Name identifier

      type

      Value is always "string".

      value

      Current parameter value.

      getOSRequirements()

      This method returns a Python list of BundleOSRequirement objects representing all the operating system requirements in this bundle. The function accepts no arguments. Get a list of operating system requirements in the bundle:

      >>>bundle = icct.bundles[0] 
      >>>osreqs=bundle.getOSRequirements()
      

      getProducts()

      This method returns a Python list of BundleProduct objects representing all the products defined to be in this bundle. The function accepts no arguments. To get a list of products in the bundle:

      >>>bundle = icct.bundles[0] 
      >>>products=bundle.getProducts()
      

      getReset()

      This method returns a BundleReset object representing all the bundle reset operation in this bundle. The function accepts no arguments. Get the bundle reset in the bundle:

      >>>bundle = icct.bundles[0] 
      >>>reset=bundle.getReset()
      

      getSoftwareRequirements()

      This method returns a Python list of BundleSoftwareRequirement objects representing all the software requirements in this bundle. The function accepts no arguments. Get a list of software requirements in the bundle:

      >>>bundle = icct.bundles[0] 
      >>>swreqs=bundle.getSoftwareRequirements()
      

      publish()

      This method changes the bundle state from draft to published. The method uses a Python object representing the bundle. The original object is also refreshed to reflect the updated state.

      setConfigurations

      This method stores a Python list of BundleConfiguration objects representing all the configuration and deployment definitions in this bundle. This method must be called to save BundleConfiguration changes. The function accepts the following argument:

      configuration

      This method stores a Python list of BundleConfiguration objects representing all the configuration and deployment definitions in this bundle. This method must be called to save BundleConfiguration changes. The function accepts the following argument:

      configuration

      A Python list of BundleConfiguration objects
      Save a modified list of configuration definitions in the bundle:

      >>>bundle.setConfigurations(configs) 
      

      setBundleRequirements()

      This method stores a Python list of BundleBundleRequirement objects representing all the bundle requirements defined in this bundle. This method must be called to save BundleBundleRequirement changes. The function accepts the following arguments:

      bundleList

      A Python list of BundleBundleRequirement objects.
      Save a modified list of bundle requirements in the bundle:

      >>>bundle.setBundleRequirements(bundlereqs) 
      

      setInstallation()

      This method stores a BundleInstallation object representing the bundle install operation defined in this bundle. This method must be called to save BundleInstallation changes. The function accepts the following argument:

      installation

      A BundleInstallation object
      Save a modified bundle installation in the bundle:

      
      >>>bundle.setInstallation(install) 

      setOSRequirements()

      This method stores a Python list of BundleOSRequirement objects representing all the operating system requirements defined in this bundle. This method must be called to save BundleOSRequirement changes. The function accepts the following argument:

      osList

      APython list of BundleOSRequirement objects.
      Save a modified list of operating system requirements in the bundle:

      >>>bundle.setOSRequirements(osreqs)
      

      setFirewallRules()

      This method stores a Python list of BundleFirewallRule objects representing all the firewall port opening definitions in this bundle. This method must be called to save BundleFirwallRule changes. The function accepts the following argument:

      portList

      APython list of BundleFirewallRule objects.
      Save a modified list of firewall rules in the bundle:

      >>>bundle.setFirewallRules(firewallports) 
      

      setProducts()

      This method stores a Python list of BundleProduct objects representing all the products defined to be in this bundle. This method must be called to save BundleProduct changes. The function accepts the following argument:

      products

      A Python list of BundleProduct objects. Save a modified list of products in the bundle:

      >>>bundle.setProducts(products) 
      

      setReset()

      This method stores a BundleReset object representing the bundle reset operation defined in this bundle. This method must be called to save BundleReset changes. The function accepts the following argument:

      reset

      A BundleReset object
      Save a modified bundle reset in the bundle:

      >>>bundle.setReset(reset) 
      

      setSoftwareRequirements()

      This method stores a Python list of BundleSoftwareRequirement objects representing all the software requirements defined in this bundle. This method must be called to save BundleSoftwareRequirement changes. The function accepts the following argument:

      swList

      APython list of BundleSoftwareRequirement objects.
      Save a modified list of software requirements in the bundle:

      >>>bundle.setSoftwareRequirements(swreqs) 
      

      waitForExport()

      This method can be used to wait a specified period of time for the export of the bundle to finish. The method can assist you in writing scripts that must wait for theImage Construction and Composition Tool to complete a particular action. The waitForExport() method periodically checks for the export to finish or a timeout expires. The method accepts the following parameters:

      exportId

      The ID returned by a call to the bundle.export() method.

      maxWait

      The maximum wait time in seconds. Floating point values can be used to indicate fractions of a second. A negative value causes this function to wait indefinitely. If a value is not supplied, the default value is -1.

      interval

      The interval at which bundle export status is evaluated in seconds. Floating point values can be used to express fractions of a second. The default value is 60 seconds.

      >>> bundle = icct.bundles[0]
      >>> bundleExportId = bundle.export('localhost', '/tmp', 
                     'userid', 'password')
      >>> bundle.waitForExport(bundleExportId) 
      


      BundleBundleRequirements reference

      You can manage requirements a Bundle places on other Bundle objects using the command-line interface. BundleBundleRequirement provides the definition of required bundles needed for installation of software on a virtual machine


      BundleBundleRequirements object

      A BundleBundleRequirements object is used to create a BundleBundleRequirement object.


      BundleBundleRequirements methods

      The BundleBundleRequirements object has no methods that are unique to BundleBundleRequirements.


      BundleBundleRequirements examples

      Create a new BundleBundleRequirement object using the interactive wizard, add to existing bundle requirements, and save:

      >>>wizard = icct.wizard()
      >>>bundleReq = icct.bundlebundlerequirements.create(wizard)
      >>>wizard.toDict()
      >>>bundle.getBundleRequirements().append(bundleReq)
      >>>bundle.setBundleRequirements(bundleReq)
      
      Create a new BundleBundleRequirement using a Python dict object:

      >>>newbundlereqDict = {'version': u'1.0.1', 'symbolicName': u'icon.default.helloworld', 'name': u'helloWorld'}
      >>>bundleReq = icct.bundlebundlerequirements.create(newbundlereqDict)
      


      BundleBundleRequirement object

      A BundleBundleRequirement object represents a particular bundle requirement of a bundle defined in the Image Construction and Composition Tool. Use the object to query and manipulate the bundle requirement. Attributes of the BundleBundleRequirement resource are represented as Jython attributes of the object. Manipulate these Jython attributes using standard Jython mechanisms to change the corresponding data. Any changes to this object require the use of the Bundle.setBundleRequirements() method to save the change in the Image Construction and Composition Tool.


      BundleBundleRequirement attributes

      The BundleBundleRequirement object has the following attributes, which are read-only unless otherwise noted:

      name

      The name of the bundle. Writeable.

      uri

      The URI used to access the bundle.

      symbolicName

      The universal ID of the bundle. Writeable.

      version

      The version of the bundle. Writeable.


      BundleBundleRequirement methods

      None.


      BundleCommands reference

      You can manage commands that a Bundle uses during installation, capture, and deployment using the command-line interface. BundleCommand provides the definition of operating system scripts or commands that must be run on a virtual machine.


      BundleCommands object

      A BundleCommands object is used to create a BundleCommand object.


      BundleCommands methods

      The BundleCommands object has no methods that are unique to BundleCommands.


      BundleCommands examples

      Create a new BundleCommand object using the interactive wizard, replace the installation command in the bundle, and save:

      >>>wizard = icct.wizard()
      >>>bundleCmd = icct.bundlecommands.create(wizard)
      >>>wizard.toDict()
      >>>install = bundle.getInstallation()
      >>>install.command = bundleCmd
      >>>bundle.setInstallation(install)
      

      Create a new BundleCommand using a Python dict object:

      >>>newCmdDict = {'runas': u'root', 'parameterStyle': u'shortSpaceStyle'}
      >>>newCmd = icct.bundlecommands.create(newCmdDict))
      


      BundleCommand object

      A BundleCommand object represents a particular bundle command of a bundle defined in the Image Construction and Composition Tool. Use the object to query and manipulate the bundle command. Attributes of the BundleCommand resource are represented as Jython attributes of the object. Manipulate these Jython attributes using standard Jython mechanisms to change the corresponding data. Any changes to this object require the use of the corresponding Bundle.setInstallation(), Bundle.setConfigurations() or Bundle.setResets() method to save the change in theImage Construction and Composition Tool.


      BundleCommand attributes

      The BundleCommand object has the following attributes, which are read-only unless otherwise noted:

      runas

      The name of the bundle. Writeable.

      runcmd

      The command file to run. Writeable.

      parameterStyle

      The URI used to access the bundle. Writeable. Valid values are:

      • 'environmentStyle'
      • 'longSpaceStyle'
      • 'shortSpaceStyle'
      • 'windowsStyle'

      arguments

      The Python list of BundleCommandArgument objects. Writeable.


      BundleCommand methods

      None.


      BundleCommandArguments reference

      You can manage command line arguments, also know as parameters, that a BundleCommand uses during installation, capture, and deployment using the command-line interface. BundleCommandArgument provides the definition of command line arguments to pass to the operating system scripts or commands that need to be run on a virtual machine.


      BundleCommandArguments object

      A BundleCommandArguments object is used to create a BundleCommandArgument object.


      BundleCommandArguments methods

      The BundleCommandArguments object has no methods that are unique to BundleCommandArguments.


      BundleCommandArguments examples

      Create a new BundleCommandArgument object using the interactive wizard, replace the installation command in the bundle, and save:

      >>>wizard = icct.wizard()
      >>>newCmdArg = icct.bundlecommandarguments.create(wizard)
      >>>wizard.toDict()
      >>>install=bundle.getInstallation()
      >>>arglist = install.command.arguments
      >>>arglist.append(newCmdArg)
      >>>install.command.arguments=arglist
      >>>bundle.setInstallation(install)
      

      Create a new BundleCommandArgument using a Python dict object:

      >>>newCmdArgDict = {'label': u'arglabel1', 'isPassword': False, 'defaultVal': u'argDefaultVal1', 'name': u'argname1'}
      >>>newCmdArg = icct.bundlecommandarguments.create(newCmdArgDict)
      


      BundleCommandArgument object

      A BundleCommandArgument object represents a particular bundle command argument of a bundle defined in the Image Construction and Composition Tool. Use the object to query and manipulate the bundle command argument. Attributes of the BundleCommandArgument resource are represented as Jython attributes of the object. Manipulate these Jython attributes using standard Jython mechanisms to change the corresponding data. Any changes to this object require the use of the corresponding Bundle.setInstallation(), Bundle.setConfigurations() or Bundle.setResets() method to save the change in the Image Construction and Composition Tool.


      BundleCommandArgument attributes

      The BundleCommandArgument object has the following attributes, which are read-only unless otherwise noted:

      name

      The name of the argument that is passed to the command. Writeable.

      label

      The label displayed when this argument is requested from the user. Writeable.

      isPassword

      True if the value must be hidden, otherwise False.

      defaultVal

      Optional. Default value for this argument. Writeable.


      BundleCommandArgument methods

      None.


      BundleConfigDependencies reference

      You can manage configuration service name dependencies using the command-line interface. BundleConfigDependency provides the definition of configuration service name dependencies to the operating system on a virtual machine.


      BundleConfigDependencies object

      A BundleConfigDependencies object is used to create a BundleConfigDependency object.


      BundleConfigDependencies methods

      The BundleConfigDependencies object has no methods that are unique to BundleConfigDependencies


      BundleConfigDependencies examples

      Create a new BundleConfigDependency object using the interactive wizard, replace the installation command in the bundle, and save:

      >>>wizard = icct.wizard()
      >>>newCfgDep = icct.bundleconfigdependencies.create(wizard)
      >>>wizard.toDict()
      >>>config=bundle.getConfigurations()
      >>>depList = config[0].dependencies
      >>>depList.append(newCfgDep)
      >>>bundle.setConfigurations(config)
      

      Create a new BundleConfigDependency using a Python dict object:

      >>>newCfgDepDict = {'servicename': 'activation.CLITESTService'}
      >>>newCfgDep = icct.bundleconfigdependencies.create(newCfgDepDict)
      


      BundleConfigDependency object

      A BundleConfigDependency object represents a particular bundle configuration service name dependency of a bundle defined in the Image Construction and Composition Tool. Use the object to query and manipulate the bundle configuration dependency. Attributes of the BundleConfigDependency resource are represented as Jython attributes of the object. Manipulate these Jython attributes using standard Jython mechanisms to change the corresponding data. Any changes to this object require the use of the Bundle.setConfigurations() method to save the change in the Image Construction and Composition Tool.


      BundleConfigDependency attributes

      The BundleConfigDependency object has the following read-write attribute:

      servicename

      The operating system service name.


      BundleConfigDependency methods

      None.


      BundleConfigurations reference

      You can manage configurations using the command-line interface. BundleConfiguration provides the definition of configuration operations for a bundle on a virtual machine.


      BundleConfigurations object

      A BundleConfigurations object is used to create a BundleConfiguration object.


      BundleConfigurations methods

      The BundleConfigurations object has no methods that are unique to BundleConfigurations.


      BundleConfigurations examples

      Create a new BundleConfiguration object using the interactive wizard:

      >>>wizard = icct.wizard()
      >>>newCfg = icct.bundleconfigurations.create(wizard)
      >>>wizard.toDict()
      

      Create a new BundleConfiguration using a Python dict object:

      >>>newCfgDict = {'operationname': 'activation.MyConfigTest'}
      >>>newCfg = icct.bundleConfigurations.create(newCfgDict)
      


      BundleConfiguration object

      A BundleConfiguration object represents a particular bundle configuration of a bundle defined in the Image Construction and Composition Tool. Use the object to query and manipulate the bundle configuration. Attributes of the BundleConfiguration resource are represented as Jython attributes of the object. Manipulate these Jython attributes using standard Jython mechanisms to change the corresponding data. Any changes to this object require the use of the Bundle.setConfigurations() method to save the change in theImage Construction and Composition Tool.


      BundleConfiguration attributes

      The BundleConfiguration object has the following read-write attribute:

      operationname

      The operation name of the configuration.


      BundleConfiguration methods

      None.


      BundleFiles reference

      You can manage files of the BundleInstallation, BundleConfiguration and BundleReset objects using the command-line interface. BundleFile provides the definition of a file for the selected operation for a bundle on a virtual machine.


      BundleFiles object

      A BundleFiles object is used to create a BundleFile object.


      BundleFiles methods

      The BundleFiles object has no methods that are unique to BundleFiles.


      BundleFiles examples

      Create a new BundleFile object using the interactive wizard:

      >>>wizard = icct.wizard()
      >>>newFile = icct.bundlefiles.create(wizard)
      >>>wizard.toDict()
      

      Create a new BundleFile using a Python dict object:

      >>>newFileDict = {'source': 'C:\\testFile.sh', 'executable': True}
      >>>newFile = icct.bundlefiles.create(newFileDict)
      


      BundleFile object

      A BundleFile object represents a file of a BundleInstallation, BundleConfiguration or BundleReset object of a bundle defined in the Image Construction and Composition Tool. Use the object to query and manipulate the file definition. Attributes of the BundleFile resource are represented as Jython attributes of the object. Manipulate these Jython attributes using standard Jython mechanisms to change the corresponding data. Any changes to this object require the use of the respective Bundle.setInstallation(), Bundle.setConfigurations() or Bundle.setReset() method to save the change in theImage Construction and Composition Tool.


      BundleFile attributes

      The BundleFile object has the following attributes, which are read-only unless otherwise noted:

      source

      The file name. Writeable.

      executable

      True if the file must be executable, False otherwise.


      BundleFile methods

      None.


      BundleFirewallRules reference

      You can manage firewall ports to open using the command-line interface. BundleFirewallRule provides the definition of a port or range of ports to open for a bundle on a virtual machine.


      BundleFirewallRules object

      A BundleFirewallRules object is used to create a BundleFirewallRule object.


      BundleFirewallRules methods

      The BundleFirewallRules object has no methods that are unique to BundleFirewallRules.


      BundleFirewallRules examples

      Create a new BundleFirewallRule object using the interactive wizard:

      >>>wizard = icct.wizard()
      >>>newRule = icct.bundlefirewallrules.create(wizard)
      >>>wizard.toDict()
      

      Create a new BundleFirewallRule using a Python dict object:

      >>>newRuleDict = {'endingport': 7777, 'startingport': 6666, 'protocol': u'UDP'}
      >>>newRule = icct.bundlefirewallrules.create(newRuleDict)
      


      BundleFirewallRule object

      A BundleFirewallRule object represents a firewall port or range of ports to open for a bundle defined in the Image Construction and Composition Tool. Use the object to query and manipulate the firewall port definitions. Attributes of the BundleFirewallRule resource are represented as Jython attributes of the object. Manipulate these Jython attributes using standard Jython mechanisms to change the corresponding data. Any changes to this object require the use of the Bundle.setFirewallRules() method to save the change in theImage Construction and Composition Tool.


      BundleFirewallRule attributes

      The BundleFirewallRule object has the following attributes, which are read-only unless otherwise noted:

      startingport

      The starting port number to open. Writeable.

      endingport

      The ending port number to open. Must be greater than or equal to startingport. Writeable.

      protocol

      Optional. The protocol of the ports. Valid values are: TCP, UDP.


      BundleFirewallRule methods

      None.


      BundleInstallations reference

      You can manage installation of a bundle using the command-line interface. BundleInstallation provides the definition how to install a bundle on a virtual machine.


      BundleInstallations object

      A BundleInstallations object is used to create a BundleInstallation object.


      BundleInstallations methods

      The BundleInstallations object has no methods that are unique to BundleInstallations.


      BundleInstallations examples

      Create a new BundleInstallation object using the interactive wizard:

      >>>wizard = icct.wizard()
      >>>newInstall = icct.bundleinstallations.create(wizard)
      >>>wizard.toDict() 
      

      Create a new BundleInstallation using a Python dict object:

      >>>newInstall = icct.bundleinstallations.create({})
      


      BundleInstallation object

      A BundleInstallation object represents installation operations for a bundle defined in the Image Construction and Composition Tool. Use the object to query and manipulate the installation definitions. Attributes of the BundleInstallation resource are represented as Jython attributes of the object. Manipulate these Jython attributes using standard Jython mechanisms to change the corresponding data. Any changes to this object require the use of the Bundle.setInstallation() method to save the change in theImage Construction and Composition Tool.


      BundleInstallation attributes

      The BundleInstallation object has the following attributes, which are read-only unless otherwise noted:

      commands

      A BundleCommand object. Writeable.

      files

      APython list of BundleFile objects. Writeable.


      BundleInstallation methods

      None.


      BundleOSRequirements reference

      You can manage the operating system requirements of a bundle using the command-line interface. BundleOSRequirement provides the definition of an operating system requirement for a bundle on a virtual machine.


      BundleOSRequirements object

      A BundleOSRequirements object is used to create a BundleOSRequirement object.


      BundleOSRequirements methods

      The BundleOSRequirements object has no methods that are unique to BundleOSRequirements.


      BundleOSRequirements examples

      Create a new BundleOSRequirement object using the interactive wizard:

      >>>wizard = icct.wizard()
      >>>newOSReq = icct.bundleosrequirements.create(wizard)
      >>>wizard.toDict()
      

      Create a new BundleOSRequirement using a Python dict object:

      >>>osReqDict = {'architecture': 'x86-32', 'distribution': 
            'Red Hat Enterprise Linux (RHEL)', 'type': 'Linux', 'minversion': u'1.2.3'}
      >>>newosReq = icct.bundleosrequirements.create(osReqDict
      


      BundleOSRequirement object

      A BundleOSRequirement object represents OSRequirement operations for a bundle defined in the Image Construction and Composition Tool. Use the object to query and manipulate the OSRequirement definitions. Attributes of the BundleOSRequirement resource are represented as Jython attributes of the object. Manipulate these Jython attributes using standard Jython mechanisms to change the corresponding data. Any changes to this object require the use of the Bundle.setOSRequirement() method to save the change in theImage Construction and Composition Tool.


      BundleOSRequirement attributes

      The BundleOSRequirement object has the following attributes, which are read-only unless otherwise noted:


      BundleOSRequirement methods

      architecture

      Optional. Operating system architecture. Writeable. Valid values are:

      • 'x86-32'
      • 'x86-64'
      • 'IA64'
      • 'POWER System'
      • 'System z'

      distribution

      Optional. Operating system distribution. Writeable. Valid values are:

      • 'Red Hat Enterprise Linux (RHEL)'
      • 'SUSE Linux Enterprise Server (SLES)
      • 'AIX Server'
      • 'Windows 7'
      • 'Windows Server 2008'
      • 'IBM i Server'

      type

      Optional. Operating system type. Writeable. Valid values are:

      • 'Any'
      • 'Linux'
      • 'AIX'
      • 'Windows
      • 'IBM i'

      minversion

      Optional. Minimum operating system version number.

      None.


      BundleProducts reference

      You can manage products included in a bundle using the command-line interface. BundleProduct provides the definition of a product contained in the bundle on a virtual machine.


      BundleProducts object

      A BundleProducts object is used to create a BundleProduct object.


      BundleProducts methods

      The BundleProducts object has no methods that are unique to BundleProducts.


      BundleProducts examples

      Create a new BundleProduct object using the interactive wizard:

      >>>wizard = icct.wizard()
      >>>newProduct = icct.bundleproducts.create(wizard)
      >>>wizard.toDict()
      

      Create a new BundleProduct using a Python dict object:

      >>>newProductDict = {'version': '8.1', 'publisher': 'IBM', 'name': 'Lotus Notes'}
      >>>newProduct = icct.bundleproducts.create(newProductDict)
      


      BundleProduct object

      A BundleProduct object represents product definitions for a bundle defined in the Image Construction and Composition Tool. Use the object to query and manipulate the Product definitions. Attributes of the BundleProduct resource are represented as Jython attributes of the object. Manipulate these Jython attributes using standard Jython mechanisms to change the corresponding data. Any changes to this object require the use of the Bundle.setProducts() method to save the change in the Image Construction and Composition Tool.


      BundleProduct attributes

      The BundleProduct object has the following attributes, which are read- only unless otherwise noted:

      name

      Product name. Writeable.

      publisher

      Product publisher or vendor. Writeable.

      version

      Product verrsion. Writeable.


      BundleProduct methods

      None.


      BundleResets reference

      You can manage image capture reset operation included in a bundle using the command-line interface. BundleReset provides the definition of a reset operation contained in the bundle on a virtual machine.


      BundleResets object

      A BundleResets object is used to create a BundleReset object.


      BundleResets methods

      The BundleResets object has no methods that are unique to BundleResets.


      BundleResets examples

      Create a new BundleReset object using the interactive wizard:

      >>>wizard = icct.wizard()
      >>>newReset = icct.bundleresets.create(wizard)
      >>>wizard.toDict()
      

      Create a new BundleReset using a Python dict object:

      >>>newResetDict = { }
      >>>newReset = icct.bundleresets.create(newResetDict)
      


      BundleReset object

      A BundleReset object represents an image capture reset operation for a bundle defined in the Image Construction and Composition Tool. Use the object to query and manipulate the reset operation. Attributes of the BundleReset resource are represented as Jython attributes of the object. Manipulate these Jython attributes using standard Jython mechanisms to change the corresponding data. Any changes to this object require the use of the Bundle.setReset() method to save the change in the Image Construction and Composition Tool.


      BundleReset attributes

      The BundleReset object has the following read-write attributes:

      command

      A BundleCommand object.

      files

      Python list of BundleFile objects.


      BundleReset methods

      None.


      BundleSoftwareRequirements reference

      You can manage software requirements of a bundle using the command-line interface. BundleSoftwareRequirement provides the definition of a SoftwareRequirement operation contained in the bundle on a virtual machine.


      BundleSoftwareRequirements object

      A BundleSoftwareRequirements object is used to create a BundleSoftwareRequirement object.


      BundleSoftwareRequirements methods

      The BundleSoftwareRequirements object has no methods that are unique to BundleSoftwareRequirements.


      BundleSoftwareRequirements examples

      Create a new BundleSoftwareRequirement object using the interactive wizard:

      >>>wizard = icct.wizard()
      >>>newSoftwareRequirement = icct.bundlesoftwarerequirements.create(wizard)
      >>>wizard.toDict()
      

      Create a new BundleSoftwareRequirement using a Python dict object:

      >>>newSoftwareRequirementDict = {'minversion': u'minversion', 'name': u'name'}
      >>>newSoftwareRequirement = icct.bundlesoftwarerequirements.create(newSoftwareRequirementDict)
      


      BundleSoftwareRequirement object

      A BundleSoftwareRequirement object represents a software requirement for a bundle defined in the Image Construction and Composition Tool. Use the object to query and manipulate the SoftwareRequirement operation. Attributes of the BundleSoftwareRequirement resource are represented as Jython attributes of the object. Manipulate these Jython attributes using standard Jython mechanisms to change the corresponding data. Any changes to this object require the use of the Bundle.setSoftwareRequirements() method to save the change in the Image Construction and Composition Tool.


      BundleSoftwareRequirement attributes

      The BundleSoftwareRequirement object has the following read-write attributes:

      name

      Bundle name.

      minversion

      Minimum version.


      BundleSoftwareRequirement methods

      None.


      Cloud providers reference

      You can manage cloud providers by using the command-line interface. Cloud providers provide the definition of hypervisors capable of building and capturing images.


      Cloudproviders object

      A cloudproviders object represents the collection of cloudproviders defined in Image Construction and Composition Tool. Objects of this type are used to create, delete, iterate over, list, and search cloudproviders.


      Cloudproviders methods

      The cloudproviders object has the methods described for a typical resource collection. The following methods are unique to cloudproviders as their parameters and return values differ from what is expected:

      create()

      This method creates a cloud provider. As the keys and values required for creating the various types of cloud provider differ, you can use the sample scripts in the cli_install_dir\samples directory when creating a cloud provider. The directory cli_install_dir is the directory where the command-line interface was downloaded and extracted. The method accepts the following parameter:

      dict

      A Jython dict object


      Cloudprovider object

      A cloudprovider object represents a particular cloud provider defined in Image Construction and Composition Tool. Use the object to query the cloud provider. Attributes of the cloud provider resource are represented as Jython attributes on the cloudprovider object. Change these Jython attributes by using standard Jython mechanisms to change the corresponding data in Image Construction and Composition Tool.


      Cloudprovider attributes

      The cloudprovider object has the following attributes, which are read-only unless otherwise noted:

      cloudProviderType

      Cloud provider type:

      • localesx: VMware ESX

      cloudUser

      User name of the cloud provider

      description

      The description of the cloud provider

      id

      Unique identifier of the cloud provider

      location

      Address to connect to the cloud provider

      name

      Name of the cloud provider

      ownerId

      Owner ID from the user object

      status

      State of the cloud provider. Value is active.


      Cloudprovider methods

      The following are cloud provider methods:

      createImageFromRunningVM()

      This method creates an image from a running VM. The method is valid only for certain cloud providers, for example, the VMware ESX cloud provider. This method accepts the following parameters:

      name

      The image name

      universalId

      The image unique identifier

      version

      The image version. The valid format is: major.minor.micro[.qualifier]

      hostname

      The IP address or host name of the running VM

      Username

      The user name to log on to the running VM

      password

      The password to log on to the running VM

      description

      Optional. The image description

      delete()

      This method deletes the cloud provider.

      getImages()

      This method returns a Python list of image objects, which represent all the images, both imported and extended, for the cloud provider. You can optionally filter the list by using regular expressions. The method accepts the following parameters:

      nameRegEx

      String for a regular expression to match against the image name. Default is none.

      universalIdRegEx

      String for a regular expression to match against the image universalId (symbolicName). Default is none.

      versionRegEx

      String for a regular expression to match against the image version. Default is none.

      descriptionRegEx

      String for a regular expression to match against the image description. Default is none.

      To get a list of all the images for a cloud provider, use the following method:

      >>> icct.cloudproviders[0].getImages()
      

      To get a list of all the images for a cloud provider that have .Linux. in the name, use the following method:

      >>> icct.cloudproviders[0].getImages('Linux')
      

      To get a list of all the images for a cloud provider that have .suse. in the universalId and .1.0.0. in the version, use the following method:

      >>> icct.cloudproviders[0].getImages(None, 'suse', '1.0.0')
      

      getBaseImages()

      This method returns a Python list of image objects, which represent a list of base images for the cloud provider. Only certain cloud providers support base images. A cloud provider base image is an image that is already known to the cloud provider. You must import the base image definition so that the Image Construction and Composition Tool can use these images. Base images that are already imported are not listed. You can optionally filter the list by using regular expressions. The method accepts the following parameters:

      nameRegEx

      String for a regular expression to match against the image name. Default is none.

      versionRegEx

      String for a regular expression to match against the image version. Default is none.

      descriptionRegEx

      String for a regular expression to match against the image description. Default is none.

      To get a list of all the base images, which are not already imported into the cloud provider and which have .Red. in the name, use the following method:

      >>> icct.cloudproviders[0].getBaseImages('Red')
      

      importBaseImage()

      This method imports a base image definition into the cloud provider for later use in extending an image. Only certain cloud providers support base images. The method is synchronous. The method accepts the following parameter:

      dict

      A single Python dict object from the getBaseImages() method.

      To return an image object that represents the imported base image, use the following code:

      >>> cloudprovider = icct.cloudproviders[0]
      >>> baseImages = cloudprovider.getBaseImages()
      >>> newImage = cloudprovider.importBaseImage(baseImages[0])
      

      importImage()

      Imports an image directly into Image Construction and Composition Tool. This method is only valid for the VMware ESX cloud provider. The method accepts the following parameters:

      URL

      Where the image can be imported from.

      Username

      Optional. This argument is required only for a URL that needs authentication.

      The attributes to import the new virtual image can be specified in the following ways:

      • As a string that specifies a non-authenticated URL from which the image can be downloaded:

        >>> esxCloudProvider = icct.cloudproviders[0] 
        >>> importingImage = esxCloudProvider.importImage
                        ('http://localhost/myImage.ova') 
        >>> importingImage.waitFor() 
        >>> if importingImage.currentImageState == 'import_failed':
        >>>     print 'Image import failed!' 
        

      • As a string that specifies a file local to the Image Construction and Composition Tool machine:

        >>> importImage = esxCloudProvider.importImage('/tmp/myImage.ova') 
        

      • As a string that specifies an authenticated URL, user name, and password:

        >>> importingImage = esxCloudProvider.importImage
                     ('http://localhost/myImage.ova', 
                     'username', 'password')
        

      This method returns an image object for the newly imported image. This method queues the operation in Image Construction and Composition Tool and returns immediately. You can use the returned image object to track the status of the import process. You can also use the waitFor() method to pause until the import completes.


      Images reference

      You can manage images by using the command-line interface. Images provide the definition of virtual machine images that can be used to import, extend, capture, and export images.


      Images object

      An images object represents the collection of images defined in Image Construction and Composition Tool. Objects of this type are used to create, delete, iterate over, list, and search images in the tool.


      Images methods

      The images object has the methods described for a typical resource collection. The following methods are unique to images because their parameters and return values differ from what is expected:

      import()

      Imports an image directly into Image Construction and Composition Tool. This method is only valid for certain cloud providers, for example, the VMware ESX cloud provider.The import() method accepts the following parameters:

      cloudProviderId

      The ID of the cloud provider to import the image to.

      URL

      Where the image can be imported from.

      Username

      Optional. This argument is required only for a URL that needs authentication.

      password

      Optional. This argument is required only for a URL that needs authentication.

      The attributes to import the new virtual image can be specified in the following ways:

      • As a string that specifies a non-authenticated URL from which the image can be downloaded:

        >>> icct.images.import(1, 'http://localhost/myImage.ova')
        

      • As a string that specifies a file local to the Image Construction and Composition Tool machine:

        >>> icct.images.import(1, '/tmp/myImage.ova')
        

      • As a string that specifies an authenticated URL, username, and password:

        >>> icct.images.import(1, 'http://localhost/myImage.ova', 
                                        'username', 'password')
        

      This method returns an image object for the newly imported image. This method queues the operation in Image Construction and Composition Tool and returns immediately. You can use the returned image object to track the status of the import process. You can also use the waitFor() method to pause until the import completes.

      To get a list of all the images, use the following method:

      >>>allImages = icct.images
      

      To get list with a specific bundle, for example, "bundle abc", listed first, use the following method:

      >>>bundles = icct.bundles['bundle abc']
      

      To import an image and wait for the import to complete, use the following code:

      >>> esxCloudProvider = icct.cloudproviders[0]
      >>> importingImage = icct.images.import(esxCloudProvider.id. 
                             'http://localhost/myImage.ova')
      >>> importingImage.waitFor()
      >>> if importingImage.currentImageState == 'import_failed':
      >>>     print 'Image import failed!'
      


      Image attributes

      The image object has the following attributes. All are read-only, unless otherwise noted:

      assetUri

      Unique identifier used by the cloud provider to locate the image on the server

      created

      The creation time of the image, in seconds since midnight, 1 January 1970 Coordinated Universal Time (UTC). When the image displays, this value is shown as the date and time in the local time zone.

      currentAssetState

      Valid values are: .draft., .published.

      currentImageState

      Valid values are: "completed", "complete_failed", "capture_failed", "capturing", "deployable", "deleting", "importing", "out_of_sync", "synced", "syncing", "sync_failed"

      currentState

      Valid values are: "draft", "published"

      currentAssetState_text

      Textual representation of currentAssetState. This field is a string representation of currentAssetState in the preferred language of the requester and is automatically generated by the tool.

      currentImageState_text

      Textual representation of currentImageState. This field is a string representation of currentImageState in the preferred language of the requester and is automatically generated by the tool.

      currentState_text

      Textual representation of currentState. This field is a string representation of currentState in the preferred language of the requester and is automatically generated by the tool.

      description

      Description of the image

      id

      Unique identifier used by the cloud provider to locate the image on the server

      name

      Name of the image. Read/write.

      remoteImage

      Unique identifier used by the cloud provider to locate the image on the hypervisor

      symbolicName

      See Universal identifiers

      updated

      The last time the image was changed, in seconds, since midnight, 1 January 1970 UTC. When the image displays, this value is shown as the date and time in the local time zone.

      uri

      A URL that uniquely identifies the image.

      version

      The image version.


      Image methods

      The image object has the following methods:

      addBundle()

      This method adds a bundle to an image. If the image supports multiple personalities and there is a single personality in the image, the bundle is also added to the personality. Depending on how the bundle that is added is defined, you can specify any installation and deployment parameters required by the bundle. The addBundle() method accepts the following parameters:

      bundleId

      The ID of the bundle to be added to the image. For example, bundle.id.

      installParams

      A list of Python dict objects. The set of valid installation parameters for the bundle can be obtained by calling bundle.getInstallParameters(). The default value is an empty list.

      deployParams

      A list of Python dict objects. The set of valid deployment parameters for the bundle can be obtained by calling bundle.getDeployParameters(). The default value is an empty list.

      >>> bundle = icct.bundles[0]
      >>> installParams = bundle.getInstallParameters()
      >>> installParams[0]['value'] = 'myValue'
      >>> image.addBundle(bundle.id, installParams)
      

      addBundleToPersonality()

      This method adds the specified bundle to a personality.

      This method is supported only for PureApplication System and VMware ESX cloud provider images.

      The addBundleToPersonality() method accepts the following parameters:

      Key

      The unique key used to identify the personality within the image.

      bundleIdOrUri

      The identifier of the bundle to be added to the personality. It can be specified as either bundle.id or bundle uri.

      deployParams

      A list of Python dict objects. The set of valid deployment parameters for the bundle can be obtained by calling bundle.getDeployParameters(). The default value is an empty list.

      Example 1:

      >>> image=icct.images[2]
      >>> waBundle=icct.bundles[0]
      >>> pDeployParams=waBundle.getDeployParameters()
      >>> pDeployParams[0]['value']='newWaConfig2'
      >>> image.addBundle(waBundle.id)
      >>> image.addBundleToPersonality(Key, waBundle.id, pDeployParams)        
      

      Example 2:

      >>> image=icct.images[2]
      >>> waBundle=icct.bundles[0]
      >>> pDeployParams=waBundle.getDeployParameters()
      >>> pDeployParams[0]['value']='newWaConfig2'
      >>> image.addBundle(waBundle.id)
      >>> bundleUri=image.getPlannedBundles()[1]['uri']
      >>> image.addBundleToPersonality(key, bundleUri, pDeployParams)
      

      addLicense()

      This method is used to add a license to an image. This method accepts the following parameters:

      name

      The displayable name of the new license.

      licenseFile

      A fully qualified path to the license file on the local machine.

      lang

      The language of the license file. This parameter is optional and defaults to en-US.


      Example for Linux

      >>> image.addLicense(u'My License', '/home/license.txt')
      


      Example for Windows

      >> image.addLicense(u'My License', 'C:\\home\\license.txt')
      

      addPersonality()

      This method creates a personality with the specified parameters.

      This method is supported only for PureApplication System and VMware ESX cloud provider images. The addPersonality() method accepts the following parameters:

      label

      The name of the new personality that you are adding.

      key

      The unique key used to identify the personality within the image.

      description

      Optional. The description for the new personality that you are adding.

      isGroup

      Optional. Boolean parameter that can be set to True to indicate that multiple instances of the personality can be included in a virtual system pattern. Otherwise, set to False, which is the default value.

      isElastic

      Optional. Boolean parameter that can be set to True to indicate that the image supports dynamic resizing of the number of instances at run time. Otherwise, set to False, which is the default value. By using this option, you can add or remove instances from a deployed virtual system pattern.

      isIPv6

      Optional. Boolean parameter that can be set to True to indicate that the personality supports both IPv4 and IPv6. Set to False to indicate that the personality supports IPv4 only, which is the default value.

      productGUID

      Optional. The product ID for the new personality that you are adding. Ensure that you specify a valid ID. You can specify multiple personalities by using the character | as a separator.

      >>> image=icct.images[2]
      >>> image.addPersonality('personality1','example personality',
      'key1',False,False,False,'5725-D64|5725-D57')
      

      capture()

      This method captures the image. An image must be captured before it can be exported. This method is asynchronous.

      >>> image.capture()
      >>> image.waitFor()
      >>> if image.currentImageState != 'completed':
      >>>     print '\n\aCapture Failed!!!'
      

      delete()

      This method is used to delete an image. The method accepts the following parameter:

      deleteFromCloudProvider

      Optional, defaults to True. If the image contains a copy of the image on the cloud provider, specifying True deletes the image from the cloud provider also.
      For example:

      >>>image=icct.images[0]
      >>>image.delete(False)
      

      deleteLicense()

      This method is used to delete a license from an image. The method accepts the following parameter:

      dict

      A Python dict object that was obtained from the list of dict objects returned by getLicenses().

      >>> licenses = image.getLicenses()
      >>> image.deleteLicense(licenses[0])
      

      deletePersonality()

      This method deletes the personality with the specified key.

      This method is supported only for PureApplication System and VMware ESX cloud provider images. The deletePersonality() method accepts the following parameter:

      key

      The unique key used to identify the personality within the image.

      >>> image=icct.images[2]
      >>> image.deletePersonality('key1')
      
      When only one personality exists in the image and you attempt to delete it by calling this method, a default personality is used with the parameter values that are specified at the image level.

      export()

      This method starts the asynchronous process of exporting an image to a remote location. This method accepts the following parameters:

      export_host

      The IP address of the computer where the image is to be copied.

      export_path

      The directory to copy the image to. By default, the image name is used to create the file name. To specify a different file name, include the file name with an .OVA extension.

      export_userid

      The user ID for UNIX Secure Copy.

      export_password

      The password for UNIX Secure Copy.

      ova_format

      The OVA format. Valid values are:

      'wca'

      WebSphere CloudBurst Appliance

      'vmware'

      • IBM PureApplication System
      • IBM SmartCloud Provisioning version 2
      • VMware VirtualCenter

      If this parameter is not specified, the default value is vmware.

      privateKeyFile

      Optional: The private key file name. If specified, the export_password parameter is used as the passphrase.

      Note: Not all cloud providers support export. The various pieces of the image are extracted from the internal repository and used to generate an OVA file. This file is then copied to the specified location, as shown in the following example:

      >>> image = icct.images[0]
      >>> imageExportId = image.export('localhost', '/tmp', 'userid', 'password')
      >>> image.waitForExport(imageExportId)
      
      This method returns an identifier for the exporting image task. This method queues the operation in Image Construction and Composition Tool and returns immediately. You can use the returned identifier to track the status of the export process. You can use the waitForExport() method to pause until the export completes. You can use the exportStatus() method to query the last known export status but you must call the refresh() method before calling the exportStatus() method to ensure that you get the latest status.

      exportStatus()

      This method checks the status of the asynchronous process that is exporting the image. This method accepts the following parameter:

      exportId

      The value returned from a image.export() call.

      >>> exportedId = image.export('localhost', '/tmp', 'userid', 'password')
      >>> image.waitForExport(exportedId)
      >>> image.refresh()
      >>> image.exportStatus(exportedId)" 
      
      This method returns a string that specifies the current export status of the Image object. To ensure the latest status, call the refresh() method before calling the exportStatus() method. Valid export status values are .Exporting., .Complete., .Failed..

      extend()

      This method is used to extend, or clone, an existing image so that you can create and update an image, such as adding bundles. This method is asynchronous. This method accepts the following parameters:

      dict: A Python dict object with the following key and value pairs

      name

      The displayable name of the new image

      description

      A description of the new image

      symbolicName

      The universal identifier for the new image

      version

      The version of the new image
      This method returns an image object that represents the new image:

      >>> params = { }
      >>> params['description'] = 'my description'
      >>> params['name'] = 'MyImageName'
      >>> params['symbolicName'] = 'com.myname.MyNewImage'
      >>> params['version'] = '1.0.0'
       
      >>> print '\n Extend the image with the following parameters: %s' % (params)
       
      >>> newImage = image.extend(params)
      >>> newImage.waitFor()
      

      getLicenses()

      This method returns a Python list of Python dict objects. Each Python dict object contains the following keys:

      id

      Internal identifier for the license.

      name

      The displayable name.

      type

      The type of license. Valid value is .text..

      content

      The actual license agreement.

      >>> licenses = image.getLicenses()
      >>> print 'There are %s licenses' % len(licenses)
      >>> for license in licenses:
      >>>     print 'The license name is %s' % (license['name'])
      >>>     print '%s' % (license[u'content'].encode('utf-8'))
      

      getPersonalities()

      This method returns a list of personalities in the image.

      This method is supported only for PureApplication System and VMware ESX cloud provider images.

      >>> image=icct.images[2]
      >>> image.getPersonalities()
      

      getPersonality()

      This method returns a python dict object for the personality key specified.

      This method is supported only for PureApplication System and VMware ESX cloud provider images. The getPersonality() method accepts the following parameter:

      key

      The unique key used to identify the personality within the image.

      >>> image=icct.images[2]
      >>> image.getPersonality('aPartKey')
      

      getInstalledBundles()

      This method returns all the installed bundles from an image.

      >>> image=icct.images[2]
      >>> imagePlannedBundles=image.getInstalledBundles()
      

      getPlannedBundles()

      This method returns all the planned bundles from an image.

      >>> image=icct.images[2]
      >>> imagePlannedBundles=image.getPlannedBundles()
      

      getSynchronizeLicenseAcceptanceRequired()

      This method returns Python True if the license terms must be accepted on the synchronize() method call, Python False otherwise. If license acceptance is required by the cloud provider, you must pass the correct flag on the synchronize() call or the synchronization of the image fails.

      >>> image.getSynchronizeLicenseAcceptanceRequired()
      

      getSynchronizeParametersForImage()

      This method returns a Python list of Python dict objects that represent the parameters for an image that must be passed on the synchronize() call. Each dict object contains the following keys:

      tag

      An internal string identifier. Generated by using the bundle name.

      args

      APython list of Python dict objects. Each dict object contains the following keys:

      label

      User displayable text

      isPassword

      Python: True if this field is a password, False otherwise.

      name

      Internal ID for the parameter

      type

      Valid value is string.

      UserConfigurable

      Python: True if the user can change this parameter

      value

      The actual value

      visible

      Python: True if the user can see this parameter.

      >>> syncParamsForImage =  newImage.getSynchronize
                   ParametersForImage()
      >>> print 'Parameter tag is %s' % 
                  (syncParamsForImage[0]['tag'])
      >>> for arg in syncParamsForImage[0]['args']:
      >>>     print '   Label %s has value %s' % 
                  (arg['label'], arg['value'])
      

      getSynchronizeParametersForCloudProvider()

      This method returns a Python list of Python dict objects that represent the cloud provider parameters that must be passed on the synchronize() call. Each dict object contains the following keys:

      description

      User displayable description

      label

      User displayable text

      isPassword

      Python: True if this field is a password, False otherwise.

      name

      Internal ID for the parameter

      type

      Valid value is string.

      validValues

      If the value is restricted to a predefined set of values, a Python list of Python dict objects is returned. Each dict object contains the following keys: label . user displayable text, value . internal value for the selection.

      value

      The actual value.

      >>> for aParam in syncParamsForCloud:
      >>>     if aParam['name'] == 'password':
      >>>         print '\n\n Setting the password'
      >>>         aParam['value']='passw0rd'
      

      getVirtualSystemHostname()

      This method returns the IP host name of the virtual system used to synchronize an image. If the host name is not available, none is returned.

      getVirtualSystemIPAddress()

      This method returns the IP address of the virtual system used to synchronize an image. If the IP address is not available, none is returned.

      getVirtualSystemLogs()

      This method gets the Image Construction and Composition Tool logs for the virtual system used to synchronize an image and saves the compressed file locally. This method accepts the following parameter: path - the path on the local file system where the logs compressed file must be saved. The default is logs.zip.

      isPersonalitiesSupported()

      This method returns True if the image supports multiple personalities.

      This method is supported only for PureApplication System and VMware ESX cloud provider images.

      >>> image=icct.images[2]
      >>> image.isPersonalitiesSupported()
      

      modifyPersonality()

      This method modifies a personality, specified by using a personality key, with the value specified in the parameter dict.

      This method is supported only for PureApplication System and VMware ESX cloud provider images. The modifyPersonality() method accepts the following parameters:

      key

      The unique key used to identify the personality within the image.

      dict

      A Python dict object. Allowed values for dict are: 'label', 'description', 'key', 'isGroup', 'isElastic', 'isIPv6', and 'productGUID'. For 'productGUID', you can specify multiple personalities by using the character | as a separator.

      >>> image=icct.images[2]
      >>> image.modifyPersonality('OS Part',{'description':'OS personality description',
      'isIPv6':True,'productGUID':'5725-D64|5725-D57'})
      

      modifyPersonalityBundleDeployParams()

      This method changes the deployment parameters of the specified bundle, to the parameters specified in the parameter deployParams.

      This method is supported only for PureApplication System and VMware ESX cloud provider images. The modifyPersonalityBundleDeployParams() method accepts the following parameters:

      key

      The unique key used to identify the personality within the image.

      bundleIdOrUri

      The identifier of the bundle to be added to the personality. It can be specified as either bundle.id or bundle uri.

      deployParams

      A list of Python dict objects. The set of valid deployment parameters for the bundle can be obtained by calling bundle.getDeployParameters(). The default value is an empty list.

      When only one personality exists in the image, the deployParams values are also applied to the parameters at the image level.

      >>> image=icct.images[2]
      >>> waBundle=icct.bundles[0]
      >>> pDeployParams=waBundle.getDeployParameters()
      >>> pDeployParams[0]['value']='newWaConfig3'
      >>> image.modifyPersonalityBundleDeployParams('key1', waBundle.id, pDeployParams)
      

      synchronize()

      This method is used to synchronize an image. All bundles that are in the planned state are added to the image. This method is asynchronous. This method accepts the following parameters:

      parametersForImage

      A Python list of Python dict objects with the synchronization parameters for the image. Use the image.getSynchronizeParametersForImage() to get the Python list.

      parametersForCloudProvider

      A Python list of Python dict objects with the synchronization parameters for the cloud provider. Use the image.getSynchronizeParametersForCloudProvider() to get the Python list.

      AcceptTerms

      Python: True is you accept the license terms, False otherwise.

      >>> newImage.synchronize(syncParamsForImage, syncParamsForCloud, True)
      >>> newImage.waitFor()
      >>> if newImage.currentImageState != 'synced':
      >>>     print '\n\aSync Failed!!!'
      

      waitForExport()

      This method can be used to wait a specified time for the export of the image to finish. The method can assist you in writing scripts that must wait for Image Construction and Composition Tool to complete a particular action. The waitForExport() method periodically checks for the export to finish or a timeout expires. The method accepts the following parameters:

      exportId

      The ID returned by a call to the image.export() method.

      maxWait

      The maximum wait time in seconds. Floating point values can be used to indicate fractions of a second. A negative value causes this function to wait indefinitely. If a value is not supplied, the default value is -1

      interval

      The interval at which the image export status is evaluated in seconds. Floating point values can be used to express fractions of a second. The default value is 60 seconds.

      >>> image = icct.images[0]
      >>> imageExportId = image.export('localhost', '/tmp', 'userid', 'password')
      >>> image.waitForExport(imageExportId) 
      


      Users reference

      You can administer the user of Image Construction and Composition Tool using the command-line interface.


      Users object

      A users object represents the collection of users defined in Image Construction and Composition Tool. Objects of this type are used to list and search for users.


      Users method

      The users object has the following methods:

      admin

      Returns a user object representing the administrative user on the system. For help on the user object returned, enter the following command:

      >>> help(icct.users.admin())
      

      self

      Returns a user object representing the current user of the command line interface on the system. For help on the user object returned, enter the following command:

      >>> help(icct.users.self())
      


      User object

      A user object represents a particular user defined in the Image Construction and Composition Tool. Use this object to query and manipulate the user definition on the tool. Attributes of the user object and relationships between the user object and other resources in the Image Construction and Composition Tool are represented as Jython attributes on the user object. Manipulate these Jython attributes using standard Jython mechanisms to change the corresponding Image Construction and Composition Tool data.


      User attributes

      The user object has the following attributes:

      currentmessage

      The message associated with the status of the user. This field is an eight character string value that is automatically generated by the tool. This field is read-only.

      currentmessage_text

      Textual representation of currentmessage. This field is a string representation of currentmessage in the preferred language of the requester and is automatically generated by the tool.

      currentstatus

      The status of the user. This field is an eight -character string value that is automatically generated by the tool. This field is read-only.

      currentstatus_text

      Textual representation of currentstatus. This field is a string representation of currentstatus in the preferred language of the requester and is automatically generated by the tool.

      email

      The email address of the user. This field is a string value and has a maximum length of 128 characters.

      fullname

      The full name of the user. This field is a string value and has a maximum length of 64 characters.

      id

      The ID of the user. This field is read-only. This value is numeric and is automatically generated by the system.

      password

      The password of the user. This field is a write-only string value and has a maximum length of 128 characters.

      Username

      The login name for the user. This field is a string value and has a maximum length of 64 characters.

      To change the user password, use the following code:

      >>> user = icct.users[0]
      >>> user.password = 'newpassword'
      


      Problem determination reference for the command-line interface

      You can work with problem determination using the command-line interface.


      Diagnostics object

      The diagnostics object represents the diagnostics package in Image Construction and Composition Tool. Help is available for the diagnostics object on the command line interface. To get help, pass the diagnostics object as an argument to the help() function, as shown in the following example:

      >>> help(icct.diagnostics)
      


      Diagnostics methods

      The diagnostics object has the following method:

      get

      This method gets the logs for Image Construction and Composition Tool and saves the compressed file locally. This method accepts the following parameter:

      • path: The path on the local file system where the logs compressed file is saved. The default is logs.zip.


      Trace object

      The trace object returns a TraceFile object representing the running trace file in Image Construction and Composition Tool. The trace object has the following methods:

      add

      Adds a logger and optional log level to the trace file specification. Logger names use Java package name syntax and log levels are one of the following values:

      • OFF
      • SEVERE
      • WARNING
      • CONFIG
      • INFO
      • FINE
      • FINER
      • FINEST

      The default value is OFF. The add method is shown in the following example:

          >>> icct.trace.add('com.ibm.cloud.icn', 'FINE')
       
          >>> icct.trace.add('com.ibm.cloud.icn.not.interested')
      

      remove

      Removes an existing logger from the trace file specification. Logger names use Java package name syntax:

        >>> icct.trace.remove('com.ibm.cloud.icn.not.interested')
      

      set

      Sets the log level for an existing logger in the trace file specification. Logger names use Java package name syntax and log levels are one of the following values:

      • OFF
      • SEVERE
      • WARNING
      • CONFIG
      • INFO
      • FINE
      • FINER
      • FINEST

      The set method is shown in the following examples:

      >>> icct.trace.set('com.ibm.cloud.icn', 'FINE')
       
      >>> icct.trace.set('com.ibm.cloud.icn', 'SEVERE')
      

      spec

      Returns a map with the trace file specification for Image Construction and Composition Tool. The map has key-value pairs in which the key is the package name and the value is the log level.

      tail

      Prints the last <n> lines of the file, where <n> is an integer. The default value is 10.

          >>> icct.trace.tail()
       
          >>> icct.trace.tail(100)
      


      Error object

      The error object returns an ErrorFile object representing the running error file in the Image Construction and Composition Tool. The error object has one method, the tail method. The tail method prints the last <n> lines of the file, where <n> is an integer. The default value is 10. The tail method is shown in the following example:

      >>> icct.error.tail()
      >>> icct.error.tail(100)
      


      Get help on the command-line interface

      As you perform administrative functions using the command-line interface, you can get help for all resources.

      You can get help for any Image Construction and Composition Tool resources, attributes, and methods on the command-line interface. This task provides basic information about options for invoking the command-line interface help function. Use the help command to get help for command syntax, available commands, and using interactive mode. To get help, start the command-line interface in interactive mode. To run the command-line interface tool in interactive mode, initialize with the required parameters, but do not include the -c or -f parameters. Enter help, as shown in the following example:

      $ icct -h myicct.mycompany.com -P 443 -u joeadmin -p password >>> help 

      The help command shown here is a Jython function. When it is used as shown, it provides a high-level overview of the command line environment and instructions for accessing help on more specific topics.


      Procedure

      • Invoke general help

        When used with no parentheses and no parameters, the help command provides general help for using the command-line interface. In interactive mode, you can invoke icct.help without the package prefix, as shown in the following example:

        >>> help 

      • Invoke help for the package

        To get help for the Image Construction and Composition Tool package, use the following command:

        >>> help(icct)
        

        When invoked with a parameter, the help function provides detailed information about the specified package, module, function, or property. Information about invoking help for each resource is available in the reference information for that resource.

      • Invoke detailed help about a specific topic

        Pass a single parameter to the help function to get more detailed help about a specific topic. For example, to see detailed help for how to work with hypervisors in the command-line interface, enter the following command:

        >>> help(icct.cloudproviders)
        

        The icct prefix is used to group all of the Image Construction and Composition Tool-specific Jython functions into a single package to reduce the chances of name collisions with functions and variables in your own scripts.


      The preinstalled IBM WAS Hypervisor Edition virtual images

      A set of IBM WAS Hypervisor Edition virtual images for VMware ESX hypervisor technologies are preinstalled in the catalog.

      These virtual images contain the following preinstalled software:

      • RedHat Linux 6.4 (64-bit) Enterprise server operating system
      • IBM WAS Network Deployment (32-bit or 64-bit) 7.0.0.25, 8.0.0.4, or 8.5
      • Java Enterprise Edition 6.0 support in IBM WAS 8.0 and above
      • IBM WAS Hypervisor Edition Intelligent Management Pack 7.0.0.2 or 6.1.1.5 or both
      • IBM HTTP Server for WAS 7.0.0.25, 8.0.0.4, or 8.5
      • IBM HTTP Server for WAS plug-ins for 7.0.0.25, 8.0.0.4, or 8.5
      • IBM Update Installer for WebSphere software 7.0.0.23/25
      • IBM Support Assistant Lite for WAS 1.3.3
      • IBM Installation Manager 1.5.3
      • IBM Virtual Solutions Activation Engine 2.1.1


      IBM WAS Hypervisor Edition 7.0.0.25 Intelligent Management Pack for VMware

      This virtual image contains IBM WAS Hypervisor Edition Version 7.0.0.25 with Intelligent Management Pack.

      • There are two VMware images that include RedHat 6.4 Enterprise edition (64-bit) operating system.

      Intelligent Management Pack 7.0.0.2 and 6.1.1.5 are included in the virtual images but they require a separate license to be enabled.

      The following parts are available when creating patterns from this virtual image:

      • Administrative agents
      • Custom nodes
      • Deployment manager
      • IBM HTTP servers
      • Job Manager
      • Stand-alone server
      • On demand router (ODR)

        Note: You must augment the ODR when you enable Intelligent Management Pack. Additionally, include this part only in patterns where Intelligent Management Pack is enabled. If the part is included in a pattern where the product is not enabled, the deployment fails.

      You can optionally augment these parts during deployment by using any of the following feature packs:

      • Web 2.0 Feature Pack 1.1.0.1
      • IBM WebSphere eXtreme Scale V7.1.1.1 client only
      • SCA Feature Pack 1.0.1.13
      • CEA Feature Pack 1.0.0.11
      • XML Feature Pack 1.0.0.11
      • JPA/OSGI Feature Pack 1.0.0.5
      • Dynamic Scripting 1.0.0.1


      IBM WAS Hypervisor Edition 8.0.0.4 Intelligent Management Pack for VMware

      This virtual image contains IBM WAS Hypervisor Edition version 8.0.0.4 with Intelligent Management Pack.

      • There are two VMware images that include RedHat 6.4 Enterprise edition (64-bit) operating system.

      Intelligent Management Pack 7.0.0.2 is included in the virtual images but it requires a separate license to be enabled.

      The following parts are available when creating patterns from this virtual image:

      • Administrative agents
      • Custom nodes
      • Deployment manager
      • IBM HTTP servers
      • Job Manager
      • Stand-alone server
      • On demand router (ODR)

        Note: The ODR part must be augmented when Intelligent Management Pack is enabled. Additionally, this part must be included only in patterns where Intelligent Management Pack is enabled. If the part is included in a pattern where Intelligent Management Pack is not enabled, the deployment fails.

      The following additional feature packs are included in the 8.0.0.4 image:

      • Web 2.0 Feature Pack 1.1.0.1
      • IBM WebSphere eXtreme Scale V7.1.0.4 client only
      • Dynamic Scripting v1.0.0.1


      The preinstalled IBM OS Image for Red Hat Linux Systems

      IBM OS Image for Red Hat Linux Systems is preinstalled in the system catalog, and provides the operating environment in which workload patterns run, including the operating system and infrastructure unique to the product.

      IBM OS Image for Red Hat Linux Systems is a prerequisite for deploying virtual application patterns with VMware ESX hypervisors. In addition to virtual application patterns, IBM OS Image for Red Hat Linux Systems is also required for a set of shared services deployed by the product in support of all virtual application patterns. These shared services include such components as web proxy and load balancing.

      The following virtual image is available to use in your deployments:

      • IBM OS Image for Red Hat Linux Systems V2.0.0.1 is based on Red Hat Linux 6.2 x86_64

      IBM OS Image for Red Hat Linux Systems can also be deployed as a virtual system and used as a base image for the clone and extend function. When you deploy it as a virtual system, you are given the option to provide values for the following fields:

      • BOOTSTRAP_URL
      • AGENT_TOKEN
      • PUBLIC_KEY
      • DEPLOYMENT_URL
      • LAUNCHED_BY
      • SERVER_NAME
      • KERNELSERVICE_URL
      • SIGNER_PRIVATE_KEY

      The preceding fields are related to the image's origination with the web application pattern type. Leave the fields blank when you deploy the image as a virtual system.

      For basic activation, extending and capturing abilities, custom images require the following RPMs:

      • LINUX4AE-version_number.noarch
      • activation-engine-version_number.noarch

      Do not modify or delete the following components during customization of the image to be captured:

      • /etc/virtualimage.properties file
      • /opt/ibm/ae/ directory


      DB2 Enterprise virtual image

      IBM DB2 Enterprise 9.7 Fix Pack 6 and 10.1 are preinstalled in the system catalog.

      The following DB2 Enterprise 9.7.5 and 10.1 virtual images are available for use with IBM PureApplication System W1500:

      • DB2 Enterprise V9.7 Fix Pack 8 HV
      • DB2 Enterprise V10.1 HV Fix Pack 2


      DB2 Enterprise V9.7 Fix Pack 8 and 10.1 HV Fix Pack 2

      DB2 Enterprise V9.7 Fix Pack 8 and 10.1 Fix Pack 2 provide the following parts:

      • DB2 Enterprise
      • DB2 Enterprise HADR Primary
      • DB2 Enterprise HADR Secondary
      • DB2 Enterprise 90-day Trial


      High availability deployments

      To assist in disaster recovery, it is now possible to place each part in a DB2 high availability disaster recovery (HADR) pair in its own dedicated virtual system pattern. In this situation, deploy the Standby system first.

      You can define your own virtual system patterns that combine parts from different virtual images. However, including more than one DB2 HADR pair into a single virtual system pattern is not supported. You should place each DB2 HADR pair into its own virtual system pattern.


      Tune the Windows Server 2008 R2 virtual image

      Tune the performance of the Windows Server 2008 R2 virtual image can improve deployment times for the virtual patterns.

      Recommendations for improving the performance of the Windows Server 2008 R2 virtual image are listed in the following procedure. You can apply these performance improvements to the virtual image by using either the Image Construction and Composition Tool or the virtual image extend and capture function in the workload console.


      Procedure

      • Disable Windows services that are not used in your environment. To view the list of services to disable, click Start > Administrative Tools > Services. For example, the following list includes services that may not be used. You might also determine that additional services not included in the list should be disabled:

        • Background Intelligent Transfer Service
        • Certificate Propagation
        • Print Spooler
        • Shell Hardware Detection
        • Windows Firewall
        • Windows Update
        • Power
        • Remote Desktop Configuration
        • Remote Desktop Services
        • Remote Desktop Services UserMode Port Redirector

        Ensure that you are conforming to your local security policy before you disable any security related service.

      • Disable hardware devices and hardware configuration settings that do not typically apply when you are using a virtual server. Use the Windows Device Manager to disable hardware interface devices and configurations, such as display adapters, diskette drives, diskette controllers, monitors, system speakers, and the COM and LPT ports. To open the Device Manager, click Start > Control Panel > Hardware > Devices and Printers > Device Manager.

      • Configure Windows performance settings for visual effects and data protection.

        1. Click Start > Control Panel > System and Security > System > Advanced system settings > Advanced > Performance > Settings.

        2. Configure the performance of visual effects. On the Visual Effects tab, select the Adjust for best performance option. By doing so, all Custom options are then cleared.

          Note: The Smooth edges of screen fonts and Use visual styles on windows and buttons options might be automatically selected when the image is deployed, but no action to clear these options is required.

        3. Configure the security and data protection of certain Windows programs and services. On the Data Execution Prevention tab, select the Turn on DEP for essential Windows programs and service only option.

          Ensure that you are conforming to your local security policy before you select this option.

      • Disable Remote Desktop related services if your business needs do not require Remote Desktop connections. The specific services that you can disable are Remote Desktop Configuration, Remote Desktop Services, and Remote Desktop Services UserMode Port Redirector.

        If you require Remote Desktop connections, you can improve your deployment times by disabling only the Remote Desktop Services UserMode Port Redirector service, which is used to redirect printers, drivers, and ports for Remote Desktop connections. Disabling this service does not prevent a Remote Desktop session from being established with a Remote Desktop client. If you require the use of the Remote Desktop Services UserMode Port Redirector service, disable it in the Windows virtual image, and then enable and start the service after you deploy the image.

      • Update the settings for Windows Error Reporting and Windows Customer Experience Improvement Program.

        1. To choose not to participate in Windows Error Reporting, go to Initial Configuration Tasks > Update This Server > Enable automatic updating and feedback > Manually configure settings > Windows Error Reporting > Change Setting.
        2. To choose not to participate in the Customer Experience Improvement Program, go to Initial Configuration Tasks > Update This Server > Enable automatic updating and feedback > Manually configure settings > Customer Experience Improvement Program > Change Setting.

      • Disable the Windows screen saver.

        1. Click Start > Control Panel > Appearance > Display > Change screen Saver.
        2. Select (None) option from the Screen saver list, and click OK.

      • Disable the Windows Welcome screen. Click Start > Administrative Tools > System Configuration > Boot, and select No GUI boot.