Я работаю над скриптом Ansible deploy, чтобы подключить solr-узел к запущенному ансамблю zookeeper. Команда, чтобы связать SOLR конфигурации для зоопарка выглядит следующим образом:Создайте динамическую команду с хостов в Ansible
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
А вот моя анзибль задача без петли:
- 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 хостов в инвентаре ?
спасибо за показ двумя способами; возьмите небольшую проблему с вызовом join-plus-dangle sexy –
Удивительный, именно то, что я искал. Благодаря! – tknickman