idealista / kafka_role Goto Github PK
View Code? Open in Web Editor NEWAnsible role to install Apache Kafka
License: Apache License 2.0
Ansible role to install Apache Kafka
License: Apache License 2.0
Not removable topics only consider the first one in the list
Expected behavior: Consider all the filters in the list
Actual behavior: Only filter the first one
Reproduces how often: Always
1.13.1
There is an error while checking the topics to alter
1.8.0
Seems to be the flatten filter used
The second time the topics configuration is launched, it's trying to alter the new topics
Expected behavior: The second topic is created without problem
Actual behavior: Error while trying to alter tjhe second topic
Reproduces how often: always
1.7.0
Change default install path to avoid conflicts
Enable agent usage
Rename the role in order to accomplish Ansible Galaxy standards
N/A
Expected behavior: [What you expect to happen]
N/A
Actual behavior: [What actually happens]
N/A
Reproduces how often: [What percentage of the time does it reproduce?]
N/A
All
N/A
It's not possible to modify some configuration variables like:
kafka.offsets.topic.replication.factor
transaction.state.log.replication.factor
transaction.state.log.min.isr
Expected behavior: I expect these values from variables can be modified
Current behavior: I can't modify theses values automatically
Reproduces how often: 100%
<=1.3.1
Now not removable topics are those who begins with __. It would be great to provide also a list or a regex.
Use goss instead of testinfra for molecule testing
1.5.0
Add the ability of providing service, server and log4j templates via playbook.
Remove space before extra properties
Expected behavior: Zookeeper should be reached
Actual behavior: Zookeeper cannot be reached
Reproduces how often: 100%
All
[Description of the issue]
The task to configure topics use deprecated --zookeeper
parameter.
Needs to change to --bootstrap-server
parameter instead.
[Links]
https://github.com/idealista/kafka_role/blob/develop/tasks/topic_config.yml
https://github.com/idealista/kafka_role/blob/develop/tasks/topics.yml
I saw this repo that maybe it's useful. https://github.com/StephenSorriaux/ansible-kafka-admin
There are some version unavailable under uvigo repositories. Is not possible to install Kafka v2.1.1 because is not present in that repo.
kafka_mirror
variable cannot be overwritten because is declared in vars/main.yml
file and has higher precedence than grup vars.
That versions could be found on Apache Historical Archive: https://archive.apache.org/dist/kafka/
Because actually is not possible to install versions < 2.2.0 using uvigo mirror
It would be nice to use idealista/zookeeper in unit tests
The role fails using the default kafka version, that is no longer available.
All.
N/A
Enable extra properties in server.properties file
It'ld be nice to provide the KAFKA_JVM_PERFORMANCE_OPTS to override the default values
Let topìcs be configured in hte role
1.5.0
The scala version of the kafka package is in vars folder and cannot be override. It must be moved to default folder.
In the topics configuration step, it is trying to remove __consumer_offsets kafka internal topic
Expected behavior: Not try to delete internal topic
Actual behavior: Tries to remove __consumer_offsets
Reproduces how often: Always
1.6.0
Remove old kafka installations to avoid library conflicts
1.5.0
delete.topic.enable property can't be setted
Enable topic configuration parameters.
https://docs.confluent.io/current/installation/configuration/topic-configs.html
The role cannot be deployed to Ansible Galaxy because of missing username in role dependendies
Unexpected result while removing topics in python 3
1.8.0
Enable/disable GC logging using configuration parameters
1.5.0
auto.create.topics.enable property can't be setted :)
In the topics configuration step, it is trying to remove __consumer_offsets kafka internal topic
Expected behavior: Not try to delete internal topic
Actual behavior: Tries to remove __transaction_state
**Reproduces how often:**Always
1.7.0
Testinfra tests don't pass under Vagrant but in Docker:
___________________ test_kafka_service[ansible://kafka3.vm] ____________________
File = <class 'testinfra.modules.base.GNUFile'>
Service = <class 'testinfra.modules.base.SystemdService'>
Socket = <class 'testinfra.modules.base.LinuxSocketSS'>
AnsibleVars = {u'java_implementation': u'openjdk', u'kafka_host_name': u'127.0.0.1', u'kafka_hosts': [{u'host': u'kafka1.vm', u'id': 1}, {u'host': u'kafka2.vm', u'id': 2}, {u'host': u'kafka3.vm', u'id': 3}], u'kafka_port': 9999, ...}
Hostname = 'kafka3.vm'
def test_kafka_service(File, Service, Socket, AnsibleVars, Hostname):
if "kafka" in Hostname:
host = AnsibleVars["kafka_host_name"]
port = AnsibleVars["kafka_port"]
assert File("/lib/systemd/system/kafka.service").exists
assert Service("kafka").is_enabled
assert Service("kafka").is_running
> assert Socket("tcp://" + host + ":" + str(port)).is_listening
E AssertionError: assert False
E + where False = <socket tcp://127.0.0.1:9999>.is_listening
E + where <socket tcp://127.0.0.1:9999> = <class 'testinfra.modules.base.LinuxSocketSS'>(((('tcp://' + u'127.0.0.1') + ':') + '9999'))
E + where '9999' = str(9999)
tests/test_ansible.py:56: AssertionError
Seems to be a problem with the network interfaces because Kafka instances cannot connect to Zookeeper:
[2018-02-27 14:35:07,551] FATAL Fatal error during KafkaServerStartable startup. Prepare to shutdown (kafka.server.KafkaServerStartable)
org.I0Itec.zkclient.exception.ZkTimeoutException: Unable to connect to zookeeper server 'zookeeper.vm:2181' with timeout of 6000 ms
at org.I0Itec.zkclient.ZkClient.connect(ZkClient.java:1233)
at org.I0Itec.zkclient.ZkClient.<init>(ZkClient.java:157)
at org.I0Itec.zkclient.ZkClient.<init>(ZkClient.java:131)
at kafka.utils.ZkUtils$.createZkClientAndConnection(ZkUtils.scala:106)
at kafka.utils.ZkUtils$.apply(ZkUtils.scala:88)
at kafka.server.KafkaServer.initZk(KafkaServer.scala:326)
at kafka.server.KafkaServer.startup(KafkaServer.scala:187)
at kafka.server.KafkaServerStartable.startup(KafkaServerStartable.scala:39)
at kafka.Kafka$.main(Kafka.scala:67)
at kafka.Kafka.main(Kafka.scala)
But the zookeeper service is up & running (listening in port 2181):
vagrant@zookeeper:~$ netstat -tulpan
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN -
tcp 0 176 10.0.2.15:22 10.0.2.2:49603 ESTABLISHED -
tcp6 0 0 :::22 :::* LISTEN -
tcp6 0 0 :::39223 :::* LISTEN -
tcp6 0 0 :::2181 :::* LISTEN -
udp 0 0 0.0.0.0:68 0.0.0.0:* -
udp 0 0 0.0.0.0:68 0.0.0.0:* -
Could be reproduced executing tests using molecule test
Expected behavior: Tests passing
Actual behavior: Tests don't pass
Reproduces how often: 100%
1.3.x
Ansible version: 2.4.2.0
Vagrant version: 1.8.6
Molecule version: 1.25.0
Testinfra version: 1.11.0
Kafka went 1.0 (https://www.confluent.io/blog/apache-kafka-goes-1-0/). We should set it as the role default version.
Default mirror http://apache.uvigo.es/kafka only has 2.6.1 and 2.7.0 versions (default is 2.6.0):
Tests (and actual installation) are failing to download kafka.
Expected behavior:
Install kafka
Actual behavior:
Failure to download the installation file
Reproduces how often:
Everytime
You could find previous versions to 2.6.1 in https://archive.apache.org/dist/kafka
The broker id is setted by default to 0.
We must provide an easy way to set the id for multiple brokers.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.