<a id="ansible-requirements"></a>

# Prerequisites for Installing Confluent Platform with Ansible Playbooks

## General requirements

The following table summarizes version compatibility among Ansible Playbooks for Confluent Platform
(Confluent Ansible) and other required components.

The **Default Confluent Platform** column specifies the default Confluent Platform version
that the particular version of Confluent Ansible installs.

| Default Confluent Platform   | Confluent Ansible   | Ansible and Python Versions                                                                                                                                                                   |
|------------------------------|---------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| 8.3.2                        | 8.3.2               | * Ansible 11.x [ansible-core 2.18] & Python 3.11 - 3.12<br/>* Ansible 10.x [ansible-core 2.17] & Python 3.10 - 3.12<br/>* Ansible 9.x [ansible-core 2.16] & Python 3.10 - 3.12 <sub>[1]</sub> |
| 8.3.1                        | 8.3.1               | * Ansible 11.x [ansible-core 2.18] & Python 3.11 - 3.12<br/>* Ansible 10.x [ansible-core 2.17] & Python 3.10 - 3.12<br/>* Ansible 9.x [ansible-core 2.16] & Python 3.10 - 3.12 <sub>[1]</sub> |
| 8.3.0                        | 8.3.0               | * Ansible 11.x [ansible-core 2.18] & Python 3.11 - 3.12<br/>* Ansible 10.x [ansible-core 2.17] & Python 3.10 - 3.12<br/>* Ansible 9.x [ansible-core 2.16] & Python 3.10 - 3.12 <sub>[1]</sub> |

<sub>[1]</sub> Even though Ansible 9.x reaches its end-of-life in May 2025,
Confluent Ansible continues to support the version. Ansible 9.x
(ansible-core 2.16) is the only version compatible with RHEL 8.

<a id="ansible-requirements-usm-c3-compatibility"></a>

### Unified Stream Manager and Confluent Control Center version compatibility

The following table lists the Unified Stream Manager and Confluent Control Center versions supported by each
Confluent Ansible version:

| Confluent Ansible Version   | Unified Stream Manager Versions   | Confluent Control Center Versions   |
|-----------------------------|-----------------------------------|-------------------------------------|
| Confluent Ansible 8.3.x     | 1.0.x - 1.1.x                     | 2.4.x - 2.5.x                       |
| Confluent Ansible 8.2.x     | 1.0.x - 1.1.x                     | 2.4.x - 2.5.x                       |
| Confluent Ansible 8.1.x     | 1.0.x - 1.1.x                     | 2.3.x                               |
| Confluent Ansible 8.0.x     | N/A                               | 2.2.x                               |
| Confluent Ansible 7.9.x     | 1.0.x - 1.1.x                     | 2.0.x - 2.1.x                       |

<a id="ansible-requirements-misc"></a>

The prerequisites and considerations for installing and using Confluent Ansible 8.3 are:

* Ansible package 7.x+

  We recommend installing the Ansible package instead of Ansible Core
  (ansible-core). Ansible Core contains a minimal number of modules and plugins,
  and you might have to manually install additional modules and plugin that
  Confluent Ansible requires.

  For details on selecting an Ansible package and version to install, see
  [Installing Ansible — Ansible Community Documentation](https://docs.ansible.com/ansible/9/installation_guide/intro_installation.html).
* SSH access between Ansible control nodes and Confluent Platform hosts

  For the steps and the command to verify the SSH connections for all the hosts
  involved, see [Prepare Ansible Inventory File to Install Confluent Platform](ansible-prepare.md#ansible-prepare).
* `sudo` access for SSH user to all Confluent Platform hosts

  Starting in 7.1.0, Ansible Playbooks for Confluent Platform supports tag-based separation of tasks that
  require root permission from tasks that do not require root permission. You
  can run the latter tasks without root privileges. However, there are certain
  steps where you do need root access. For details, see
  [Install Confluent Platform without root access](ansible-install.md#ansible-install-without-root-access).
* (Optional) Internet connectivity to pull Confluent Platform software from
  `packages.confluent.io`. If you don’t have internet access, refer to
  [Deploy Confluent Platform in Air-Gapped Environment Using Ansible Playbooks](ansible-airgap.md#ansible-airgap-deployment) for deploying in an air-gapped environment.
* For detailed version requirements for the controller node, the managed node, and Python, see [Ansible Support Matrix](https://docs.ansible.com/ansible/latest/reference_appendices/release_and_maintenance.html#ansible-core-support-matrix).
* For Unified Stream Manager and Confluent Control Center version compatibility, see the
  [compatibility matrix](#ansible-requirements-usm-c3-compatibility)
  earlier in this topic.
* The Python versions specified in the table apply to both the control node and
  target node. It is recommended that these versions be set as the system
  default Python on each node.

## Supported Confluent Platform versions

It is highly recommended that you use the version of Confluent Ansible as referred
in the above table in accordance with the Confluent Platform version.

#### NOTE
`confluent_package_version` is required starting with Confluent Ansible
7.6.14, 7.7.12, 7.8.11, 7.9.10, 8.0.8, 8.1.6, 8.2.4, 8.3.2, and 8.4.0.
Confluent Ansible no longer ships a hard-coded default Confluent Platform version.
`confluent_package_version` must be set in your inventory to the Confluent Platform
version you want to install (see the compatibility table above). If not
set, the playbook fails early.

<a id="ansible-requirements-hardware"></a>

## Hardware

Starting in the 7.6.0 release, Confluent Ansible supports the X86 and ARM64
hardware architecture for the production workloads.

For more information about hardware support, see the
[on-premises system
requirements](/platform/current/installation/system-requirements.html) for Confluent Platform components.

<a id="ansible-requirements-os"></a>

## Operating systems

Confluent Ansible supports the operating systems listed in the
[Confluent Platform System
Requirements](/platform/current/installation/system-requirements.html#sys-req-os), except for those
marked as deprecated.

Note that, for Confluent Ansible 8.0 and Confluent Platform 8.0, you can use RHEL 8 only with
Ansible 9.x. RHEL 8 does not support Ansible versions later than 9.x.

## Network

### Internet protocols

You can use Confluent Ansible to deploy Confluent Platform on machines on an IPv6 network, an
IPv4 network, or dual-stack with both IPv4 and IPv6.

### Ports

Refer to the [ports
used](/platform/current/installation/system-requirements.html#sys-req-ports) by Confluent Platform components.

## Users

Each Confluent Platform component runs under its own user set up during installation. The
usernames are prefixed with `cp-` followed by the component name. For example,
`cp-kafka` and `cp-schema-registry`.

The one exception is that KRaft runs as the `cp-kafka` user.

## Time synchronization

Clock synchronization on each Kafka broker is required to ensure the full system
functions correctly. See [Time synchronization
requirement](/platform/current/installation/system-requirements.html#time-sync) for details.

## Locale

The en_US.UTF-8 locale is required for installing Confluent Platform using Confluent Ansible.

## Next step

[Download Ansible Playbooks for Confluent Platform](ansible-download.md#ansible-download).
