* p.s. why ansible 1.7.2, it comes standard with Debian 8.5 (jessie)?

Err, :O I wanted to explain, why am I using, Ansible 1.7.2. and not 
something new, since it comes standard with the Debian 8.5 distribution. I 
know it is old. But that is not in my hand. Anyways.


On Thursday, July 7, 2016 at 7:08:11 PM UTC+2, Junaid Naseer wrote:
>
>
>    -  I am almost certain this is not possible in *Ansible* (at least not 
>    in version* 1.7.2*), but just to be thorough in my investigation, 
>    after exhausting all lookups on *google*, *stackoverflow*, 
>    *serverfault*, etc. I am posting it now here.
>
>
>    -  I have a list of usernames in a dictionary, something like this:
>
>
> keymap:
>    userx:
>       property1: xyz
>       property2: abc
>
>    usery:
>       property1: xyz
>       property2: abc
>
>
>    - And then I have a set of files, essentially named like this in a 
>    folder:
>
>
> *$ /tmp/pub_keys/username_hostname*
>
>
>    - I need to merge *all the keys for one user* from all the hosts into 
>    one authorized key. 
>       - So all keys from *userx* in one file, and all keys from *usery* 
>       in one file and so on.
>       - To grab the keys from the files over all hosts, I tried with the 
>    following just to test, and it works fine. 
>    lookup('file', '/tmp/pub_keys/username_'+ansible_hostname+'.pub' )
>    Next Step, was to try the following,
>    - lookup('fileglob', '/tmp/pub_keys/username_'+'*'+'.pub').split(',')
>    which also worked fine. So I can merge the keys, using the 
>    *authorized_keys* module, for ONE user.
>       - This make my problem quite similar to this one: 
>       
> https://serverfault.com/questions/649721/how-can-i-have-a-nested-loop-with-a-fileglob-pattern
>       
>
>    - To get the list of all users, I need to use the *with_dict* module 
>    to get the usernames from the dictionary *keymap,* as named above.
>    - But it seems there is no way to make *with_dict* and *with_file* 
>    work together.
>    - I tried a number of permutations with *with_nested* and using *lookup 
>    with fileglob*, but to no avail. The entire list of all permutations 
>    tried is maybe too much to copy paste here.
>    - I tried setting variables using *set_facts* and *vars* to avoid 
>    using the *with_dict* in the same play, but I could not get the vars 
>    defined in one play to be visible in a different play (my bad, I am an 
>    ansible n00b).
>    - The only thing that I did not try is *with_subelements*. And 
>    anyways, I think it is not usable in my case, since I do not know 
>    beforehand 'the list of hosts for a given user', in the dictionary.
>
>
>
>    - To expand on, what* *not working** means, (before I get burnt at the 
>    stake for saying, those words ), I explain below:
>    - When I use a construct like the one listed here: 
>    https://docs.ansible.com/ansible/playbooks_loops.html#nested-loops, 
>    which in my case then becomes,
>    - 
>    
>    - name: give users access to multiple databases
>      authorized_key: user="{{item.0}}" key="{{lookup('file', item.1)}}"
>      with_nested:
>        - {{users}}
>        - key: "{{ lookup('fileglob', 
> '/tmp/public_keys/'+item.key+'_'+ansible_hostname+'.pub').splitlines() }}"
>    
>    - The key returned in the above case, does not grab the list of files, 
>    but instead starts returning, the literal string  *"{{ 
>    lookup('fileglob',* ... and so on till the end of the string.
>    - Replacing *fileglob* with *pipe* or *file*, did not get rid of the 
>    problem. It seems the problem stems from my (right or wrong) use of 
>    *with_nested*
>    
>
>
>    - Things  that I avoided using, but will most certainly work: are 
>    using *python* and/or the *shell* to do delegate this work from 
>    ansible to bash or python. I was trying to solve this problem natively 
>    using ansible and ansible alone.
>       - 
>       
> https://stackoverflow.com/questions/24250418/finding-file-name-in-files-section-of-current-ansible-role
>       
>
> *tl,dr*
>
>
> Is it possible to use, *with_dict *together with *with_file* to achieve a 
> nested-loop construct in *ansible 1.7.2*? It seems not.
> And especially so after reading the 2nd answer to this question: 
> https://stackoverflow.com/questions/31566568/double-loop-ansible 
>
>
>
> p.s. why ansible 1.7.2, it comes standard with Debian 8.5 (jessie)?
>
>
>

-- 
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/e5e303bf-8c4c-4d22-81a7-26c027189b1c%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to