How to idempotently change file attributes (e.g. immutable) with Ansible
I recently needed to force the /etc/resolv.conf
file to be immutable on a set of CentOS servers, since the upstream provider's DHCP server was giving me a poorly-running set of default DNS servers, which was getting written to the resolv.conf
file on every reboot.
There are a few different ways to force your own DNS servers (and override DHCP), but one of the simplest, at least for my use case, is to change the file attributes on /etc/resolv.conf
to make the file immutable (unable to be overwritten, e.g. by the network service's DHCP on reboot).
Typically you would do this on the command line with:
chattr +i /etc/resolv.conf
And Ansible's file module has an attributes
(alias: attr
) parameter which allows the setting of attributes. For example, to set the attributes to i
, you would use a task like: