Dynamic Variables

24 views
Skip to first unread message

Rodolfo González Romero

unread,
Mar 9, 2016, 11:48:36 PM3/9/16
to Ansible Project
Hi i'm able to create dynamic facts but i have a problem using them in other task

i set the facts like this:

- name: set security_groups facts
  set_fact:
    "{{ item.item.name | replace('-', '_') }}_group":
      name: "{{ item.item.name }}"
      group_id: "{{ item.group_id }}"
      rules: "{{ item.item.rules }}"
      state: "{{ item.item.state }}"
  with_items: ec2_groups.results

and are accessible calling like this

- debug: var=monitor_server_group
- debug: var=monitor_test_1_group
- debug: var=monitor_test_2_group

but when i try to do this

- name: Create EC2 instances per subnets
  ec2:
    profile: "{{ boto_profile }}"
    key_name: "{{ item[1].name }}"
    region: "{{ vpc.region }}"
    group_id: "{{ item[1].name | replace('-', '_') ~ '_group' }}.group_id"
    instance_type: "{{ item[1].instance_type }}"
    image: "{{ item[1].ami }}"
    vpc_subnet_id: "{{ item[0] }}"
    monitoring: yes
    wait: yes
    instance_tags:
      env: "{{ linio_environment }}"
      Name: "{{ item[1].name }}"
      role: "{{ item[1].role }}"
      group: "{{ item[1].host_group }}"
      cap_stage: "{{ item[1].role }}"
    count_tag: "{{ item[1].name }}"
    exact_count: "{{ item[1].instances }}"
  with_nested:
    - vpc.subnets.security.private_subnet_ids
    - ec2_instances_configuration
  register: api_instances_facts


i got:

<Response><Errors><Error><Code>InvalidGroupId.Malformed</Code><Message>Invalid id: "monitor_test_2_group.group_id"

how can i use the name as variable object instead of a string
Reply all
Reply to author
Forward
0 new messages