![Ansible Simple IT Automation](/assets/images/ansible/ansible-red.png)
Kafka Topics with Ansible
These are some snippets on how you can manage some Topics basic operations on your Apache Kafka with Ansible and command module.
Create Topics
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
| ---
- name: Create topics
hosts: localhost
vars:
kafka_topics: /opt/kafka_2.11-1.1.0/bin/kafka-topics.sh
kafka_server: 172.16.107.21
kafka_port: 9093
kafka: "{{ kafka_server }}:{ { kafka_port }}"
zookeeper_server: 172.16.107.21
zookeeper_port: 2182
zookeeper: "{{ zookeeper_server }}:{ { zookeeper_port }}"
replication_factor: 3
partitions: 3
tasks:
- name: Load CERT topics to create
include_vars:
file: ../vars/create_topics.yml
- name: Create Topics
command:
argv:
- "{{ kafka_topics }}"
- --create
- --zookeeper
- "{{ zookeeper }}"
- --replication-factor
- "{{ replication_factor }}"
- --partitions
- "{{ partitions }}"
- --topic
- "{{ item }}"
loop: "{{ topics }}"
|
create_topics.yml
1
2
3
4
5
| ---
topics:
- ansible-topic-1
- ansible-topic-2
- ansible-topic-3
|
List Topics
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
| ---
- name: List topics
hosts: localhost
vars:
kafka_topics: /opt/kafka_2.11-1.1.0/bin/kafka-topics.sh
kafka_server: 172.16.107.21
kafka_port: 9093
kafka: "{{ kafka_server }}:{{ kafka_port }}"
zookeeper_server: 172.16.107.21
zookeeper_port: 2182
zookeeper: "{{ zookeeper_server }}:{{ zookeeper_port }}"
tasks:
- name: List Topics
command:
argv:
- "{{ kafka_topics }}"
- --list
- --zookeeper
- "{{ zookeeper }}"
|
Delete Topics
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| ---
- name: Delete topics
hosts: localhost
vars:
kafka_topics: /opt/kafka_2.11-1.1.0/bin/kafka-topics.sh
kafka_server: 172.16.107.21
kafka_port: 9093
kafka: "{{ kafka_server }}:{{ kafka_port }}"
zookeeper_server: 172.16.107.21
zookeeper_port: 2182
zookeeper: "{{ zookeeper_server }}:{{ zookeeper_port }}"
tasks:
- name: Load CERT topics to create
include_vars:
file: ../vars/delete_topics.yml
- name: Delete Topics
command:
argv:
- "{{ kafka_topics }}"
- --delete
- --zookeeper
- "{{ zookeeper }}"
- --topic
- "{{ item }}"
loop: "{{ topics }}"
register: topics
|
delete_topics.yml
1
2
3
4
5
| ---
topics:
- ansible-topic-1
- ansible-topic-2
- ansible-topic-3
|