Ansible module - ec2_elb Failing with Boto exeception ( throttling )

Hello fellow ansible users.

I have a process that turns on ec2 instances, then subsequently adds said instances to their respective load balancers. I get very intermittent results, sometimes the playbook will complete successfully, even consecutively at times. No matter what I do, ( change logic, implement ‘pauses’ etc, setting and retrieving facts ) I can not get around this AWS throttling message.

ansible code:

  • name: starting instance(s)
    when: instance_id is defined and lights_on|default (“false”) == “true”
    local_action: ec2
    args:
    region: ‘us-west-2’
    instance_ids: “{{ instance_id }}”
    state: ‘running’
    wait: ‘yes’
    wait_timeout: ‘300’
    register: ec2

  • name: Pausing, trying to avoid AWS throttling
    pause: minutes=10

  • name: registering instance to its respective groups ELB

instances that do not require ELBs do not need to run this part of the playbook

when: elb_shortname is defined and lights_on|default (“false”) == “true”
local_action: ec2_elb
args:
region: ‘us-west-2’
state: ‘present’
wait: ‘yes’
wait_timeout: ‘300’

Output:

TASK: [roles/lights_on | registering instance to its respective groups ELB] ***
failed: [tstmaorawss01 → 127.0.0.1] => {“failed”: true, “parsed”: false}
invalid output was: Traceback (most recent call last):
File “/Users/ndobbs/.ansible/tmp/ansible-tmp-1412091621.06-77576803493759/ec2_elb”, line 1874, in
main()
File “/Users/ndobbs/.ansible/tmp/ansible-tmp-1412091621.06-77576803493759/ec2_elb”, line 326, in main
elb_man.register(wait, enable_availability_zone, timeout)
File “/Users/ndobbs/.ansible/tmp/ansible-tmp-1412091621.06-77576803493759/ec2_elb”, line 159, in register
self._await_elb_instance_state(lb, ‘InService’, initial_state, timeout)
File “/Users/ndobbs/.ansible/tmp/ansible-tmp-1412091621.06-77576803493759/ec2_elb”, line 196, in _await_elb_instance_state
instance_state = self._get_instance_health(lb)
File “/Users/ndobbs/.ansible/tmp/ansible-tmp-1412091621.06-77576803493759/ec2_elb”, line 244, in _get_instance_health
status = lb.get_instance_health([self.instance_id])[0]
File “/Library/Python/2.7/site-packages/boto/ec2/elb/loadbalancer.py”, line 324, in get_instance_health
return self.connection.describe_instance_health(self.name, instances)
File “/Library/Python/2.7/site-packages/boto/ec2/elb/init.py”, line 547, in describe_instance_health
[(‘member’, InstanceState)])
File “/Library/Python/2.7/site-packages/boto/connection.py”, line 1166, in get_list
raise self.ResponseError(response.status, response.reason, body)
boto.exception.BotoServerError: BotoServerError: 400 Bad Request


Sender
Throttling
Rate exceeded

1a08966d-48b8-11e4-8ddc-e3515a48666b

Any insights as to what I can change to make this successful would be greatly appreciated. Thank you for your time.

For starters, what ansible --version are you using?

Thank you for replying. I knew I left something out.

Ansible version: ansible 1.7.2
Boto version: 2.32.1

Ok, can you please file a ticket on the github.com/ansible/ansible-modules-core repo?

Thanks!

issue has been submitted: https://github.com/ansible/ansible-modules-core/issues/143

Simply updating thread to include issue for cross reference.