Рецепт не выполняется в Chef

Я делаю простой рецепт, который apt-get обновляет всю систему.

include_recipe "apt"

execute "apt-get upgrade -y" do
        command "apt-get upgrade -y"
        action :nothing
end

но он никогда не запускается:

chef-solo -j node.json -W

Recipe: up2date::default
  * execute[apt-get upgrade -y] action nothing[2012-11-12T13:05:04+01:00] 
    INFO: Processing execute[apt-get upgrade -y] 
    action nothing (up2date::default line 12)  (up to date)

Не могу понять почему?

Есть ли лучший/более чистый способ?


person Disco    schedule 12.11.2012    source источник


Ответы (1)


Если вы включаете «подходящий» рецепт, вам не нужно создавать ресурс execute[apt-get upgrade -y]. Или, если вы не хотите включать «подходящий» рецепт, используйте

execute "apt-get upgrade -y" do
    command "apt-get upgrade -y"
    action :run
end

Но поскольку run — это действие по умолчанию, а name — команда по умолчанию, это можно сократить до

execute "apt-get upgrade -y"
person Draco Ater    schedule 12.11.2012
comment
спасибо; просто выполнить apt-get upgrade -y без блока «сделать»? - person Disco; 12.11.2012
comment
Вы говорите, что рецепт apt автоматически запустит обновление apt-get? Потому что мне это не кажется. - person Jason Axelson; 12.12.2012
comment
Да, это будет. В вашем случае может что-то из вашей поваренной книги перезаписывать ресурс. Я не знаю. - person Draco Ater; 12.12.2012