I'm trying to populate a file based on some default vars and I'm wondering if the following is possible (and if so, how?) because I've been unable to get it to work.
given:
ansible 2.3.0.0
python version = 2.7.13 (default, May 10 2017, 20:04:28) [GCC 6.3.1 20161221 (Red Hat 6.3.1-1)]
../defaults/main.yml
- {name: "{{inventory_hostname}}", '{{ansible_ec2_placement_region}}': true, "{{ansible_ec2_placement_availability_zone}}": true, test: true, group1: true}
- name: '{{ansible_ec2_placement_region}}'
- name: '{{ansible_ec2_placement_availability_zone}}'
- name: 'group1'
- name: 'test'
../templates/groups.cfg
{% for group in host_groups %}
members {{hosts|selectattr(
group.name, 'defined')|map(attribute='name')|join(',')}}
../tasks/groups.yml
- name: Generate groups
become: true
template:
src: groups.cfg
dest: "{{object_dir}}/groups.cfg"
mode: 0644
with_items:
- "{{host_groups}}"
I would like for the template to be converted to:
group_name test;
group_name us-west-2;
group_name us-west-2a
but what I get is:
group_name test;
group_name us-west-2;
members ;
group_name us-west-2a;
members ;
group_name group1;