Think outside the box, ansible is not intended to manipulate data it
is designed to take the data and build a configuration with it, trying
to do other thing will only mess your configuration. Look where you
gather the data outside ansible and access it there.



2016-05-06 2:18 GMT+02:00 Donald Clark Jackson <[email protected]>:
>
> On May 5, 2016, at 4:37 PM, Matt Martz <[email protected]> wrote:
>
> In general neither dynamic inventory scripts nor modules have access to
> host/group vars.
>
> host/group vars are part of inventory, so for me it feels weird that an
> inventory script would need access to them, as opposed to providing them.
>
>
> I can see why this might seem weird.
>
> But what if  a dynamic inventory script could benefit from a variable
> defined elsewhere, for example, in a static inventory file?
> Sure I could define yet another config file, or use environment variables,
> but that is just spreading my configuration around in more places.
>
> To give a highly contrived example, what if I was writing a dynamic
> inventory that was going to dispatch to various cloud-based dynamic
> inventory scripts,
> where the list of cloud providers I currently use is defined in a high level
> text inventory file
> My contrived dispatching cloud inventory script would obtain that list,
> and then call each specific cloud inventory script.  Again, this is just an
> example and not really what I am doing,
>
> So there is no way for an inventory script to ask ansible for the value of a
> variable?
> I guess I could shell out to ansible, and give it ad-hoc args to lookup and
> return the variable, and parse the result.  Yuck!
>
> As far as modules, you should require that the var be passed to the module.
> The only way to get this by default is to also write an action plugin that
> could pass the var to the module for you.
>
>
> This is helpful, thanks!
>
> I just found this:  Ansible: Modules and Action Plugins, which uses
>
>         template_string = '' % fact_name
>         res = template.template(self.basedir, template_string, inject)
>         return None if res == template_string else res
>
> to look up the value of a variable.  Is this the best way?
>
> It seems to me that there is plenty of configured state that some
> combination of Ansible itself and modules leverage, things like
> ansible_python_interpreter, etc.
>
>
>
> On Thursday, May 5, 2016, Donald Clark Jackson <[email protected]> wrote:
>>
>>
>> Hello,
>>
>> I'm developing both an Ansible module and a dynamic inventory script, in
>> Python.
>>
>> In each case, I need to lookup/obtain the value of a host/group variable.
>>
>> I've looked through the documentation, and tried a bunch of online
>> searches, but haven't really found anything very illuminating.
>>
>> Any advice/pointers would be greatly appreciated.
>>
>> Don
>>
>> --
>> 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/8C6DC569-7B75-4E84-B84C-2A9F06C1003B%40drivescale.com.
>> For more options, visit https://groups.google.com/d/optout.
>
>
>
> --
> Matt Martz
> @sivel
> sivel.net
>
>
> --
> 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/CAD8N0v-wMQ-5-EM%2BxJN3A%3DCC6rko85Sdi9irsrVrL-XOQVktNA%40mail.gmail.com.
> 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/F8D6331D-ACC2-486B-8F2E-5326E838B688%40drivescale.com.
>
> 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/CAOz0OoDyJWtX0-OZeKgaof0pDg5RWNP3CFoJQVYz05jWZnb_PQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to