ibm.infosvr
ansible-role-infosvr
This is an Ansible role designed to automate the setup of an IBM InfoSphere Information Server environment for versions 11.5 and 11.7. It covers:
- The database (repository) tier
- The services (domain) tier
- The engine tier
- Unified governance ("Enterprise Search") tier (available only in v11.7)
- Patches and fixpacks
The role also includes modules from the Enterprise Edition, which can be turned off if you don’t want to use them or aren’t entitled to:
- Information Governance Catalog
- Information Analyzer
- DataStage Operations Console
- DataClick
- Event Management (integrated with Data Quality Exception Console)
- Data Quality Exception Console
- QualityStage
- Information Services Director
- FastTrack
- Information Governance Dashboard (requires a Cognos environment)
- Optim Masking within DataStage
- Additional features in v11.7:
- New UI for Information Governance Catalog
- Governance Monitor dashboards
- Enterprise Search (includes Knowledge Graph)
- DataStage Flow Designer
- Machine Learning Term Classification (v11.7+)
Currently, the deployment supports only DB2 as the back-end, accommodating both a fresh DB2 install and the configuration of an existing DB2 setup. You can choose between a full WebSphere Application Server Network Deployment configuration or a WebSphere Liberty Profile configuration (see variables below for more info). Note that the role cannot configure an existing WebSphere installation.
If you are new to Ansible, you might find this simple introduction useful.
Requirements
- Ansible version 2.7
- Root access to all servers
- Admin access to Windows client machines
- Windows client machines must be set up for WinRM access by Ansible (see http://docs.ansible.com/ansible/latest/intro_windows.html)
Role Variables
Refer to defaults/main.yml
for detailed documentation and the example below for key variables. The defaults file already has the basic settings for a standard v11.7 installation, so you only need to adjust those variables you’d like to change (like user passwords).
The essential variables to customize are:
ibm_infosvr_media_dir
: where the installation files are stored on your Ansible host (e.g., from Passport Advantage)ibm_infosvr_media_bin
: the names of the installation files (default contains the latest v11.7; replace with v11.5 files if needed)ibm_infosvr_ug_storage
: extra storage on the Unified Governance tier for Kubernetes (should be unmounted, not part of an LVM group)ibm_infosvr_features
: define which features you want (True) or don’t want (False)
Make sure to also set various credential variables for security. Look for _upwd_
in defaults/main.yml
to find all password variables you need to change; you can replace them with references to more secure variables stored with an Ansible vault.
Dependencies
The role uses the IBM.infosvr-metadata-asset-manager
role to configure the Information Analyzer indirectly. This role is not listed as a direct dependency to avoid circular references, but should be installed if you intend to set up the Information Analyzer.
Example Playbook
Here is an example playbook to fully install and configure IBM InfoSphere Information Server using default settings from defaults/main.yml
(and any changes you've made in files like group_vars/all.yml
). Since the installation covers multiple components, use any_errors_fatal
to prevent partial installations if a step fails.
---
- name: Install and configure IBM InfoSphere Information Server
hosts: all
any_errors_fatal: true
roles:
- IBM.infosvr
pre_tasks:
- name: Update all OS-level packages
yum:
state: latest
name: '*'
exclude: docker*,kubelet*,kubectl*,kubeadm*
become: yes
when: ('ibm_information_server_clients' not in group_names)
The pre-tasks ensure that all OS-level packages are up-to-date before starting the installation.
Expected Inventory
The following groups are expected in your inventory to help designate the installation locations for various components. You can install multiple components on one server by listing the same hostname in different groups. For example, the repository and domain tiers can be placed on 'serverA', the engine tier on 'serverB', and the Unified Governance tier on 'serverC'.
[ibm_information_server_repo]
# Linux host for repository tier (DB2)
serverA.somewhere.com
[ibm_information_server_domain]
# Linux host for domain tier (WebSphere)
serverA.somewhere.com
[ibm_information_server_engine]
# Linux host for engine tier
serverB.somewhere.com
[ibm_information_server_clients]
# Windows host for client applications and Metadata Interchange Server for Windows-only brokers
client.somewhere.com
[ibm_information_server_ug]
# Linux host for the Unified Governance tier (v11.7+) (Kubernetes)
serverC.somewhere.com
[ibm_information_server_external_db]
# Linux host for an existing database to deploy XMETA; if none provided, installs DB2 on the repo server
serverD.somewhere.com
[ibm_cognos_report_server]
# Linux host with pre-existing Cognos BI installation for the Information Governance Dashboard
cognos.somewhere.com
[ibm_bpm]
# Linux host with a pre-existing BPM installation (currently not used)
bpm.somewhere.com
As with any Ansible inventory, ensure you provide enough details for connecting to the servers (see http://docs.ansible.com/ansible/latest/intro_inventory.html#list-of-behavioral-inventory-parameters).
Tags
Installing patches
This role can also keep your installation updated with patches. To apply patches, enter the relevant details in the files under vars/patches/[server|client]/<version>/<date>.yml
. For example, fixes for v11.7.1.0 should go into vars/patches/server/11.7.1.0/<date>.yml
, while client-side fixes for v11.7.0.2 should go into vars/patches/client/11.7.0.2/<date>.yml
.
Each patch should be defined as:
ibm_infosvr_patch_definition:
name: patch_name
srcFile: patch_file.tar.gz
pkgFile: patch_file.ispkg
versionId: version_tag
tiers:
- domain
- engine
JDK updates should be included under vars/patches/jdk/[server|client]/<major>/latest.yml
.
Use the update
tag to run updates:
ansible-playbook [-i hosts] [site.yml] --tags=update
This will apply any patches not already applied. It will not update system-level packages, so ensure your broader playbook addresses that.
Environment operations
There are several tags for managing the environment, especially when involving multiple hosts:
status
: checks if configured components are running.stop
: gracefully shuts down components without stopping the hosts.start
: starts components in order across hosts.restart
: stops and then starts components.
Reusable tasks
The role includes reusable tasks for use in other roles needing Information Server characteristics without going through the entire installation process.
setup_vars.yml
To retrieve deployment configuration variables later, use the setup_vars.yml
tasks in your playbook:
---
- name: Set up Information Server vars
hosts: all
tasks:
- import_role: name=IBM.infosvr tasks_from=setup_vars.yml
get_certificate.yml
To retrieve the SSL certificate for the domain tier, use the get_certificate.yml
tasks:
---
- name: Set up Information Server vars
hosts: all
tasks:
- import_role: name=IBM.infosvr tasks_from=setup_vars.yml
- import_role: name=IBM.infosvr tasks_from=get_certificate.yml
This retrieves the SSL certificate and saves it to cache/__ibm_infosvr_cert_root.crt
.
License
Apache 2.0
Author Information
Christopher Grote
Automates the deployment and configuration of IBM Information Server
ansible-galaxy install ibm.infosvr