У меня есть несколько задач, подобных этой:
- ec2_asg_facts:
region: us-west-2
tags:
Name: my-asg
register: asg
- set_fact:
current_lc: "{{ asg.results | map(attribute='launch_configuration_name') | first }}"
instances: "{{ asg.results | map(attribute='instances') | flatten | list }}"
- set_fact:
instances_to_rotate: "{{ instances | rejectattr('launch_configuration_name', 'equalto', current_lc) | list }}"
Проблема заключается в том, что если удаляется конфигурация запуска для экземпляров (что часто имеет место, когда я обновляю конфигурацию запуска для ASG на новую, но еще не завершил работу старых экземпляров), launch_configuration_name
атрибут отсутствует, поэтому третье задание не выполняется с сообщением 'dict object' has no attribute 'launch_configuration_name'
. Как отфильтровать элементы в списке instances
, у которых атрибут launch_configuration_name
не равен current_lc
ИЛИ отсутствует атрибут launch_configuration_name
?