At the time I wasn't immediately able to test the newer version James
mentioned, and I worked around it soon after. So in short, no, I forgot to
file anything in this case (sorry!).
How similar is your issue? (mainly curious if it is a host grouping thing,
or if you're just also iterating a built in structure with with_items:)
My normal "real" ec2 workflow expected Ansible to use a dynamic inventory
anyway, and I'd already parameter-ized that call to allow for different
inventory scripts in case I wanted to add rax support later. So what I
ended up doing to get by was get help on IRC to write a simple (basically
fake) dynamic inventory script for vagrant deploys that just prints out
"localhost", but already a member of the groups I needed. So it's pretty
much just a static inventory file in a format that is more convenient to
the situation.
# vagrant.py
> #!/usr/bin/env python
>
> print '{"db": {"hosts": ["localhost"], "vars": {"ansible_connection":
> "local"}}, "vagrant_dummy_group": {"hosts": ["localhost"], "vars":
> {"ansible_connection": "local"}}, "web": {"hosts": ["localhost"], "vars":
> {"ansible_connection": "local"}}}'
>
>
Thanks,
Mark
On Monday, March 24, 2014 1:58:12 PM UTC-5, Matt Coddington wrote:
>
> Hi Mark/James,
> Do you guys know if there was a bug filed on this? I'm running into a
> similar thing in 1.5.3. If not i'll try and put together a minimal
> playbook to reproduce.
>
> thanks,
> matt
>
>
>
> On Tue, Feb 4, 2014 at 6:50 PM, James Tanner <[email protected]<javascript:>
> > wrote:
>
>> Please file a bug for any tracebacks you find. We would definitely like
>> to know if you can reproduce this on 1.4.4 or on the latest devel.
>>
>>
>> On Tue, Feb 4, 2014 at 6:46 PM, Mark Casey <[email protected]<javascript:>
>> > wrote:
>>
>>> For what it's worth, I tried taking out the reference to group_names and
>>> instead passed into the role as a variable a list of group names to test
>>> with. I still got the traceback. It doesn't happen if I just duplicate the
>>> task and use multiple copies of it that are even more hard coded such as:
>>> "{{ id }}_aStaticGroupName". Now the whole thing breaks horribly *past*that
>>> point because of the change, but the tracebacks stop.
>>>
>>> So AFAICT I get the traceback trying to use "{{ id }}_{{ item }}".
>>>
>>> Also I forgot to mention that I'm seeing this on v1.4.3.
>>>
>>> Thank you,
>>> Mark
>>>
>>>
>>> On Monday, February 3, 2014 4:01:14 PM UTC-6, Mark Casey wrote:
>>>>
>>>> Hello,
>>>>
>>>> I'm getting a traceback on a group_by, which is intended to create a
>>>> group named after each of a host's existing groups, prepended by a
>>>> variable
>>>> that is being set with '-e' at invocation (a site/host-group ID):
>>>>
>>>> - name: vagrant | Create provider-agnostic ID_and_type group
>>>>> group_by: key="{{ id }}_{{ item }}"
>>>>> with_items: group_names
>>>>> when: provider == "vagrant"
>>>>>
>>>>
>>>> The variable *provider* is also being set via '-e'. So for example, a
>>>> host that was part of the dns and mail groups would be added to groups
>>>> like
>>>> prodSite1_dns and prodSite1_mail. These are not being set statically in an
>>>> inventory file because sometimes it is run on ec2 hosts and the groups are
>>>> pulled from tags, and sometimes it is run on a vagrant box and the groups
>>>> are written into an inventory script.
>>>>
>>>> Here is what I'm getting when running with -vvvv:
>>>>
>>>> TASK: [iaas_gather_multi | ec2 | Create provider-agnostic ID group]
>>>>> ***********
>>>>> skipping: [localhost]
>>>>>
>>>>> TASK: [iaas_gather_multi | ec2 | Create provider-agnostic type group]
>>>>> *********
>>>>> skipping: [localhost]
>>>>>
>>>>> TASK: [iaas_gather_multi | ec2 | Create provider-agnostic ID_and_type
>>>>> group] ***
>>>>> skipping: [localhost]
>>>>>
>>>>> TASK: [iaas_gather_multi | ec2 | Create provider-agnostic
>>>>> host-provisioned boolean] ***
>>>>> skipping: [localhost]
>>>>>
>>>>> TASK: [iaas_gather_multi | debug var=group_names]
>>>>> *****************************
>>>>> ok: [localhost] => {
>>>>> "group_names": [
>>>>> "db",
>>>>> "webnode"
>>>>> ],
>>>>> "item": ""
>>>>> }
>>>>>
>>>>> TASK: [iaas_gather_multi | vagrant | Create provider-agnostic
>>>>> ID_and_type group] ***
>>>>> created 'group_by' ActionModule: key={{id}}_{{item}}
>>>>> changed: [localhost] => (item=db) => {"changed": true, "groups":
>>>>> {"vagrant-devhost_db": ["localhost"]}, "item": "db"}
>>>>> created 'group_by' ActionModule: key={{id}}_{{item}}
>>>>> fatal: [localhost] => Traceback (most recent call last):
>>>>> File "/usr/lib/pymodules/python2.7/ansible/runner/__init__.py",
>>>>> line 394, in _executor
>>>>> exec_rc = self._executor_internal(host, new_stdin)
>>>>> File "/usr/lib/pymodules/python2.7/ansible/runner/__init__.py",
>>>>> line 514, in _executor_internal
>>>>> complex_args=complex_args
>>>>> File "/usr/lib/pymodules/python2.7/ansible/runner/__init__.py",
>>>>> line 685, in _executor_internal_inner
>>>>> result = handler.run(conn, tmp, module_name, module_args, inject,
>>>>> complex_args)
>>>>> File
>>>>> "/usr/lib/pymodules/python2.7/ansible/runner/action_plugins/group_by.py",
>>>>> line 86, in run
>>>>> del self.runner.inventory._vars_per_host[host]
>>>>> KeyError: u'localhost'
>>>>>
>>>>>
>>>>> FATAL: all hosts have already failed -- aborting
>>>>>
>>>>
>>>> Thank you,
>>>> Mark
>>>>
>>> --
>>> 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] <javascript:>.
>>> To post to this group, send email to
>>> [email protected]<javascript:>
>>> .
>>> For more options, visit https://groups.google.com/groups/opt_out.
>>>
>>
>> --
>> 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] <javascript:>.
>> To post to this group, send email to [email protected]<javascript:>
>> .
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>
>
--
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/6ea7d50b-64d9-426d-8542-041b07ddaed4%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.