IBM Support

Installing Ansible as a prerequisite to IBM InfoSphere Information Server microservices tier installation

How To


Summary

Ansible is key technology used by IBM InfoSphere Information Server microservices tier to perform install, upgrade and management actions, such as backup and restore. Starting version 11.7.1.2, Ansible is no longer included as part of the Information Server and must be preinstalled on the operating system before installing the product. This document describes how to install Ansible and additional modules required by Information Server microservices tier install, upgrade and management.

Environment

Ansible is provided with RedHat Enterprise Linux. However, depending on the operating system level, different flavors and versions of Ansible are available.

In RHEL 7 and RHEL 8.0-8.5, Ansible version 2.9 is provided through a separate Ansible Engine repository. Starting RHEL 8.6, Ansible Engine is replaced with Ansible Core, included in the standard AppStream repository. For more information on the change from Ansible Engine to Ansible Core, consult Updates to using Ansible in RHEL 8.6 and 9.0.

In addition to the above, the Information Server product defines a set of supported Ansible versions for each release. The table below summarizes supported Ansible versions per operating system version and Information Server product version.

Information Server release RedHat Enterprise Linux 7, 8.0-8.5 RedHat Enterprise Linux 8.6+
11.7.1.2, 11.7.1.3 + all service pack releases Ansible Engine 2.9 Not supported, upgrade to 11.7.1.4 or later
11.7.1.4 Ansible Engine 2.9 Ansible Core 2.12
11.7.1.4 SP1 Ansible Engine 2.9 Ansible Core 2.12 - 2.13
11.7.1.4 SP2 Ansible Engine 2.9 Ansible Core 2.12 - 2.14

Steps

Installing Ansible and additional prerequisites on RHEL 8.6+

Installing Ansible Core on RHEL 8.6+

You can find guidance on how to install Ansible Core on RHEL 8.6+ in Using Ansible in RHEL 8.6 and later. However, following these instructions will always install the newest available Ansible Core version, which may be not desired given Information Server Ansible version support matrix. To install a specific version of Ansible Core as required by an Information Server release, use the following steps instead of just running yum install ansible-core:

  1. List all available Ansible Core versions with the following command:
    # yum list ansible-core --showduplicates
    ...
    Available Packages
    ansible-core.x86_64               2.12.2-3.1.el8
    ansible-core.x86_64               2.12.2-4.el8_6
    ansible-core.x86_64               2.13.3-1.el8
    ansible-core.x86_64               2.13.3-2.el8_7
    ansible-core.x86_64               2.14.2-3.el8
    ansible-core.x86_64               2.14.2-4.el8_8
    ansible-core.x86_64               2.15.3-1.el8
  2. Install a specific desired Ansible Core version selected from the list above, e.g. for Information Server 11.7.1.4 GA:
    # yum install ansible-core-2.12.2

Installing additional Ansible collections on RHEL 8.6+

In comparison to Ansible Engine, Ansible Core includes reduced number of modules. Therefore additional steps are required to extend raw Ansible Core with Ansible collections required by Information Server microservices tier installer. You can install and manage Ansible collections using the ansible-galaxy utility.

To install required Ansible Core collections when using Ansible Core 2.13+ , run the following command:

# ansible-galaxy collection install ansible.posix ansible.netcommon community.general

To install required Ansible Core collections when using Ansible Core 2.12, use a slightly modified version of the above command, to workaround known 2.12 issues:

# ansible-galaxy collection install -s https://old-galaxy.ansible.com/ ansible.netcommon:==2.5.1 ansible.posix community.general

Installing additional Python modules on RHEL 8.6+

In addition to the Ansible collections, additional Python modules, netaddr and dns, are required by Ansible modules used by the microservices tier playbooks. These Python modules must be installed as part of the specific Python runtime version used by Ansible Core, which changes between Ansible Core versions. You can check the Python runtime version used by Ansible Core installed on your operating system with the ansible --version command:

# ansible --version
ansible [core 2.15.3]
  config file = /etc/ansible/ansible.cfg
  configured module search path = ['/home/cloudusr/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules']
  ansible python module location = /usr/lib/python3.11/site-packages/ansible
  ansible collection location = /home/cloudusr/.ansible/collections:/usr/share/ansible/collections
  executable location = /usr/bin/ansible
  python version = 3.11.5 (main, Sep 22 2023, 15:34:29) [GCC 8.5.0 20210514 (Red Hat 8.5.0-20)] (/usr/bin/python3.11)
  jinja version = 3.1.2
  libyaml = True

In the example above, Ansible Core uses Python 3.11, therefore the Python modules must be made available under the /usr/lib/python3.11/site-packages directory.

There are multiple ways to install Python modules, but the easiest in the context of RHEL is to use operating system packages matching the desired Python runtime version. The following table lists package names which match specific Ansible Core versions known at the time of writing:

Ansible Core version Python runtime version OS package names (*)
2.14+ 3.11 python3.11-netaddr
python3.11-dns
2.13 3.9 python39-netaddr
python39-dns
2.12 3.8 python38-netaddr
python3-dns (**)

Remarks:

  • (*) All packages listed in the above table are provided by Extra Packages for Enterprise Linux (EPEL). To enable EPEL repository on RHEL 8 operating system, run the following command:
    # yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
  • (**) for Python 3.8, there is no OS package to provide the dedicated version of the dns module. As a workaround, install python3-dns package (matching Python 3.6) and create a symbolic link to make it available under Python 3.8 runtime:
    # ln -s /usr/lib/python3.6/site-packages/dns /usr/lib/python3.8/site-packages/dns

An example set of commands to install Python module packages for Ansible Core 2.14:

# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
# yum install python3.11-netaddr python3.11-dns

Other known issues with Python modules:

  • Information Server 11.7.1.4 GA and 11.7.1.4 SP1 releases have a known issue in the prerequisite checks: fail to properly recognize the Python runtime used by Ansible Core, resulting in false-positive report of missing Python modules. To workaround this problem, install python3-netaddr and python3-dns packages in addition to the OS packages matching the Python runtime used by Ansible Core 2.12/2.13. This problem is resolved in 11.7.1.4 SP2 and not applicable to 11.7.1.4 SP2 and higher releases.
    Example set of commands to install Python module packages for Information Server 11.7.1.4 GA with a workaround for the prerequisite checks issue:
    # yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
    # yum install python3-netaddr python3-dns python38-netaddr
    # ln -s /usr/lib/python3.6/site-packages/dns /usr/lib/python3.8/site-packages/dns

Installing Ansible and additional prerequisites on RHEL 7 or RHEL 8.0-8.5

Installing Ansible Engine on RHEL 7 or RHEL 8.0-8.5

Ansible Engine is out of support, and you should strongly consider upgrading to RHEL 8.6+ and Ansible Core. If you still want to install Ansible Engine on RHEL 7 or RHEL 8.0-8.5, follow the guidance in How to download and install Red Hat Ansible Engine.

Installing additional Python modules on RHEL 7 or RHEL 8.0-8.5

Ansible Engine includes all required Ansible collections out-of-the-box. However, some Ansible Engine features used by microservices tier playbooks require additional Python modules to be installed on the system. Depending on RHEL version, Ansible Engine uses a different Python interpreter version, therefore a different set of operating system packages must be installed to provide the required Python modules.

On RHEL 8.0-8.5, Ansible Engine uses system default Python 3 version (Python 3.6), therefore the following operating system packages must be installed to provide required Python modules:

# yum install python3-netaddr python3-dns

On RHEL 7, Ansible Engine uses Python 2, therefore the following operating system packages must be installed to provide required Python modules:

# yum install python-netaddr python-dns

Additional Information

Common scenarios

Scenario 1: Clean install 11.7.1.4 GA on RHEL 8.6+

When installing Information Server 11.7.1.4 GA on RHEL 8.6+, the only available option is to use an old Ansible Core version 2.12. Newer Ansible Core versions are not supported by this Information Server release, since they were not available at the time of release, and there are substantial backwards incompatible changes between Ansible Core 2.12 and the newer versions.

The steps below summarize the guidance described in earlier sections of this document on how to set up an operating system with Ansible Core 2.12 and all the prerequisites on a RHEL 8.6+ system for the purpose of installing Information Server 11.7.1.4 GA:

  1. Check available Ansible Core versions with yum list ansible-core --showduplicates and install Ansible Core version 2.12 using the actual version found:
    # yum install ansible-core-2.12.2
  2. Install required Ansible collections, applying Ansible Core 2.12 specific workarounds:
    # ansible-galaxy collection install -s https://old-galaxy.ansible.com/ ansible.netcommon:==2.5.1 ansible.posix community.general
  3. Enable EPEL repository and install required Python modules, applying a workarounds for the missing python38-dns package and Information Server 11.7.1.4 prerequisite check known issue:
    # yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
    # yum install python3-netaddr python3-dns python38-netaddr 
    # ln -s /usr/lib/python3.6/site-packages/dns /usr/lib/python3.8/site-packages/dns 
    
  4. Install Information Server 11.7.1.4 GA.

Scenario 2: Upgrading to 11.7.1.4 SP2 from 11.7.1.4 GA / Ansible Core 2.12 on RHEL 8.6+

When upgrading from 11.7.1.4 GA installation which uses Ansible Core 2.12 on RHEL 8.6+ (e.g. installed using previous recipe) to release 11.7.1.4 SP2, it is recommended to upgrade to Ansible Core 2.14 and the most recent Ansible collections and Python modules versions before running the Information Server upgrade. Follow these steps to upgrade Ansible Core to version 2.14:

  1. Check available Ansible Core versions with yum list ansible-core --showduplicates and upgrade Ansible Core to version 2.14 using the actual version found:
    # yum install ansible-core-2.14.2
  2. Upgrade Ansible collections and install required Python modules matching the Python runtime used by Ansible Core 2.14:
    # ansible-galaxy collection install ansible.netcommon ansible.posix community.general --upgrade
    # yum install python3.11-netaddr python3.11-dns
  3. Upgrade Information Server to version 11.7.1.4 SP2.

Scenario 3: Upgrading to 11.7.1.4 SP2 and RHEL 8.6+ / Ansible Core on existing installations using Ansible Engine / RHEL 7 or 8.0-8.5

When upgrading an existing Information Server installation on RHEL 8.5 or earlier to RHEL 8.6+, it becomes necessary to migrate from Ansible Engine to Ansible Core. Follow these steps in order to migrate your current Information Server setup using Ansible Engine to Information Server 11.7.1.4 SP2 using Ansible Core:

  1. Upgrade RHEL to version 8.6+.
  2. Check available Ansible Core versions with yum list ansible-core --showduplicates and then upgrade from Ansible Engine to Ansible Core, following the steps described in Using Ansible in RHEL 8.6 and later, but restricting the Ansible Core version to 2.14:
    # yum remove ansible
    # subscription-manager repos --disable ansible-2-for-rhel-8-x86_64-rpms
    # yum install ansible-core-2.14.2
  3. Install required Ansible collections and Python modules:
    # yum install python3.11-netaddr python3.11-dns
    # ansible-galaxy collection install ansible.netcommon ansible.posix community.general
  4. Upgrade Information Server to version 11.7.1.4 SP2.

Document Location

Worldwide

[{"Type":"MASTER","Line of Business":{"code":"LOB10","label":"Data and AI"},"Business Unit":{"code":"BU059","label":"IBM Software w\/o TPS"},"Product":{"code":"SSZJPZ","label":"IBM InfoSphere Information Server"},"ARM Category":[{"code":"a8m0z0000001i9oAAA","label":"Microservices Tier and Kubernetes Issues"}],"ARM Case Number":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"11.7.1"}]

Document Information

Modified date:
29 November 2023

UID

ibm17085265