Hi Ruby hackers,
I have very limited knowledge of the Ruby programming language,
however, I need to implement on Chef (check-solo) something similar to “augeas” (which works with Puppet, but here I need a solution for Chef).
I got the example code below but it's not working and I am now for a
few days trying to figure out what is wrong.
Basically I need to be able to select specific strings in a text
file and modify these values. I could use sed but perhaps I can do it in a more elegant way using the ruby_block from Chef.
Please let me know what can be possibly wrong with the code below.
Why is my /etc/hosts not being updated with new values?
Always when I re-run chef-solo, I get the following error:
**NoMethodError** **-------------** **undefined method `chef' for Chef::Resource::RubyBlock**
Thanks for your help.
Follows my **default.rb** file:
Code:
ruby_block "edit etc hosts" do
block do
rc = Chef::Util::FileEdit.new("/etc/hosts")
rc.search_file_replace_line(
/^127\.0\.0\.1 localhost$/,
"127.0.0.1 #{new_fqdn} #{new_hostname} localhost"
)
rc.write_file
end
end