As Kai Stian Olstad wrote, I got the target list wrong. The first ocurrence
of "loglist" should  be "logdict", OR (even better) do as Kai suggested and
substitute "logfile_config" for loglist and logdict.

Regards, K.


On Wed, Mar 13, 2019 at 10:08 PM Ashok <[email protected]> wrote:

> The content of the source is very dynamic on each run, hence, going static
> isn't viable.
>
> I tried with your logic, like below:
>
>     - name: Form list of dicts
>       set_fact:
>         logfile_config: "{{ logf_dest |default([]) +
>                      [ {
>                         'logfile_name': 'remote.conf',
>                         'logfile_pattern': item,
>                         'logfile_owner':   'root'
>                        }
>                      ] }}"
>       with_items: "{{ logf_dest }}"
>
>
>     - debug:
>         var: logfile_config
>
> It doesn't give the desired output. `logfile_config` is:
>
> TASK [debug]
> *********************************************************************************************************************************
> task path: /home/ansible/playbooks/loghost-new.yml:42
> ok: [log-dvl.vpn] => {
>     "logfile_config": [
>         "/logs/mx/mail.log",
>         "/logs/dyn.log",
>         "/logs/apache-servers/other.log",
>         {
>             "logfile_name": "remote.conf",
>             "logfile_owner": "root",
>             "logfile_pattern": "/logs/apache-servers/other.log"
>         }
>     ]
> }
>
> Anything I missed?
>
>
> On Wednesday, 13 March 2019 12:50:31 UTC+5:30, Karl Auer wrote:
>>
>> How dynamic is the content of that source list? One simple approach would
>> be:
>>
>> - logfile_name: remote.conf
>>   logfile_pattern: "{{ logf_dest[0] }}"
>>   logfile_owner: root
>> - logfile_name: remote.conf
>>   logfile_pattern: "{{ logf_dest[1] }}"
>>   logfile_owner: root
>> - logfile_name: remote.conf
>>   logfile_pattern: "{{ logf_dest[2] }}"
>>   logfile_owner: root
>>
>> If the list is not always three items long, you can do it with a loop:
>>
>> - set_fact:
>>      logdict: "{{ loglist |default([]) +
>>            [  {
>>                                 'logfile_name':    'remote.conf',
>>                   'logfile_pattern': item,
>>                  'logfile_owner':   'root'
>>                             }
>>            ] }}"
>>   with_items: "{{ logf_dest }}"
>>
>> Anyway, something like that. That's off the top of my head, so you may
>> need to correct the syntax a bit, but you get the idea.
>>
>> Regards, k.
>>
>>
>> On Wed, Mar 13, 2019 at 5:55 PM Ashok <[email protected]> wrote:
>>
>>> Hi All,
>>>
>>> I have a list  ` logf_dest ` (of log files):
>>>
>>> "logf_dest": [
>>>         "/logs/mx/mail.log",
>>>         "/logs/dyn.log",
>>>         "/logs/apache-servers/other.log"
>>>     ]
>>>
>>> I need to form a "list of dicts" called ` logfile_config `, like the
>>> below:
>>>
>>> - logfile_name: remote.conf
>>>   logfile_pattern: /logs/mx/mail.log
>>>   logfile_owner: root
>>>
>>>
>>> - logfile_name: remote.conf
>>>   logfile_pattern: /logs/dyn.log
>>>   logfile_owner: root
>>>
>>>
>>> - logfile_name: remote.conf
>>>   logfile_pattern: /logs/apache-servers/other.log
>>>   logfile_owner: root
>>>
>>>
>>> I've come this far in doing so:
>>>
>>>     - name: Create list of dicts
>>>       set_fact:
>>>         logfile_config: |
>>>            {
>>>            {% for k in logf_dest %}
>>>            logfile_name: remote.conf
>>>            logfile_pattern: {{ k }}
>>>            logfile_owner: root
>>>            {% endfor %}
>>>            }
>>>
>>> But, above is obviously not formatted correctly.
>>>
>>> I need help on what I am missing here.
>>>
>>> Thanks in advance.
>>>
>>> --
>>> 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/61b38102-c346-495f-96e5-cd149800d4f9%40googlegroups.com
>>> <https://groups.google.com/d/msgid/ansible-project/61b38102-c346-495f-96e5-cd149800d4f9%40googlegroups.com?utm_medium=email&utm_source=footer>
>>> .
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>
>> --
>> Karl Auer
>>
>> Email  : [email protected]
>> Website: http://2pisoftware.com
>>
>> GPG/PGP : 958A 2647 6C44 D376 3D63 86A5 FFB2 20BC 0257 5816
>> Previous: F0AB 6C70 A49D 1927 6E05 81E7 AD95 268F 2AB6 40EA
>>
> --
> 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/20098621-047b-4596-b46c-8c14b37df008%40googlegroups.com
> <https://groups.google.com/d/msgid/ansible-project/20098621-047b-4596-b46c-8c14b37df008%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>


-- 
Karl Auer

Email  : [email protected]
Website: http://2pisoftware.com

GPG/PGP : 958A 2647 6C44 D376 3D63 86A5 FFB2 20BC 0257 5816
Previous: F0AB 6C70 A49D 1927 6E05 81E7 AD95 268F 2AB6 40EA

-- 
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%2B%2BT08SQ%3DJaCumQMx3V_sJUW4THF4-8E0T6FF2%2BuHv1OJg4TEQ%40mail.gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to