Удаление файла в конце запуска Chef
Я хочу удалить файл в конце запуска Chef.
Я использую следующее file resource
чтобы достичь этого
file "#{home_dir['data']}/file1.txt" do
action :delete
retries 3
retry_delay 50
only_if { ::File.exist? "#{home_dir['data']}/file1.txt" }
end
Пожалуйста, дайте мне знать, если есть лучший способ добиться этого.
1 ответ
Это правильно, но вам не нужно only_if
, ресурс файла уже внутренне идемпотентен. Вы также, вероятно, не нуждаетесь в retries
если вы на самом деле не ожидаете unlink()
потерпеть неудачу (например, если это странная сетевая файловая система), но это ничего не повредит.
РЕДАКТИРОВАТЬ: Как избежать клонирования ресурсов, если у вас есть один и тот же тип ресурса + имя в ваших рецептах дважды.
file "delete #{home_dir['data']}/file1.txt (or some other unique name)" do
path "#{home_dir['data']}/file1.txt"
action :delete
end
path
свойство по умолчанию использует имя, если оно не указано, но оно может быть изменено независимо, чтобы избежать коллизий.