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 <module>
    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
<ErrorResponse 
xmlns="http://elasticloadbalancing.amazonaws.com/doc/2012-06-01/";>
  <Error>
    <Type>Sender</Type>
    <Code>Throttling</Code>
    <Message>Rate exceeded</Message>
  </Error>
  <RequestId>1a08966d-48b8-11e4-8ddc-e3515a48666b</RequestId>
</ErrorResponse>

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

-- 
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/10b7e184-cd7f-44de-bfc3-a182853b27b8%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to