I have the following playbook. As you can see Im reading the ec2 tags and then attempt to run a role based on a condition. But the condition is never met and it always skips the role. As you can see Im printing the value of the variable with debug and I can see the value matches. But in the code the evaluation fails and the condition is never met. I tried different variant for the allTags.tags.role like adding quotes and brackets. Nothing worked. I finally decided to abandon the role based on conditional idea and went with group_by. But I would like to understand what I was doing wrong here. Any help would be greatly appreciated.
---
- hosts: localhost
sudo: true
tasks:
- name: gather ec2 facts
action: ec2_facts
- name: get environment tag
action: ec2_tag resource={{ ansible_ec2_instance_id }} region={{ ansible_ec2_placement_region }} state=list
register: allTags
- debug: var=allTags.tags.role
roles:
- { role: storm-configure, when: allTags.tags.role == 'storm' }
- { role: nimbus, when: allTags.tags.role == 'nimbus' }