我想删除行配置(此单词“配置”位于文件“hdfs-site.xml”中的尖括号内)。我尝试使用此代码,但没有运气。
ruby_block "delete_lines_in_hdfs_site" do
block do
file = Chef::Util::FileEdit.new("/opt/hadoop-2.4.1/etc/hadoop/hdfs-site.xml")
file.search_file_delete_line(/<configuration>/)
end
end
答案 0 :(得分:1)
您不会使用chef添加或删除文件中的行。而是将您的配置文件替换为您的配置文件,并将其放入files/
或templates/
forlder下的食谱中。
template "/opt/hadoop-2.4.1/etc/hadoop/hdfs-site.xml"
或
cookbook_file "/opt/hadoop-2.4.1/etc/hadoop/hdfs-site.xml"
当您在配置文件中添加/替换行时,您无法确定,在升级已安装的软件后,您的配置文件是正确的。
答案 1 :(得分:1)
你需要用
结束红宝石块file.write_file
否则不会写出更改。
虽然我同意首选使用模板并将其视为最佳做法,但有时您需要编辑可能存在变体且不符合模板模型的现有文件。