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] <javascript:>>
> 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] <javascript:>.
>> To post to this group, send email to [email protected]
>> <javascript:>.
>> 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] <javascript:>
> 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.
For more options, visit https://groups.google.com/d/optout.