/ansible-for-i

the tool is to provide several customized modules for Ansible to manage IBM i systems.

Primary LanguagePythonGNU General Public License v3.0GPL-3.0

Ansible Content for IBM Power Systems - IBM i

Description

The Ansible Content for IBM Power Systems - IBM i provides modules, action plugins, roles and sample playbooks to automate tasks on IBM i, such as command execution, system and application configuration, work management, fix management, application deployment, etc.

IBM Power Systems is a family of enterprise servers that helps transform your organization by delivering industry leading resilience, scalability and accelerated performance for the most sensitive, mission critical workloads and next-generation AI and edge solutions. The Power platform also leverages open source technologies that enable you to run these workloads in a hybrid cloud environment with consistent tools, processes and skills.

Ansible Content for IBM Power Systems - IBM i, as part of the broader offering of Ansible Content for IBM Power Systems, is available from Ansible Galaxy and Redhat Ansible Automation Plaform and has community support.

Requirements

In order to use the Ansible collection for Power Systems on IBM i with release 3.1.0 and beyond, you must have the following pre-requisite software installed and available on your Ansible server and IBM i node:

  • Dependencies on Ansible server / control node

    • Python v3.9+ Python can be installed from a variety of sources, including the package manager for your operating system (apt, yum, etc). If you install Python from the package manager for your operating system, you must also install the development libraries (usually a package named python3-devel), as these are required when installing modules through pip.

      The official Python website: official Python website

      The unofficial Python version manager: unofficial Python version manager

    • Ansible core v2.15 or v2.16

      • Ansible core v2.15 requires Python 3.9+ on the Ansible control node.
      • Ansible core v2.16 requires Python 3.10+ on the Ansible control node.

      The full compatiblity or support matrix for Ansible core versions and Python levels for the control node and targets is provided here.

      Ansible can be installed from a variety of sources, including the package manager for your operating system (apt, yum, etc). You can also install it using pip, the package manager for Python: pip3 install ansible

  • Dependencies on IBM i node:

    • 5733SC1 Base and Option 1
    • 5770DG1
    • python3
    • python3-itoolkit
    • python3-ibm_db
  • Additional dependencies on IBM i Ansible server / control node:

    • Ansible v2.15+ is not available as a prepackaged rpm for IBM i, yet can be installed with python pip. In the documentation site noted below under "Resources" there are detailed instructions provided in the "Getting Started" section for setting up Ansible with pip.
    • Ansible v2.16 cannot be used with the currently available IBM i Python rpm packages (Python 3.9 is highest level) for an IBM i Ansible server / control node.

Installation

Detailed installation instructions are available at the github installation site. This site provides information on installing the collection and any necessary prerequisites.

Use Cases

The primary use cases for the collection include: command execution, fix management, security compliance checking, systems checking (health, work management, etc.), and application deployment using a continuous integration and continuous deployment (CICD) model. Several of these collection use cases provide a set of playbooks that can be customized by the user and are located in the github usecases directory. There are other playbook examples in the github playbooks directory.

Testing

The collection testing consists of the executing the Ansible sanity test, applying the Ansible lint tool on all published YAML source, and applying the set of integration tests for the collection modules and roles. The collection testing environment uses Ansible core 2.16 and various Python levels such as 3.10, 3.11, and 3.12 with the control node and Python level 3.9 on the IBM i target node.

Contributing

Users may contribute to the collection by creating a github issue for an enhancement or bug fix and then creating a github pull request for evaluation.

Support

Users can open an issue for any suspected bugs (or enhancement requests, etc.) as a github issue. Github issues are addressed based on potential severity/impact of a problem, frequency of a problem, along with development availability. Collection issues can also be raised to IBM by users with formal support.

Release Notes and Roadmap

The release notes are in the github repository CHANGELOG.md file.

Related Information

For detail guides and reference, please visit the github Documentation site.

License Information

Some portions of this collection are licensed under GNU General Public License, Version 3.0, and other portions of this collection are licensed under Apache License, Version 2.0. See individual files for applicable licenses.

Copyright

© Copyright IBM Corporation 2020