在OpsWorks主厨配方中安装依赖项

时间:2015-01-29 00:57:52

标签: chef bower aws-opsworks

我在OpsWorks上有一个简单的静态站点层,它在bower.json文件中列出了依赖项。但是,当我在部署配方中运行bower install --allow-root时,我得到ENOENT No bower.json present。如何在Chef脚本中找到正确的项目路径,以便安装bower模块?

1 个答案:

答案 0 :(得分:1)

OpsWorks为您的食谱提供包含app目录的部署JSON。查看the AWS documentation以获取有关此有效负载的更多信息。

假设您的bower.json位于项目的根目录中,您可以在Chef配方中添加此命令:

node[:deploy].each do |app, deploy|
   execute "bower_install" do
        command "bower install --allow-root"
        cwd "#{deploy[:deploy_to]}/current"
   end
end

此配方将为您图层中的所有应用执行此任务。您可以通过查看app变量值来为特定应用执行此操作。

#{deploy[:deploy_to]}是您的应用目录,current是您最新版本的符号链接。但是,我宁愿在deploy hook script而不是部署配方中执行此类操作,因为OpsWorks在运行部署配方之前使您的应用可用。但这是另一个故事。

希望这有帮助。