我正在将一个rails3应用程序从heroku转移到引擎码。我想知道如何在每个部署的引擎码上启动(或重新启动)sidekiq?要检查sidekiq是否正常工作,我ssh到EY实例并手动启动sidekiq。我希望从EY部署脚本(config / deploy.yml)处理此过程。我习惯于mina部署和EC2。
答案 0 :(得分:6)
Engine Yard提供了两种自定义环境的方法。您可以使用custom chef recipes和deploy hooks。
对于SideKiq,您将要同时使用它们。您将使用自定义厨师配方来配置和运行SideKiq,并使用部署挂钩在每次部署新代码时重新启动SideKiq。
Engine Yard在http://github.com/engineyard/ey-cloud-recipes/tree/master/cookbooks/sidekiq为SideKiq提供预制的示例自定义厨师配方。示例配方的文档也准确显示了部署挂钩的用途。
要使用自定义配方,首先需要在本地安装引擎码宝石(gem install engineyard
)。然后,您将使用git clone git@github.com:engineyard/ey-cloud-recipes.git
制作示例存储库的副本。
克隆存储库后,需要将require_recipe 'sidekiq'
添加到./ey-cloud-recipes/cookbooks/main/recipes/default.rb,然后按照文档中的说明修改sidekiq配方
完成所有操作后,您可以运行ey recipes upload
,然后ey recipes apply
将配方应用到您的环境中。您可能需要指定一些命令行选项,具体取决于EY gem是否可以猜测您尝试将配方应用于哪个应用程序和环境。 ey命令的输出应该为您提供执行此操作所需的信息。
在应用了配方之后,您将需要创建它们在您的应用程序所在的git存储库中部署挂钩。在存储库的根目录中创建一个“deploy”目录,并将after_restart.rb部署挂钩添加为在sidekiq chef recipe的文档中描述。
重新部署,你应该好好去。
如果您遇到任何问题,请在Engine Yard的支持下订票,我们很乐意为您提供帮助。