Это не обязательно идеальный способ сделать это, но он должен работать (заметьте, я не проверял).
В ваших метаданных для поваренной книги сначала убедитесь, что у вас есть:
depends "python"
тогда ваш рецепт может выглядеть так:
pip_package "pygments"
execute "echo 'export RAILS_ENV=production' >> ~/.bash_profile" do
not_if "grep RAILS_ENV ~/.bash_profile"
end
user "git" do
system True
end
execute "ssh-keygen -N '' -f ~/.ssh/id_rsa"
user "git"
not_if "test -f /home/git/.ssh/id_rsa"
end
execute "gitosis-init < ~/.ssh/id_rsa.pub && chmod 755 ~/repositories/gitosis-admin.git/hooks/postupdate"
#not sure how do check if this has been run, maybe this is right:
not_if "test -f /home/git/repositories/gitosis-admin.git/hooks/post-update"
end
gem_package "passenger" do
action :install
end
#Instead of creating your own upstart service, why not use the stock nginx config.
include_recipe "nginx"
execute "passenger-install-nginx-module" do
#I'm not familiar with this, so I don't know how to check if it's already been run.
notifies :restart, "service[nginx]"
end
Большая часть этой информации должна быть довольно доступна из документации шеф-повара, кстати.