loops over the registered variable to inspect the results in ansible -
i have ansible-playbook creates multiple ec2 security groups using with_items , register result.
here var file playbook:
--- ec2_security_groups: - sg_name: nat_sg sg_description: sg nat instance sg_rules: - proto: tcp from_port: 22 to_port: 22 cidr_ip: 0.0.0.0/0 - sg_name: web_sg sg_description: sg web instance sg_rules: - proto: tcp from_port: 22 to_port: 22 cidr_ip: 0.0.0.0/0 - proto: tcp from_port: 80 to_port: 80 cidr_ip: 0.0.0.0/0
and here playbook creates ec2 security groups:
--- - name: ec2group | creating ec2 security group inside mentioned vpc local_action: module: ec2_group name: "{{ item.sg_name }}" description: "{{ item.sg_description }}" region: "{{ vpc_region }}" # change aws region here vpc_id: "{{ vpc.vpc_id }}" # vpc resgister name, can set manually state: present rules: "{{ item.sg_rules }}" with_items: ec2_security_groups register: aws_sg
this works problem that, want group id of each group playbook has created next task, have tried failed:
- name: tag security group name local_action: module: ec2_tag resource: "{{aws_sg.group_id}}" region: "{{ vpc_region }}" state: present tags: name: "{{vpc_name }}-group" with_items: aws_sg.results
can point me how can group_id each group register result. thanks
p.s: can value of group_id individual sg group like:
aws_sg.results[0].group_id , aws_sg.results[1].group_id etc
rtm. ansible set loop variable item
each iteration.
aws_sg.results[0].group_id , aws_sg.results[1].group_id etc
assuming wrote above correct. need change aws_sg.group_id
item.group_id
:
- name: tag security group name local_action: module: ec2_tag resource: "{{ item.group_id }}" region: "{{ vpc_region }}" state: present tags: name: "{{vpc_name }}-group" with_items: aws_sg.results
if doesn't work post output of task corrections:
- debug: msg="aws_sg= {{ aws_sg }}"
Comments
Post a Comment