【发布时间】:2015-06-06 03:58:12
【问题描述】:
我正在编写 Ansible 部署脚本,以将 solr 节点连接到正在运行的 zookeeper 集成。将 solr 配置链接到 zookeeper 的命令如下所示:
solr/scripts/cloud-scripts/zkcli.sh -zkhost 33.33.33.30:2181,33.33.33.31:2181,33.33.33.32:2181 -cmd upconfig -confdir solr/solr/collection1/conf -confname solr_config
我想让命令尽可能动态 - 所以我想从我的库存文件中提取 zookeeper 主机。当我知道总是有 3 个时,我可以这样做,但我希望根据列出的数量调整命令。我已经尝试过使用 Ansibles with 命令 - 但我无法让它工作,因为在最后一个主机之后我不需要逗号。
这是我的库存文件:
[zookeeper]
33.33.33.30
33.33.33.31
33.33.33.32
[solr]
33.33.33.33
33.33.33.34
33.33.33.35
这是我没有循环的 Ansible 任务:
- name: SOLR | Upload Configs To Zookeeper
command: "{{ solr.home }}/scripts/cloud-scripts/zkcli.sh -zkhost {{groups.zookeeper[0] }}:{{ zookeeper.port }}, {{ groups.zookeeper[1] }}:{{ zookeeper.port }}, {{ groups.zookeeper[2] }}:{{ zookeeper.port }} -cmd upconfig -confdir {{ solr.home }}/solr/{{ solr.collection_name }}/conf -confname {{ solr.config_name }}"
when: inventory_hostname == groups.solr[0]
您想知道如何使库存中的 zookeeper 主机数量动态变化吗?
【问题讨论】:
标签: solr command jinja2 apache-zookeeper ansible