Mark G.,
The to_json (or to_nice_json) filter and a template will do the magic you
want. Given this playbook:
- hosts: localhost
connection: local
vars:
log_paths:
- "/logs/access.log"
- "/logs/error.log"
tasks:
- name: create config file
template: src=logstash.json.j2 dest=/tmp/logstash.json
and this template:
{
"network": {
"servers": [ "1.2.3.4:5000" ],
"timeout": 15,
"ssl ca": "/etc/pki/tls/certs/logstash-forwarder.crt"
},
"files": [
{
"paths": {{ log_paths | to_json }},
"fields": { "type": "web_nginx_access" }
}
]
}
Will render:
{
"network": {
"servers": [ "1.2.3.4:5000" ],
"timeout": 15,
"ssl ca": "/etc/pki/tls/certs/logstash-forwarder.crt"
},
"files": [
{
"paths": ["/logs/access.log", "/logs/error.log"],
"fields": { "type": "web_nginx_access" }
}
]
}
- James
On Sunday, October 5, 2014 5:17:56 PM UTC-4, Mark Gavalda wrote:
>
> Hi,
>
> I'm trying to add lines to the Logstash Forwarder config file, which looks
> like this right now:
>
> {
> "network": {
> "servers": [ "1.2.3.4:5000" ],
> "timeout": 15,
> "ssl ca": "/etc/pki/tls/certs/logstash-forwarder.crt"
> },
> "files": [
> {
> "paths": [
> "/logs/access.log"
> ],
> "fields": { "type": "web_nginx_access" }
> }
> ]
> }
>
> And I'd like to add other logs in that files.paths array, then save it.
> The problem is that starting from the second line I will have to add the
> commas to not screw up the JSON syntax... how can I do that with Ansible.
> I've tried so many solutions, just can't figure this one out.
>
> I was thinking about using a "command cat logstash-forwarder.conf" plus
> "register: result" then somehow manipulating the object with {{
> result.stdout|from_json }} but that's as far as I got. I'd really
> appreciate any comments.
>
> Thanks,
> Mark
>
--
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/be13ff5c-d047-4457-9d8e-4e48175c5fff%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.