2016-03-07 2 views
0

Я пытаюсь добавить обратный вызов 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 
+0

Мне удалось получить эту работу, обернув блок 'before_symlink' в блок' deploy', но этот _also_ разворачивает приложение во второй раз! Таким образом, я все еще не уверен, как добавить обратный вызов к рецепту развертывания AWS ... – Leo

+0

Похоже, возможно, единственные способы сделать это: 1) полностью переписать рецепт 'deploy', добавив новые биты или 2) добавить 'config/deploy/before_symlink.rb' в самом приложении. – Leo

ответ

1

before_symlink блок имеет на самом деле пойти в deploy или deploy_revision рецепт. Он не связан с кулинарной книгой/рецептом Amazon's deploy.

Это, я не рекомендую использовать ресурс deploy, так как он слишком усложняется для большинства потребностей. Посмотрите https://github.com/poise/application_examples/ на примерах развертывания приложений в стиле шеф-повара.

+0

Спасибо за это, я проделал еще несколько чтений, и я рассмотрю использование предложения OpsWorks «Chef 12», с поваренными книжками сторонних производителей, такими как те, которые вы указали. – Leo

Смежные вопросы