/kafka_role

Ansible role to install Apache Kafka

Primary LanguagePythonApache License 2.0Apache-2.0

Logo

Build Status Ansible Galaxy Docker Hub pulls

Kafka Ansible role

This Ansible role installs Apache Kafka in a Debian Environment. The server is installed using the sources.

Getting Started

These instructions will get you a copy of the role for your Ansible Playbook. Once launched, it will install a Apache Kafka distributed streaming platform in a Debian Environment.

Prerequisities

To execute this role:

Ansible 2.7.5.0 Python 3.6 or Python 2.7 Other combinations may work but they're not tested.

Inventory destination should be a Debian environment. Notice that you will need to install Java in that environment after execute this role.

For testing purposes:

⚠️ As this role is ready to use in production, the image hosted in Docker Hub is only for testing purposes. That image is deployed using rolling tags and major changes could break your tests.

We strongly do not recommend to use containers in production based on that image (maybe it will be ready in future releases).

Installing

Create or add to your roles dependency file (e.g requirements.yml):

- src: http://github.com/idealista/kafka_role.git
  scm: git
  version: 1.13.0
  name: kafka

Install the role with ansible-galaxy command:

ansible-galaxy install -p roles -r requirements.yml -f

Use in a playbook:

---
- hosts: someserver
  roles:
    - role: kafka

Usage

Look to the defaults properties file to see the possible configuration properties.

Kafka topics could be configured through the role. Just set the topics like:

kafka_topics:
  - name: 'test'
    partitions: '3'
    replicas: '3'
  - name: 'test2'
    partitions: '3'
    replicas: '1'

Enable delete topic var if you want to remove topics from the cluster.

The number of partitions can be modified but not the replicas. Please have this in mind when create the topics.

Also notice that you can't decrease the number of partitions of a created topic.

Testing

pipenv install -r test-requirements-27.txt --python 2.7
pipenv run molecule test

and

pipenv install -r test-requirements-36.txt --python 3.6
pipenv run molecule test

Built With

Ansible

Versioning

For the versions available, see the tags on this repository.

Additionaly you can see what change in each version in the CHANGELOG.md file.

Authors

See also the list of contributors who participated in this project.

License

Apache 2.0 License

This project is licensed under the Apache 2.0 license - see the LICENSE file for details.

Contributing

Please read CONTRIBUTING.md for details on our code of conduct, and the process for submitting pull requests to us.