Ansible Role: IBM Installation Manager (IIM)
Relevant source files
The following files were used as context for generating this wiki page:
The iim role is a core component of the spm-middleware collection, designed to install the IBM Installation Manager (IIM) agent on target systems. IIM serves as the fundamental engine for managing the lifecycle of IBM software products, such as WebSphere Application Server, IBM HTTP Server (IHS), and WebSphere Liberty, within a Cúram Social Program Management (SPM) environment.
This role provides the necessary infrastructure for other middleware roles to perform package installations, updates, and removals. It supports multiple platforms including Enterprise Linux (EL) 7, MacOSX, Ubuntu, and Windows.
Sources: roles/iim/README.md:1-5, roles/iim/meta/main.yml:25-39, README.md:3-5
Role Architecture and Lifecycle
The IIM role functions as a prerequisite for most other middleware roles in the collection. The architecture relies on an IIMAgent utility class (provided via module_utils) which interacts with the IIM binary on the host system to query or modify the state of installed packages.
Component Interaction Flow
The following diagram illustrates how the iim role and its associated modules interact with external software repositories and other middleware roles.
The IIM Agent is the central execution point for managing packages like WebSphere or IHS.
Sources: roles/iim/README.md:16-20, plugins/modules/iim_package.py:84-106, roles/ihs/tasks/v90_base_install.yml:71-82
Configuration Variables
The role is configured using several key variables that define the version of the agent to be installed and the file paths for installation and resource sharing.
| Property Name | Default Value | Description |
|---|---|---|
iim_agent_version | 1.9.3000.20240905_1526 | The specific version of the IBM Installation Manager agent to install. |
iim_install_path | /opt/IBM/InstallationManager | The absolute path where the IIM binary will be installed. |
shared_resources | /opt/IBM/IMShared | The directory used by IIM for shared resources across products. |
download_url | URL for downloading the IIM installer and licenses from an HTTP server. | |
download_header | Dictionary of headers (e.g., Authorization) used for downloads. | |
iim_installer_path | Local or remote path to the IIM installer archives. |
Sources: roles/iim/README.md:9-17, plugins/modules/iim_package.py:20-28
Integrated Modules
The iim role is supported by two custom Ansible modules that facilitate interaction with the Installation Manager agent.
iim_info Module
The iim_info module is used to query the current state of the target system. It returns a list of all installed packages and can check for the presence of specific product IDs.
Example Usage:
- name: Check packages
iim_info:
iim_path: /opt/IBM/InstallationManager
product_id: com.ibm.websphere.liberty.ND
register: iim_info
Sources: plugins/modules/iim_info.py:10-25, roles/liberty/tasks/main.yml:5-9
iim_package Module
The iim_package module performs the actual installation, update, or uninstallation of software packages. It requires a product_id and a list of repos containing the software binaries.
Logic Flow for Package Installation:
The module ensures idempotency by checking if the base or exact version is already present before attempting an installation.
Sources: plugins/modules/iim_package.py:102-118, roles/ihs/tasks/v90_base_install.yml:71-82
Platform Support
The role is designed to be cross-platform, supporting various operating systems required for SPM middleware stacks.
- EL (Enterprise Linux): Versions 7, 8
- Ubuntu: Xenial, Bionic
- MacOSX: 10.15
- Windows: All versions
Sources: roles/iim/meta/main.yml:25-39, roles/websphere/meta/main.yml:25-28
Conclusion
The Ansible Role: IBM Installation Manager (IIM) acts as the foundational layer for automated middleware deployment in the SPM ecosystem. By providing standard configuration paths and robust modules like iim_package and iim_info, it enables higher-level roles to manage complex software installations with consistency and idempotency across diverse environments.
Sources: roles/iim/README.md:1-5, README.md:1-5