Удаление файла в конце запуска 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 свойство по умолчанию использует имя, если оно не указано, но оно может быть изменено независимо, чтобы избежать коллизий.

Другие вопросы по тегам