#ansible
#ansible
Вопрос:
У меня есть сборник задач, который собирает ec2_info
и я хотел бы отобразить на консоли информацию для пользователя на основе результата условной проверки с помощью оператора when. В моем сборнике when
условие не работает. Как я могу реализовать задачу, чтобы обеспечить правильные результаты оператора when?
- hosts: localhost
gather_facts: false
tasks:
- name: ec2 instance info
ec2_instance_info:
aws_access_key: "{{ AWS_ACCESS_KEY_ID }}"
aws_secret_key: "{{ AWS_SECRET_ACCESS_KEY }}"
aws_region: "{{ AWS_REGION }}"
register: result
- name: display ec2 info
debug:
msg:
- "{{ item.tags['Name'] }}"
- "{{ item.placement['availability_zone'] }}"
- "{{ item.instance_type }}"
- "{{ item.launch_time }}"
- "{{ item.state['name'] }}"
with_items:
- "{{ result.instances }}"
loop_control:
label: ""
when: ("item.state['name'] == running")
Ответ №1:
Это была проблема с цитатой в when
заявлении. Приведенный ниже код исправил мою проблему:
- name: display ec2 info
debug:
msg:
- "{{ item.tags['Name'] }}"
- "{{ item.placement['availability_zone'] }}"
- "{{ item.instance_type }}"
- "{{ item.launch_time }}"
- "{{ item.state['name'] }}"
with_items:
- "{{ result.instances }}"
loop_control:
label: ""
when: (item.state['name'] == "running")