# Licensed to the Apache Software Foundation (ASF) under one or more contributor
# license agreements; and to You under the Apache License, Version 2.0.
---
# This playbook deploys an Openwhisk Kafka bus.

- hosts: zookeepers
  roles:
  - zookeeper

- hosts: kafkas
  roles:
  - kafka
