So that's a very old thread you've replied to, can you paste an example of
what you are wishing to do?




On Wed, Jul 30, 2014 at 8:51 PM, Ned McClain <[email protected]> wrote:

> Stephen,
>
> I also desperately need a set_facts that works with with_items.  Have you
> had any response to these excellent use-case examples?
>
> Ned.
>
>
> On Monday, November 11, 2013 11:14:41 AM UTC-7, Stephen Gargan wrote:
>>
>> Michael,
>>
>> I've put together an implementation for an add_facts command a couple of
>> examples that show what it might be useful for here
>> https://github.com/sgargan/ansible-add-facts-examples. I think it
>> explains the intention of the command a little better and gives a concrete
>> example of the pattern I was attempting to explain above. I'm interested to
>> hear what your thoughts are.
>>
>> thanks,
>>
>> Steve.
>>
>> On Wednesday, 6 November 2013 22:48:22 UTC-8, Stephen Gargan wrote:
>>>
>>> I've a pattern that I want to apply and I'm wondering what the best
>>> practice might be for this. I have a situation where I apply a number of
>>> roles to a host and each have a number of facts or variables that I'd like
>>> to use in a final role, typically to generate a unified config for the host.
>>>
>>> Say I'm applying a number of roles say a, b, c that are all distinct,
>>> but each exposes a set of metrics in a uniform way. As each gets played,
>>> I'd like to add facts about the metrics for the role in such a way that I
>>> can iterate over them in a final role d to generate some aggregate config
>>> to expose all the metrics.
>>>
>>> I have a number of situations that I'd like to apply this pattern so if
>>> there is a standard way to do this I'd love to hear it.
>>>
>>> If not, I have been mulling over extending the set_fact module to allow
>>> something like the following
>>> Say each role could add a dictionary of values to an aggregate
>>> collection, aggregated_facts, so that in d I could do
>>>
>>> {% for addedFactsForRole in aggregated_facts %}
>>> // processing facts for key addedFactsForRole.key
>>> {% for addedFact in addedFactsForRole.facts %}
>>> // process addedFact.name
>>> // process addedFact.value
>>> {% endfor %}
>>> {% endfor %}
>>>
>>> I have used group variables to do something similar, but this tends to
>>> get crufty as it means replicating the data in every site that I use the
>>> role and I like to be able to have very generic roles that I can reuse in
>>> different sites. If the list could dynamically built like this it would be
>>> arguably more cohesive as now I could define all of the data for the role,
>>> within the role, and still have the ability to override it at the site
>>> level with group vars.
>>>
>>> I'm thinking the task definition might look something like this.
>>>
>>>   name: Add metrics to metrics aggregate
>>>   add_fact: group=host_metrics key=$role_key fact=$item
>>>   with_items: $list_of_metrics
>>>
>>> In the case above the list_of_metrics could be a list of single entries
>>> or a list of json blobs. I don't want to go re-inventing the wheel, this
>>> seems like a common enough scenario so I'm very curious how folks tackle
>>> it, before I go about putting this together.
>>>
>>> Thanks in advance,
>>>
>>> Steve.
>>>
>>  --
> 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/d6bd87d4-d208-4890-9ff1-e17d81778e6f%40googlegroups.com
> <https://groups.google.com/d/msgid/ansible-project/d6bd87d4-d208-4890-9ff1-e17d81778e6f%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%2BnsWgxadOn-kkLwu6Fsr3SbER6bPAHeaeQgvqUsy9QygA3M2A%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to