我尝试使用 ansible playbook 循环 group_var 中的以下变量来创建 kafka 主题,如下所示
alltopics:
- topicname: abc1
replication: 3
partitions : 3
- topicname: xyx
replication: 3
partitions : 3
- topicname: qwe
replication: 3
partitions : 3
我有这样的任务
- name: create topic
shell: kafka-topics.sh --create --zookeeper localhost:2181 --replication-factor 2 --partitions 2 --topic abc
我无法创造美好的事物
首先,您应该修复 YAML 的缩进以使其有效:
alltopics:
- topicname: abc1
replication: 3
partitions: 3
- topicname: xyx
replication: 3
partitions: 3
- topicname: qwe
replication: 3
partitions: 3
然后,在您的任务中,您应该使用循环来迭代哈希列表(我使用多行 YAML 格式以获得更好的可读性):
- name: Create Kafka topics
shell: >
kafka-topics.sh
--create
--zookeeper localhost:2181
--replication-factor {{ item.replication }}
--partitions {{ item.partitions }}
--topic {{ item.topicname }}
loop: "{{ alltopics }}"
如果您正在开发实际应用程序,我建议考虑使用现有工具,例如 ansible-kafka-admin。