Thanks Michael and John for your answers !
I'll use template module instead (you convince me !).
Thanks a lot,
Guillaume
Le lundi 6 janvier 2014 02:59:12 UTC+1, John a écrit :
>
> Since templating json can get messy another way to go about this is to
> take your json configuration, express it as yaml in a var in ansible
> and then do this in your template:
>
> {{ app_settings | to_nice_json }}
>
> On Sun, Jan 5, 2014 at 1:56 PM, Michael DeHaan
> <[email protected]<javascript:>>
> wrote:
> > That's quite unsafe, JSON is not line oriented.
> >
> > It would probably be better to just template out the file to be like you
> > want it to be.
> >
> >
> > On Sun, Jan 5, 2014 at 8:12 AM, Guillaume DEDRIE
> > <[email protected] <javascript:>> wrote:
> >>
> >> Hi,
> >> I'm looking for some help.
> >>
> >> I'm trying to edit with "lineinfile" module a JSON config file:
> >>
> >> - name: Task
> >> lineinfile:
> >> dest=/etc/pkg/settings.json
> >> state=present
> >> regexp='{{ item.key }}'
> >> line='"{{ item.key }}": {{ item.value }}'
> >> with_items:
> >> - { key: 'setting1', value: 'true' }
> >> - { key: 'setting2', value: '"value2"' }
> >>
> >>
> >> But, ansible return an error:
> >>
> >> Note: The error may actually appear before this position: line x,
> column y
> >>
> >> regexp='{{ item.key }}'
> >> line='"{{ item.key }}": {{ item.value }},'
> >> ^
> >> This one looks easy to fix. YAML thought it was looking for the start
> of
> >> a
> >> hash/dictionary and was confused to see a second "{". Most likely this
> >> was
> >> meant to be an ansible template evaluation instead, so we have to give
> the
> >> parser a small hint that we wanted a string instead. The solution here
> is
> >> to
> >> just quote the entire value.
> >>
> >> For instance, if the original line was:
> >>
> >> app_path: {{ base_path }}/foo
> >>
> >> It should be written as:
> >>
> >> app_path: "{{ base_path }}/foo"
> >>
> >> Ansible failed to complete successfully. Any error output should be
> >> visible above. Please fix these errors and try again.
> >>
> >>
> >> I get an hotfix, using this template of key/value format:
> >>
> >> - {key: '"setting1":', value: true}
> >> - {key: '"setting2":', value: '"value2"'}
> >>
> >>
> >> Is there another way to do this?
> >>
> >> Regards,
> >> Guillaume
> >>
> >> --
> >> 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:>.
>
> >> For more options, visit https://groups.google.com/groups/opt_out.
> >
> >
> >
> >
> > --
> > Michael DeHaan <[email protected] <javascript:>>
> > CTO, AnsibleWorks, Inc.
> > http://www.ansibleworks.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] <javascript:>.
> > To post to this group, send email to
> > [email protected]<javascript:>.
>
> > For more options, visit https://groups.google.com/groups/opt_out.
>
--
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].
For more options, visit https://groups.google.com/groups/opt_out.