ansible/roles/kafka/tasks/main.yml (64 lines of code) (raw):
#
#
# Licensed to the Apache Software Foundation (ASF) under one
# or more contributor license agreements. See the NOTICE file
# distributed with this work for additional information
# regarding copyright ownership. The ASF licenses this file
# to you under the Apache License, Version 2.0 (the
# "License"); you may not use this file except in compliance
# with the License. You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing,
# software distributed under the License is distributed on an
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
# KIND, either express or implied. See the License for the
# specific language governing permissions and limitations
# under the License.
#
---
# Check for the availability of the Kafka package
- name: Check kafka package availability
stat: path={{ kafka_dir }}
register: kafka_package
become: yes
- name: Create deployment directory {{ custos_deployment_dir }}
file: path={{custos_deployment_dir}}
state=directory
mode=0755
owner={{ user }}
group={{ group }}
become: yes
# Download Kafka
- name: Download and unarchive Kafka from {{ kafka_tgz_url }}
unarchive: src="{{ kafka_tgz_url }}"
dest="{{ custos_deployment_dir }}"
copy=no
owner="{{ user }}"
group="{{ group }}"
when: not kafka_package.stat.exists
become: yes
# Create kafka logs directory
- name: Create kafka logs directory
file: path="{{ kafka_dir }}/logs" state=directory owner={{ user }} group={{ group }}
become: yes
# Config kafka server and start
- name: Copy kafka server properties file
template: src=server.properties.j2
dest="{{ kafka_dir }}/etc/kafka/server.properties"
owner={{ user }}
group={{ group }}
mode="u=rw,g=r,o=r"
# notify: restart kafka
become: yes
# Config rest proxy and start
- name: Copy kafka rest proxy properties file
template: src=kafka-rest.properties.j2
dest="{{ kafka_dir }}/etc/kafka-rest/kafka-rest.properties"
owner={{ user }}
group={{ group }}
mode="u=rw,g=r,o=r"
become: yes
#- name: uninstall firewalld # install firewalld
# apt:
# name: firewalld
# state: absent #latest
# become: yes
#- name: start firewalld #and python-firewall
# service: name=firewalld state=started
# become: yes
#- name: open kafka proxy port
# firewalld:
# zone: public
# permanent: yes
# state: enabled
# immediate: yes
# rich_rule: rule family=ipv4 source address="{{ item }}" port port="{{ kafka_listener_port }}" protocol=tcp accept
# become: yes
# with_items:
# - "{{ sharing_subnets }}"
#
#- name: open kafka rest proxy port
# firewalld:
# zone: public
# permanent: yes
# state: enabled
# immediate: yes
# rich_rule: rule family=ipv4 source address="{{ item }}" port port="{{ kafka_rest_proxy_listener_port }}" protocol=tcp accept
# become: yes
# with_items:
# - "{{ sharing_subnets }}"
- name: systemd install kafka service script
template: src=kafka.service.j2
dest=/usr/lib/systemd/system/kafka.service
owner={{ user }}
group={{ group }}
mode="u=rw,g=r,o=r"
# notify: start kafka
become: yes
- name: systemd install kafka rest proxy service script
template: src=kafka-rest-proxy.service.j2
dest=/usr/lib/systemd/system/kafka-rest-proxy.service
owner={{ user }}
group={{ group }}
mode="u=rw,g=r,o=r"
become: yes
- name: Reload systemd daemons
command: systemctl daemon-reload
# notify: restart kafka
become: yes
- name: Reload systemd daemons
command: systemctl daemon-reload
# notify: restart kafka-rest-proxy
become: yes
- name: restart kafka
service: name=kafka state=restarted enabled=yes
become: yes
- name: restart kafka-rest-proxy
service: name=kafka-rest-proxy state=restarted enabled=yes
become: yes
...