Назад | Перейти на главную страницу

как правильно заставить повара выполнить рецепт?

У меня есть сценарий повара, который выполняет

directory '/home/ubuntu/s3' do
  action :create  
end

execute 'copy from s3' do
  command "aws s3 cp s3://my-assets /home/ubuntu/s3/ --recursive"    
end

...

После копирования нового файла в ведро s3 я заметил, что его не оказалось на моем сервере после выполнения этого рецепта шеф-повара ... Итак, я подключился к серверу по ssh и rm -rf выбрал каталог s3 .. Повторно запустил мой chef, и позже он потерпел неудачу при попытке доступа к чему-либо в каталоге s3 с сообщением «нет файла или каталога».

Я ssh'd вернулся и обнаружил, что шеф-повар никогда не воссоздавал каталог после того, как я его удалил ... Итак ... Как мне сказать шеф-повару переделать то, что, по его мнению, уже сделано, и не нужно делать ?

Ресурсы внутри рецепта не обязательно в порядке.

Пытаться:

directory '/home/ubuntu/s3' do
  action :create  
end

execute 'copy from s3' do
  command "aws s3 cp s3://my-assets /home/ubuntu/s3/ --recursive" 
  only_if { ::Dir.exist?(/home/ubuntu/s3) }
end

или:

directory '/home/ubuntu/s3' do                                                                                                                                                  
  action :create..                                                                                                                                                              
end                                                                                                                                                                             

execute 'copy from s3' do                                                                                                                                                       
  command "aws s3 cp s3://my-assets /home/ubuntu/s3/ --recursive".                                                                                                              
  subscribes :create, "directory[/home/ubuntu/s3]"                                                                                                                              
end