迭代with_nested list

时间:2018-02-28 16:57:23

标签: ansible

我有以下with_nested:

- name: Create solr schema for solr_cores
  uri:
    url: http://{{ cassandra_cluster_ips.split(',') | random }}:8983/solr/admin/cores?action={{ solr_core_action }}&core={{ item[1] }}.{{ item[0] }}
    timeout: "{{ solr_create_timeout }}"
  sudo: True

  with_nested:
     -  "{{ solr_cores }}"
 -  "{{ client_names }}"

我想改变自我的额外变量:

#solr_cores: ['dom_chunk_meta', 'dom', 'tra_chunk_meta','tra','dom_difference_results','me_output']
 #solr_core_action: "reload"

于:     solr_cores:[{'dom_difference_results':'create'},{'dom':'reload'},     {'tra':'reload'},{'me_output':'reload'}]

我查看了子元素,但不知道如何将其作为一个简单的字典列表传递,以便我可以将它们设置为uri来访问它。

1 个答案:

答案 0 :(得分:0)

我不是100%确定你想要做什么但是with_dict可能是要使用的。如果这不适合你,请评论,我会调整答案。

在您的vars / inventory中:

solr:
  - name: core1
    create_timeout: 30
    action: reload
  - name: core2
    action: create
    create_timeout: 60

在你的剧本中:

- name: Create solr schema for solr_cores
  uri:
    url: http://{{ cassandra_cluster_ips.split(',') | random }}:8983/solr/admin/cores?action={{ item.value.core_action }}&core={{ item.value.name }}.{{ item.value.other }}
    timeout: "{{ item.value.create_timeout }}"
  sudo: True
  with_dict: "{{ solr }}"