Файл шеф-повара Ruby search_file_replace_line в регулярном выражении php.ini

Я пытаюсь найти наличие следующей строки в файле;

default_mimetype = «text / html»

и затем, если найдены как незакомментированные как выше, то закомментируйте это так;

; default_mimetype = «text / html»

В настоящее время у меня есть следующий рецепт шеф-повара;

ruby_block "php_ini" do
block do
file = Chef::Util::FileEdit.new("/etc/php.ini")
file.search_file_replace_line(/default_mimetype = "text/html"/, ';default_mimetype = "text/html"')
file.write_file
end
end

service "apache2" do
action :restart
end

но строка file_search_replace_line вызывает синтаксическую ошибку (вероятно, из-за & ; ) Как мне написать эту строку, чтобы она делала то, что я хочу?

0

Решение

Управлять таким файлом не рекомендуется, так как он допускает все виды неконвергентного поведения и, как правило, очень трудно рассуждать. Лучший подход заключается в использовании template ресурс, позволяющий полностью контролировать содержимое файла, а это означает, что вы всегда знаете, что в нем будет, а не зависите от того, что было там до запуска Chef (обычно это файл, предоставленный дистрибутивом).

Что касается специфики, то проблема заключается в / в text/htmlсделай это text\/html,

2

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]