Hi Martin, Thank you for your effort. And your patience.
Regards, Willem. On Thursday, June 25, 2020 at 3:53:56 PM UTC+2 [email protected] wrote: > - hosts: localhost > gather_facts: yes > vars: > top_level: > Fedora: > key: value > tasks: > - debug: > msg: "{{ top_level[ansible_distribution]['key'] }}" > > On Thu, Jun 25, 2020 at 3:22 PM Willem Bos <[email protected]> wrote: > > > > Hi Martin, > > > > Thanks for your quick response, really appreciate it. I hope you don't > mind an additional question: the vars section actually is one level deeper: > > > > vars: > > sshd: > > CentOS: > > ciphers: "a,b" > > hostkeys: > > - "ssh_host_key" > > - "ssh_rsa_host_key" > > > > How do I add this to: > > {% for hostkey in lookup('vars', ansible_distribution)['hostkeys'] %} > > {{ hostkey }} > > {% endfor %} > > > > I tried ['sshd']lookup('vars', ansible_distribution)['hostkeys'] and a > few variants, but they all fail. > > > > Sorry for being such a noob, but accessing vars/lists/dicts/etc. always > gives me major headaches :-) > > > > Regards, > > Willem. > > > > > > > > > > > > On Thursday, June 25, 2020 at 2:19:03 PM UTC+2, Martin Krizek wrote: > >> > >> Sorry, I misread your example and missed that the variable you want to > >> look up is a dictionary and that you want to access a key within that > >> dictionary. In that case you need to look up just the var and access > >> the key on the result of the lookup: > >> > >> - hosts: localhost > >> gather_facts: yes > >> vars: > >> Fedora: > >> key: value > >> tasks: > >> - debug: > >> msg: "{{ lookup('vars', ansible_distribution)['key'] }}" > >> > >> On Thu, Jun 25, 2020 at 1:47 PM Willem Bos <[email protected]> wrote: > >> > > >> > Hi Martin, > >> > > >> > Thanks, but I'm not sure varnames is useful to me. > >> > > >> > I know what the variable is called, but don't know how to construct > it programmatically (as the Ansible manual calls it). Taking the example > code from the documentation results in an empty list: > >> > > >> > ... > >> > - debug: > >> > msg: "{{ lookup('varnames', ansible_distribution + '.hostkeys') }}" > >> > ... > >> > TASK [debug] ******* > >> > ok: [localhost] => { > >> > "msg": [] > >> > } > >> > ... > >> > > >> > Regards, > >> > Willem. > >> > > >> > > >> > On Wednesday, June 24, 2020 at 2:39:52 PM UTC+2, Martin Krizek wrote: > >> >> > >> >> You can use the varnames lookup to get variable names that match > given > >> >> pattern: > https://docs.ansible.com/ansible/latest/plugins/lookup/varnames.html > >> >> > >> >> On Wed, Jun 24, 2020 at 12:33 PM Willem Bos <[email protected]> > wrote: > >> >> > > >> >> > Hi, > >> >> > > >> >> > The playbook below should generate a file with the content: > >> >> > a,b > >> >> > ssh_host_key > >> >> > ssh_rsa_host_key > >> >> > > >> >> > However, the way I construct the variable names results in either > syntax/templating errors or 'variable name does not exists'. > >> >> > > >> >> > --- > >> >> > - hosts: localhost > >> >> > connection: local > >> >> > > >> >> > vars: > >> >> > CentOS: > >> >> > ciphers: "a,b" > >> >> > hostkeys: > >> >> > - "ssh_host_key" > >> >> > - "ssh_rsa_host_key" > >> >> > tasks: > >> >> > - copy: > >> >> > dest: "{{ playbook_dir }}/test.out" > >> >> > content: | > >> >> > > >> >> > # This works: > >> >> > {{ CentOS.ciphers }} > >> >> > > >> >> > # This results in 'No variable found with this name': > >> >> > {# Ciphers {{ lookup('vars', ansible_distribution + '.ciphers') }} > >> >> > > >> >> > # Templating errors: > >> >> > {% for hostkey in {{ lookup('vars', ansible_distribution + > '.hostkeys') }} %} > >> >> > {{ hostkey }} > >> >> > {% endfor %} > >> >> > > >> >> > # Templating errors: > >> >> > {% for hostkey in {{ > hostvars[inventory_hostname][ansible_distribution + '.hostkeys'] }} %} > >> >> > {{ hostkey }} > >> >> > {% endfor %} > >> >> > > >> >> > > >> >> > What is the proper way to 'assemble' the variable names? Or is > there a better way of doing this? > >> >> > > >> >> > Regards, > >> >> > Willem. > >> >> > > >> >> > -- > >> >> > 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 view this discussion on the web visit > https://groups.google.com/d/msgid/ansible-project/76b24a20-1c5b-46ea-a197-f1c390fcd0f7o%40googlegroups.com > . > >> >> > >> > -- > >> > 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 view this discussion on the web visit > https://groups.google.com/d/msgid/ansible-project/97e0166f-d015-4097-a870-1a207b14c7a5o%40googlegroups.com > . > >> > > -- > > 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 view this discussion on the web visit > https://groups.google.com/d/msgid/ansible-project/d1137be1-6bea-4320-83db-bf53145616bfo%40googlegroups.com > . > > -- 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 view this discussion on the web visit https://groups.google.com/d/msgid/ansible-project/a57b5aa1-4346-437c-a9f0-c18e02ffe942n%40googlegroups.com.
