2016-10-13 13 views
1

Есть ли чистый способ управлять многожильными ресурсами посредством модификаций поваренной книги? Например, скажем, у меня есть ресурс рецепт, который записывает файл из шаблона следующим образом:Как люди управляют оставшимися или переплетенными ресурсами в Шеф-поваре?

template 'C:\dir\somefile.txt' do 
    source 'somefile.erb' 
end 

А потом я обновляю поваренную книгу, чтобы написать этот файл в другом месте, например, так:

template 'C:\some_different_dir\new_file_location.txt' do 
    source 'sample.erb' 
end 

Файл с оригинального рецепта не очищается автоматически? Таким образом, в этот момент C:\dir\somefile.txt просто не используется.

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

Также мы не можем легко переместиться в направлении, где мы создаем новые новые серверы, когда наше приложение обновляется с использованием чего-то вроде Vagrant или Terraform. После того, как наши серверы развернуты, они находятся там в течение длительного времени. Некоторые из них не являются даже виртуальными машинами.

Спасибо за любую помощь.

ответ

2

Вы должны добавить новый ресурс, чтобы очистить старый файл:

file 'C:\\dir\\somefile.txt' do 
    action :delete 
end 

После того, как вы уверены, что каждый сервер очистил файл можно удалить, что из рецепта, или просто оставить его. Вы также можете ознакомиться с кулинарной книгой zap, которая пытается выполнять автоматическую очистку, но это действительно сложно сделать стабильным образом, поэтому она поставляется с некоторыми «gotchas», в основном связанными с вложенными контекстами выполнения и настраиваемыми ресурсами.

 Смежные вопросы

  • Нет связанных вопросов^_^