I am trying to change a field (here is “net.ipv4.ip_nonlocal_bind=1”) of
the file /etc/sysctl.conf, currently I am using template to change the
field, however someone complained that it was not good to template the
system file '‘sysctl.conf’, because it may also used by other cookbooks. I
agreed with that guy, it is definitely better to only change a specific
field instead of the whole file with respect to a system file.
I am wondering what is the best way to change a specific field of a config
file in Chef.
It will be much appreciated if someone can give me some hints and share
some opinions.
Check out Chef::Util::FileEdit to match and replace lines in a single file
without replacing the entire file with a template. The chef-server cookbook
has a good example of this here:
I am trying to change a field (here is "net.ipv4.ip_nonlocal_bind=1") of
the file /etc/sysctl.conf, currently I am using template to change the
field, however someone complained that it was not good to template the
system file ''sysctl.conf', because it may also used by other cookbooks. I
agreed with that guy, it is definitely better to only change a specific
field instead of the whole file with respect to a system file.
I am wondering what is the best way to change a specific field of a config
file in Chef.
It will be much appreciated if someone can give me some hints and share
some opinions.
I am trying to change a field (here is "net.ipv4.ip_nonlocal_bind=1") of
the file /etc/sysctl.conf, currently I am using template to change the
field, however someone complained that it was not good to template the
system file ''sysctl.conf', because it may also used by other cookbooks. I
agreed with that guy, it is definitely better to only change a specific
field instead of the whole file with respect to a system file.
I am wondering what is the best way to change a specific field of a config
file in Chef.
It will be much appreciated if someone can give me some hints and share
some opinions.
Mike's solution is the least obtrusive, but if other cookbook authors are
good citizens, they'll be using the sysctl cookbook to edit that file as
well.
I am trying to change a field (here is "net.ipv4.ip_nonlocal_bind=1") of
the file /etc/sysctl.conf, currently I am using template to change the
field, however someone complained that it was not good to template the
system file ''sysctl.conf', because it may also used by other cookbooks. I
agreed with that guy, it is definitely better to only change a specific
field instead of the whole file with respect to a system file.
I am wondering what is the best way to change a specific field of a
config file in Chef.
It will be much appreciated if someone can give me some hints and share
some opinions.
Mike's solution is the least obtrusive, but if other cookbook authors are
good citizens, they'll be using the sysctl cookbook to edit that file as
well.
I am trying to change a field (here is "net.ipv4.ip_nonlocal_bind=1") of
the file /etc/sysctl.conf, currently I am using template to change the
field, however someone complained that it was not good to template the
system file ''sysctl.conf', because it may also used by other cookbooks. I
agreed with that guy, it is definitely better to only change a specific
field instead of the whole file with respect to a system file.
I am wondering what is the best way to change a specific field of a
config file in Chef.
It will be much appreciated if someone can give me some hints and share
some opinions.