forked from aerospike-community/aerospike-ansible
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathkafka-cluster-setup.yml
114 lines (101 loc) · 3.01 KB
/
kafka-cluster-setup.yml
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
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
---
- name: Create a Kafka cluster
hosts: local
connection: local
gather_facts: no
vars:
instance_tag: "{{ kafka_tag }}"
instance_count: "{{ kafka_worker_per_az_count }}"
instance_function: kafka
az_list: "{{ cluster_az_list }}"
instance_type: "{{ kafka_instance_type }}"
tasks:
- name: Import configuration properties
include_vars:
dir: vars
- name: "Setup {{ instance_function }} instance vars"
include_vars: modules/instance-setup-vars.yml
- name: "Setup {{ instance_function }} instances"
import_tasks: modules/instance-setup.yml
- meta: refresh_inventory
- name: "Kafka"
hosts: "{{ kafka_tag }}"
remote_user: "{{ os_config['remote_user'] }}"
become: yes
vars_files:
- vars/cluster-config.yml
- vars/constants.yml
- vars/os-level-config.yml
- vars/kafka-vars.yml
tasks:
- name: Install Java (pre-req for Kafka install)
package:
name:
- "{{ java_for_redhat }}"
state: present
become: yes
- name: "Kafka"
hosts: "{{ kafka_tag }}"
remote_user: "{{ os_config['remote_user'] }}"
become: yes
vars:
zookeeper_servers: "{{ groups[kafka_tag] }}"
# Each Kafka broker needs a distinct id
kafka_broker_id: "{{ groups[kafka_tag].index(inventory_hostname) + 1}}"
# Each Zookeeper server needs a distinct id
zookeeper_id: "{{ groups[kafka_tag].index(inventory_hostname) + 1}}"
vars_files:
- vars/cluster-config.yml
- vars/constants.yml
- vars/os-level-config.yml
- vars/kafka-vars.yml
roles:
- sleighzy.kafka
- sleighzy.zookeeper
tasks:
- name: Import configuration properties
include_vars:
dir: vars
- name: Get host group instance info (required for zoo.cfg)
delegate_to: localhost
become: no
ec2_instance_info:
region: "{{ aws_region }}"
filters:
instance-state-name: [ "pending", "running" ]
"tag:group": "{{ kafka_tag }}"
register: instance_info
- name: "Create zoo.cfg modification script - required for clustering"
template:
src: "assets/zoo.cfg.sh.j2"
dest: "/tmp/zoo.cfg.sh"
force: yes
mode: 0755
- name: "Modify zoo.cfg"
shell: |
/tmp/zoo.cfg.sh
rm /var/lib/kafka/logs/meta.propeties
sudo service zookeeper restart
- name: "Restart Kafka"
shell: |
sudo service kafka restart
- name: "Create {{ default_kafka_topic }} topic if not already created"
shell: |
/opt/kafka/bin/kafka-topics.sh --create --topic {{ default_kafka_topic }} --bootstrap-server localhost:9092 --if-not-exists
- name: Install Aerospike Kafka Connect
hosts: "{{ cluster_tag }}"
gather_facts: true
become: yes
remote_user: "{{ os_config['remote_user'] }}"
vars_files:
- vars/cluster-config.yml
- vars/constants.yml
- vars/os-level-config.yml
tasks:
- name: Import configuration properties
include_vars:
dir: vars
- name: Get service facts
service_facts:
- import_tasks: modules/kafka-connect-install.yml
when: kafka_connect_enabled