迭代with_nested列表中的字典列表

问题描述 投票:0回答:1

我有以下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"

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

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

ansible
1个回答
0
投票

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

在您的vars /库存中:

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 }}"
© www.soinside.com 2019 - 2024. All rights reserved.