Ищу несколько советов с автоматизацией Datapump - PullRequest
0 голосов
/ 11 июля 2019

Я пытаюсь перебрать каждый файл данных и загрузить правильный 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 в словаре
...