使用多个页面迭代 Ansible Tower API

Iterating through Ansible Tower APIs with multiple pages

我需要为工作模板获取所有相关工作。 API 每页最多只能 return 200 个结果。
有人用 URI 模块处理过 API 分页吗?
如何使用名为 page_number?

的变量简单地遍历页数

在我的代码下方:

- name: List related jobs for job template
  uri:
    url: http://localhost{{ api_for_job_template.json.related.jobs }}?page_size=200&page={{ page_number }}
    force_basic_auth: yes
    user: "{{ user }}"
    password: "{{ password }}"
    body_format: json
  register: jobs_info

好的,我找到了获取所有页面的方法。 在一项任务中,我计算了 API 中的作业数,并将其除以每页返回的记录数。接下来在 uri 中使用“with_sequence”逐页迭代。只需要将它四舍五入并转换为 int。

- name: List related jobs for job template
  uri:
    url: http://localhost{{ api_for_job_template.json.related.jobs }}?page_size={{ page_size }}&page={{ item }}
    force_basic_auth: yes
    user: "{{ user }}"
    password: "{{ password }}"
    body_format: json
  register: jobs_info
  with_sequence: start=1 end="{{ end_at }}"
  vars:
    - end_at: "{{ ((jobs_count.json.count / 20) | round(0,'ceil')) | int }}"