Я пытаюсь добавить обратный вызов before_symlink
к пользовательскому рецепту повара deploy
для использования на AWS OpsWorks. Я использую настройку Chef 11, поэтому собственные рецепты Amazon позаботятся о 95% того, что происходит.OpsWorks (Chef) before_symlink callback не работает
Я получаю Recipe Compile Error
:
NoMethodError
-------------
No resource or method named `before_symlink' for `Chef::Recipe "deploy"'
Я все еще учусь повар, так что я не ясно, что причиной этого. Я назвал include_recipe 'deploy'
в начале пользовательского рецепта, и Amazon’s own custom deploy recipe, похоже, работает аналогичным образом.
Вот мой рецепт:
include_recipe 'deploy'
node[:deploy].each do |application, deploy|
if (deploy[:application_type] != 'rails') || (application != 'backscratchers')
Chef::Log.debug("Skipping deploy::rails application #{application} as it is not a Rails app")
next
end
before_symlink do
directory "#{release_path}/tmp" do
mode 0770
end
end
end
Мне удалось получить эту работу, обернув блок 'before_symlink' в блок' deploy', но этот _also_ разворачивает приложение во второй раз! Таким образом, я все еще не уверен, как добавить обратный вызов к рецепту развертывания AWS ... – Leo
Похоже, возможно, единственные способы сделать это: 1) полностью переписать рецепт 'deploy', добавив новые биты или 2) добавить 'config/deploy/before_symlink.rb' в самом приложении. – Leo