I am able to successfully execute Ansible module ec2_vpc_subnet_facts and register the output into a variable, subnet_facts.
I am using Ansible version 2.5.0and python version = 2.7.14
I am able to check that subnet_facts contains the proper information using:
- name: Debug for subnet_facts
debug:
var: subnet_facts
tags:
- vpc_create
I am looking to create a list of subnet_ids from the subnet_facts.results.subnets.id attribute
The set_fact example from the Ansible module documentation page (http://docs.ansible.com/ansible/latest/modules/ec2_vpc_subnet_facts_module.html) throws an error. This is what is on the documentation page:
- set_fact:
subnet_ids: “{{ subnet_facts.subnets|map(attribute=‘id’)|list }}”
So far, I’ve managed to play around with the statement to get it to work (see permutations below) but now I get ‘undefined” as the output.
- name: Set subnet_ids fact
set_fact:
#subnet_ids: “{{ subnet_facts.results|map(attribute=‘id’)|list }}”
subnet_ids: “{{ subnet_facts.results|selectattr(‘subnets’)|map(attribute=‘id’)|list }}”
#subnet_ids: “{{ subnet_facts.results|map(attribute=‘subnets’)|map(attribute=‘id’)|list }}”
#subnet_ids: “{{ subnet_facts|selectattr(‘results.subnets’)|map(attribute=‘id’)|list }}”
- name: Debug for subnet_ids
debug:
var: subnet_ids
tags:
- vpc_create
ok: [localhost] => {
“ansible_facts”: {
“subnet_ids”: “[Undefined, Undefined, Undefined]”
},
“changed”: false
}
I think I am at the “can’t see the forest for the trees” stage and I need the proverbial slap upside the head to show me what I am doing wrong. Any ideas? Suggestions?