2016-12-22 2 views
-1

как заменить:повар ресурс ruby_block замена Алину в файле

export JAVA_HOME=${JAVA_HOME} 

с:

export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::") in 
hadoop-env.sh using 
RUBY_BLOCK resource in CHEF 
+0

ruby_block "edit hadoop-env sh" do block do file = Chef :: Util :: FileEdit.new ("/ usr/local/hadoop/etc/hadoop/hadoop-env.sh") file.search_file_replace_line (экспорт JAVA_HOME = \ $ \ {JAVA_HOME}, экспортировать JAVA_HOME = \ $ \ (readlink -f/usr/bin/java | sed "s: bin/java ::")) file.write_file конец end – user7330420

+0

Что вы пытаетесь делать это с комментарием? Редактирование файла страшно обескураживается с шеф-поваром, это путь к стрельбе в ногу в среднесрочной перспективе. Используйте шаблон для управления всем файлом. – Tensibai

+0

может рассказать мне, как мы это делаем – user7330420

ответ

0

замены должны быть простыми замены. Для чего-то такого комплекса вы должны захватить весь файл, как он есть на данный момент, и использовать его как шаблон ERB с вашими изменениями внутри него, даже если это означает, что он не помещает какие-либо переменные внутри него, подобно тому, как Tensibai сказал в комментарии