我正在尝试遍历每个数据泵并下载正确的DP。它无法区分prod产品和prod产品。仅当JSON文件中“类型”下的条目与字典中的条目直接匹配时,该方法才有效。
了解哪个数据泵是预生产或生产的唯一方法是使用客户端本身的名称。产品前数据泵以-clone结尾。有什么方法可以修改YAML文件来解决这个问题?
vars:
package_dir: "/var/"
version_file: "{{ lookup('file','~/github/datapump-ansible/DPA/inventories/jsonlinks.json') | from_json }}"
- unarchive:
src: {{ item.link }}
dest: {{ item.path }}/{{ source[Type] }}/datapump-common
remote_src: no
with_items:
- "{{ find_result.files }}"
- "{{ DPTypes | list }}"
- "{{ source[Type] | json_query('results[*].json[*].Type')}}"
{{ find_result.files }}
是/usr/local/datapump/clients/
{{ DPTypes | list }}
是sis
,canvas
和sftp
的字典,它们将它们映射到自己(sis:sis
,canvas:canvas
,{{ 1}})sftp:sftp
将是字典中正在迭代的当前条目如果我们以路径{{ source[Type] }}
/usr/local/datapump/clients/abc-client/sftp
是指{{ find_result.files }}
,它是客户端列表中的第一个目录/usr/local/datapump/clients/abc-client/
指的是{{ source[Type] }}
,因为sftp被映射到字典中的sftp