Hi all,

I'm using Ansible 1.7 and trying to populate an ec2_group with a list of 
allowed IPs inbound. My playbook looks like so:

---
- name: Allow specific hosts to talk to my instance
  hosts: localhost
  connection: local
  vars:
    ec2_region: us-east-1
    vpc_id: vpc-12345
    sg_name: very-secure-group
    sg_description: A very secure group
    ips:
      - 1.2.3.4/32
      - 1.2.3.5/32
      - 1.2.3.6/32
      - 1.2.3.7/32
  tasks:
    - name: Create a very secure group
      local_action:
        module: ec2_group
        name: "{{ sg_name }}"
        description: "{{ sg_description }}"
        region: "{{ ec2_region }}"
        vpc_id: "{{ vpc_id }}"
        rules:
          - proto: tcp
            from_port: 443
            to_port: 443
            cidr_ip: "{{ ips }}"
          - proto: tcp
            from_port: 22
            to_port: 22
            cidr_ip: 6.7.8.9/32
        rules_egress:
          - proto: tcp
            from_port: 22
            to_port: 22
            cidr_ip: 6.7.8.9/32


The security group creates  just fine when I run this playbook. However, on 
subsequent runs, I get the following error from AWS/boto:

<Response><Errors><Error><Code>InvalidPermission.Duplicate</Code><Message>the 
specified rule "peer: 1.2.3.4/32, TCP, from port: 443, to port: 443, ALLOW" 
already 
exists</Message></Error></Errors><RequestID>blahblah</RequestID></Response>

So I can't re-run the playbook to add/remove rules. I know this is an AWS 
issue, but I'd prefer not to have to write a rule for each and every IP. I 
tried to do a "with_items" loop to generate the rules, but that also fails 
- it just adds a new rule over the top of the old one over and over 
(presumably because it calls the ec2_group module for every item?)

Is there another way to specify a rather lengthy list of IPs without having 
to create a rule for each one?

Many thanks.

-- 
You received this message because you are subscribed to the Google Groups 
"Ansible Project" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/ansible-project/fe92790b-8ca5-4331-8d61-7a6e6a39a73e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to