Я пытаюсь перебрать каждый файл данных и загрузить правильный DP.Он не способен различать pre-prod и prod datapaps.Это будет работать только в том случае, если записи в файле JSON в разделе «тип» сопоставляются непосредственно с записями в словаре.
Единственный способ узнать, какой dapapump является pre-prod или Prod, заключается в имени самого клиента.Предварительно созданные файлы данных заканчиваются на -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
, sftp:sftp
) {{ source[Type] }}
будет текущей записью в словареитерируется по
Если мы возьмем в качестве примера, путь /usr/local/datapump/clients/abc-client/sftp
{{ find_result.files }}
относится к /usr/local/datapump/clients/abc-client/
, который является первым каталогом в спискеклиентов {{ source[Type] }}
относится к sftp
, поскольку в словаре sftp отображается в sftp в словаре