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.
