For one use case where template was not optimal and to replace N lines in
one file (grub.conf),
it was convenient to have  something like (IIRC):

task1:   grep <regexp pattern> | wc -l
register:  the_count

task2:  lineifile regex=<pattern> line='string' ...
with_sequence: the count

ok not the exact syntax , just to give the idea.

do not have the real example at hands, can forward later

will need adaptation to cope with multiple files and hence multiple
different count for each different file
and a caveat with with_sequence if the_count is 0


HTH


2013/12/11 <[email protected]>

> Hello Ansible users,
>
> I'm trying to replace *multiple lines* in *multiple files* using the
> lineinfile and register, and this is what I got so far.
>
> - name: list of the .conf files
>   raw: ls /etc/httpd/conf.d/*.conf
>   register: certs_dir
>   tags: update-cert
>
> - name: update certs with the new name in *conf
>   lineinfile: dest={{item}} backup=yes state=present regexp="^
>  SSLCertificateFile" insertafter="^  SSLCertificateFile" line="
>  SSLCertificateFile      /etc/pki/tls/certs/new_cert.cer"
>   with_items: certs_dir.stdout_lines
>   tags: update-cert
>
>
> the problem with this is It will only replace* one line* in *multiple
> files*, is there any better way of doing this other than making another
> copy of the second task to replace line?
>
> please advise,
>
> thank you
>
> --
> 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].
> 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].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to