В настоящее время я использую модуль route53_facts в проекте.У меня 250 наборов записей в одной размещенной зоне.У меня проблемы с перечислением всех наборов записей в этой зоне.API Route 53 работает, возвращая страницы максимум 100 записей за раз.Чтобы получить следующую страницу, необходимо передать значение ответа NextRecordName в start_record_name модуля * route53_facts: (довольно просто).
Проблема, с которой я столкнулсяопределенно становится Ansible, чтобы сделать это.Предположительно, это можно сделать с помощью цикла, например, в псевдокоде:
start
get 100 records
do until response does not contain NextRecordName:
get 100 records (start_record_name=NextRecordName)
end
В Ansible я написал следующую задачу, чтобы сделать это:
- block:
- name: List record sets in a given hosted zone
route53_facts:
query: record_sets
hosted_zone_id: "/hostedzone/ZZZ1111112222"
max_items: 100
start_record_name: "{{ record_sets.NextRecordName | default(omit) }}"
register: record_sets
until: record_sets.NextRecordName is not defined
when: "'{{ hosted_zone['Name'] }}' == 'test.example.com.'"
... однако этоне работает, как ожидалось.Вместо того, чтобы непрерывно листать ответы до тех пор, пока не останется больше записей, он многократно возвращает первые 100 записей («первая страница»).
Как я вижу из вывода отладочной информации Ansible, start_record_name: многократно null :
"attempts": 2,
"changed": false,
"invocation": {
"module_args": {
"aws_access_key": null,
"aws_secret_key": null,
"change_id": null,
"delegation_set_id": null,
"dns_name": null,
"ec2_url": null,
"health_check_id": null,
"health_check_method": "list",
"hosted_zone_id": "/hostedzone/ZZZ1111112222",
"hosted_zone_method": "list",
"max_items": "100",
"next_marker": null,
"profile": null,
"query": "record_sets",
"region": null,
"resource_id": null,
"security_token": null,
"start_record_name": null,
"type": null,
"validate_certs": true
}
},
... я думаю, что |по умолчанию (опущено) фильтр всегда выполняется.Другими словами, record_sets.NextRecordName никогда не инициализируется на этом этапе задачи.
Я надеюсь, что кто-нибудь может помочь мне получить Ansible для возврата всех записей из зоны на маршруте 53Я думаю, что я запутался в зацикленном поведении Ansible.Спасибо!