Wiki Home
Relevant source files
The following files were used as context for generating this wiki page:
The spm_middleware project is an Ansible collection designed to automate the installation and configuration of middleware components required for IBM Cúram Social Program Management (SPM). It provides a structured suite of roles and modules to handle complex enterprise software deployments, including application servers, database engines, and HTTP servers.
This collection is primarily intended for internal test and development environments. It encapsulates the operational logic for lifecycle management of middleware such as IBM WebSphere, Oracle WebLogic, and IBM Db2, ensuring consistent and idempotent deployments across supported Enterprise Linux (EL) platforms.
Sources: README.md:1-5, galaxy.yml:32-33
Collection Architecture
The project follows the standard Ansible Collection structure, organizing automation assets into discrete directories for roles, plugins, and documentation. This modularity allows for the reuse of specific middleware automation components across different playbooks.
Directory Structure Overview
collection/
├── docs/ # Documentation files
├── galaxy.yml # Collection metadata
├── plugins/ # Custom Ansible modules and plugins
├── roles/ # Middleware-specific automation roles
├── playbooks/ # Orchestration playbooks
└── tests/ # Testing assets and Molecule scenarios
Sources: README.md:20-36
Project Metadata
The collection is published under the merative namespace and maintains semantic versioning to track updates and compatibility.
| Property | Value |
|---|---|
| Namespace | merative |
| Name | spm_middleware |
| Version | 1.8.8 |
| Author | SPM DevOps Team |
| License | MIT |
Sources: galaxy.yml:8-28, roles/websphere/meta/main.yml:13
Core Middleware Roles
The collection provides specialized roles for various infrastructure components. Most roles target Enterprise Linux versions 7, 8, or 9.
Application Servers
- WebSphere: Installs WebSphere Application Server Network Deployment (ND). It requires IBM Installation Manager (IIM) as a prerequisite.
- WebLogic: Automates the setup of Oracle WebLogic Server, including OS-level kernel parameter tuning and user management.
- Liberty: Handles the deployment of IBM WebSphere Liberty profiles.
Databases and Web Servers
- Db2: Manages IBM Db2 server installation and configuration for SPM.
- Oracle: Installs and configures Oracle Database servers.
- IHS (IBM HTTP Server): Automates the setup of web servers and associated plugins (PLG) and configuration tools (WCT).
Sources: roles/websphere/meta/main.yml:3-5, roles/weblogic/meta/main.yml:3-5, roles/db2/meta/main.yml:3-6, roles/ihs/meta/main.yml:3-4, roles/websphere/README.md:1-7
Deployment Logic and Flow
The roles typically follow a multi-stage execution pattern: environment preparation, artifact acquisition, installation via package managers or response files, and final configuration.
Installation Lifecycle Flow
The following diagram illustrates the typical sequence used by roles like WebSphere and Db2 to ensure a component is correctly installed.
Development and Testing
The project emphasizes quality through mandatory testing requirements for all contributions.
Development Environment Options
Developers can choose between two primary local environments:
- Python Virtual Environment: Using
venvto manage dependencies like Molecule and Ansible Lint. - Containerized (DinD): A Docker-in-Docker approach using a specialized Molecule image.
Mandatory Contribution Criteria
All new roles or modules must meet the following standards:
- Include a valid Molecule scenario/test.
- Maintain idempotency (running the role twice produces no new changes).
- Pass the Ansible Linter (
runLint.sh).
Sources: CONTRIBUTING.md:1-12, CONTRIBUTING.md:82-90
Molecule Testing Workflow
Molecule is used to orchestrate test instances, typically using Docker as the driver to simulate various Linux distributions.
Sources: CONTRIBUTING.md:15-30, CONTRIBUTING.md:118-124
Summary
The spm_middleware collection serves as a centralized repository for the automated lifecycle management of the IBM SPM middleware stack. By utilizing Ansible's role-based architecture and enforcing strict testing through Molecule, the project ensures that complex deployments of WebSphere, WebLogic, and Db2 are repeatable and maintainable for DevOps teams.
Sources: README.md:1-10, galaxy.yml:1-35