[colug-432] Automatically Edit Configuration File

judd judd at jpilot.org
Tue Nov 24 11:04:07 EST 2015


Augeas was written for editing config files.

http://augeas.net/
https://github.com/paluh/ansible-augeas

Judd

On 2015-11-18 23:10, Greg Sidelinger wrote:
> Try the replace module.
> 
> http://docs.ansible.com/ansible/replace_module.html [2]
> 
> On Wed, Nov 18, 2015 at 10:26 PM <jep200404 at columbus.rr.com> wrote:
> 
>> How would you automate the editing of a configuration file as
>> described below?
>> 
>> I am automating the configuration of a system with Ansible.
>> For /etc/httpd/conf/httpd.conf, I need to make sure that the
>> <Directory /> section has a "Require all granted" line instead
>> of a "Require all denied" line. "Require all" lines in other
>> sections need to be left alone.
>> 
>> original /etc/httpd/conf/httpd.conf
>> 
>> ...
>> <Directory />
>> AllowOverride none
>> Require all denied
>> </Directory>
>> ...
>> <Files ".ht*">
>> Require all denied
>> </Files>
>> ...
>> 
>> desired /etc/httpd/conf/httpd.conf
>> 
>> ...
>> <Directory />
>> AllowOverride none
>> Require all granted
>> </Directory>
>> ...
>> <Files ".ht*">
>> Require all denied
>> </Files>
>> ...
>> 
>> I can write an awk script or probably even a sed script to do it,
>> but it is desirable to edit with a Ansible module instead of an
>> external shell command, because of the way Ansible modules
>> understand when something has really changed or not.
>> 
>> I don't see how to use the lineinfile module in this situation,
>> because it will only change the last line to match a regex.
>> Matching "Require all" would change the line in the <Files ".ht*">,
>> section instead of in the <Directory /> section.
>> 
>> It would be easy to just replace the whole file with a new one from
>> Ansible, but that is also not preferred because when some new
>> version of httpd.conf arrives, the wholesale replacement would
>> clobber other changes in the configuration file.
>> _______________________________________________
>> colug-432 mailing list
>> colug-432 at colug.net
>> http://lists.colug.net/mailman/listinfo/colug-432 [1]
>  !DSPAM:4,564d4c30102109381614248!
> 
> Links:
> ------
> [1] http://lists.colug.net/mailman/listinfo/colug-432
> [2] http://docs.ansible.com/ansible/replace_module.html
> 
> _______________________________________________
> colug-432 mailing list
> colug-432 at colug.net
> http://lists.colug.net/mailman/listinfo/colug-432
> 
> 
> !DSPAM:4,564d4c30102109381614248!


More information about the colug-432 mailing list