Yep, I think we'd be open to that.
On Mon, Jul 14, 2014 at 1:07 PM, Kurt Yoder <[email protected]> wrote: > To answer your other question about neutron: I use "quantum_floating_ip" > to assign IPs on Openstack. > > It would be very useful if these API calls could also be parallelized. I > imagine a lot more time would be spent on 100 serial API calls than doing > them in parallel. > > -Kurt > > > On Monday, July 14, 2014 10:16:13 AM UTC-4, Kurt Yoder wrote: >> >> There's an undocumented min_count and max_count option in >> python-novaclient ServerManager.create() which looks like what you want [1]. >> >> -Kurt >> >> >> [1] https://github.com/openstack/python-novaclient/blob/ >> cc7364067f995bd952149cd172cebf083fe4dc99/novaclient/v3/servers.py#L427 >> >> >> On Friday, July 11, 2014 9:50:10 PM UTC-4, Michael DeHaan wrote: >>> >>> "So should I make a custom module which loops over nova_compute >>> asynchronously, and also assigns floating IPs?" >>> >>> I'd first rather know where the openstack API allows simultaneous >>> creation of N virtual machines of the same image type. >>> >>> I expect the floating IP stuff is fast and a usual with_items loop isn't >>> a problem there, once those guests exist. >>> >>> (Using neutron, I assume?) >>> >>> >>> On Fri, Jul 11, 2014 at 6:54 PM, Kurt Yoder <[email protected]> >>> wrote: >>> >>>> So should I make a custom module which loops over nova_compute >>>> asynchronously, and also assigns floating IPs? >>>> >>>> Would such a module be useful to the wider community, or is it too >>>> specialized to contribute back? >>>> >>>> On Friday, July 11, 2014 6:34:47 PM UTC-4, Michael DeHaan wrote: >>>> >>>>> So some of the provisioning modules, like AWS in particular, support >>>>> spinning up "N" modules at a time by passing "count" or "exact_count". >>>>> >>>>> Rackspace I believe does this with manual looping (for now), but I >>>>> could be wrong and that might have just been historical truth. >>>>> >>>>> If the OpenStack API says we can launch 10 at once, it could be made >>>>> to do similar things. >>>>> >>>>> >>>>> >>>>> >>>>> On Fri, Jul 11, 2014 at 5:28 PM, Kurt Yoder <[email protected]> >>>>> wrote: >>>>> >>>>>> I guess that error is because I put a "with_items" in there. >>>>>> >>>>>> How does everyone else do this? I don't understand how to loop >>>>>> asynchronously. See pseudo-code: >>>>>> >>>>>> < start all 5 at once: > >>>>>> < start up openstack host > >>>>>> < assign it a floating ip > >>>>>> < capture the floating ip > >>>>>> < end when all 5 have a floating ip > >>>>>> < wait for all 5 floating IPs to have an open SSH port > >>>>>> >>>>>> On Friday, July 11, 2014 5:20:34 PM UTC-4, Kurt Yoder wrote: >>>>>>> >>>>>>> Well, "async" is totally a bust. I got a message: >>>>>>> >>>>>>> fatal: [localhost] => lookup plugins (with_*) cannot be used with >>>>>>> async tasks >>>>>>> >>>>>>> >>>>>>> >>>>>>> On Thursday, July 10, 2014 6:17:48 PM UTC-4, Kurt Yoder wrote: >>>>>>>> >>>>>>>> Hello list, >>>>>>>> >>>>>>>> I anticipate provisioning 10-20 VMs using Ansible, then assigning >>>>>>>> floating IPs to each, then waiting for SSH to become available for >>>>>>>> each VM. >>>>>>>> I would like to do this in parallel instead of serially. Specifically: >>>>>>>> >>>>>>>> >>>>>>>> - Start the VMs, but don't block >>>>>>>> - Assign the IPs, but don't block >>>>>>>> - Wait on SSH until all VMs respond >>>>>>>> >>>>>>>> >>>>>>>> I saw the nova_compute "wait: 'no'" option, but when I use it I get >>>>>>>> a stack trace: >>>>>>>> >>>>>>>> failed: [localhost] => (item=1) => {"failed": true, "item": 1, >>>>>>>>> "parsed": false} >>>>>>>>> invalid output was: Traceback (most recent call last): >>>>>>>>> File "/home/ubuntu/.ansible/tmp/ansible-tmp-1405028178.0- >>>>>>>>> 234314980043958/nova_compute", line 1490, in <module> >>>>>>>>> main() >>>>>>>>> File "/home/ubuntu/.ansible/tmp/ansible-tmp-1405028178.0- >>>>>>>>> 234314980043958/nova_compute", line 266, in main >>>>>>>>> _create_server(module, nova) >>>>>>>>> File "/home/ubuntu/.ansible/tmp/ansible-tmp-1405028178.0- >>>>>>>>> 234314980043958/nova_compute", line 194, in _create_server >>>>>>>>> private = [ x['addr'] for x in getattr(server, >>>>>>>>> 'addresses').itervalues().next() if x['OS-EXT-IPS:type'] == >>>>>>>>> 'fixed'] >>>>>>>>> StopIteration >>>>>>>>> >>>>>>>> >>>>>>>> Perhaps I'm using it incorrectly: >>>>>>>> >>>>>>>> - name: Launch cluster VM on Openstack >>>>>>>>> nova_compute: >>>>>>>>> name: "{{ os_username }}_cluster1" >>>>>>>>> state: present >>>>>>>>> login_username: "{{ os_username }}" >>>>>>>>> login_tenant_name: "{{ os_tenant }}" >>>>>>>>> login_password: "{{ os_password }}" >>>>>>>>> image_id: "{{ os_image_id }}" >>>>>>>>> key_name: "{{ os_username }}_controller_key" >>>>>>>>> wait: "no" >>>>>>>>> flavor_id: "{{ os_flavor_id }}" >>>>>>>>> auth_url: "{{ os_url }}" >>>>>>>>> user_data: "#cloud-config\nmanage_etc_hosts: true" >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> So, two questions: >>>>>>>> >>>>>>>> >>>>>>>> 1. Am I using "wait" correctly? >>>>>>>> 2. Should I use "wait" to get to my desired parallel VM launch, >>>>>>>> as described above, or should I use something else, e.g. "async"? >>>>>>>> >>>>>>>> >>>>>>>> Thanks, >>>>>>>> >>>>>>>> -Kurt >>>>>>>> >>>>>>> -- >>>>>> 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/32b58cdf-17cd-42c9-8ef6-dc90327e989a% >>>>>> 40googlegroups.com >>>>>> <https://groups.google.com/d/msgid/ansible-project/32b58cdf-17cd-42c9-8ef6-dc90327e989a%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>> . >>>>>> >>>>>> For more options, visit https://groups.google.com/d/optout. >>>>>> >>>>> >>>>> -- >>>> 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/2326c06a-dec5-43b2-bd22- >>>> bb6856d14227%40googlegroups.com >>>> <https://groups.google.com/d/msgid/ansible-project/2326c06a-dec5-43b2-bd22-bb6856d14227%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>>> For more options, visit https://groups.google.com/d/optout. >>>> >>> >>> -- > 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/a1fc1c1c-a6ca-42ab-8296-a83bf447d2c2%40googlegroups.com > <https://groups.google.com/d/msgid/ansible-project/a1fc1c1c-a6ca-42ab-8296-a83bf447d2c2%40googlegroups.com?utm_medium=email&utm_source=footer> > . > > For more options, visit https://groups.google.com/d/optout. > -- 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/CA%2BnsWgzUu_aGSx0rT4K%3DF51vc4CUFb%3DGGUB67-8Rp%2Btdk%3D-0sg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
