Amazon web services 如何在AWS OpsWorks上运行自定义配方?

Amazon web services 如何在AWS OpsWorks上运行自定义配方?,amazon-web-services,chef-infra,chef-recipe,aws-opsworks,Amazon Web Services,Chef Infra,Chef Recipe,Aws Opsworks,我已经为我的简单自定义配方创建了GitHub repo: laravel/ |- recipes/ | - deploy.rb |- templates/ |- default | - database.php.erb 我已经将repo添加到定制厨师食谱中 我在部署“周期”中添加了laravel::deploy 这是我的deploy.rb: node[:deploy].each do |app_name, deploy| if deploy[:

我已经为我的简单自定义配方创建了GitHub repo:

laravel/
  |- recipes/
     |  - deploy.rb
  |- templates/
     |- default
        |  - database.php.erb
我已经将repo添加到定制厨师食谱中

我在部署“周期”中添加了
laravel::deploy

这是我的deploy.rb:

node[:deploy].each do |app_name, deploy|
 if deploy[:application] == "platform"
 script "set_permissions" do
  interpreter "bash"
  user "root"
  cwd "#{deploy[:deploy_to]}/current/app"
  code <<-EOH
  chmod -R 777 storage
  EOH
end


template "#{deploy[:deploy_to]}/current/app/config/database.php" do
  source "database.php.erb"
  mode 0660
  group deploy[:group]

  if platform?("ubuntu")
    owner "www-data"
  elsif platform?("amazon")   
    owner "apache"
  end

  variables(
    :host =>     (deploy[:database][:host] rescue nil),
    :user =>     (deploy[:database][:username] rescue nil),
    :password => (deploy[:database][:password] rescue nil),
    :db =>       (deploy[:database][:database] rescue nil)
  )

 only_if do
   File.directory?("#{deploy[:deploy_to]}/current")
 end
end

end
end
node[:deploy]。每个do | app_名称,deploy|
如果部署[:应用程序]=“平台”
脚本“设置权限”是否执行
解释器“bash”
用户“根”
cwd“#{deploy[:deploy_to]}/current/app”
代码(部署[:数据库][:用户名]rescue nil),
:password=>(部署[:数据库][:password]rescue nil),
:db=>(部署[:数据库][:数据库]救援无)
)
只有你愿意
目录?(“{deploy[:deploy_to]}/current”)
结束
结束
结束
结束
当我使用ubuntu用户通过SSH登录实例时,app/storage folder权限没有更改&
app/config/database.php
没有填充数据库详细信息

我是否遗漏了某个关键步骤?日志中没有错误。
配方被清楚地识别和加载,但似乎没有执行。

使用OpsWorks,您有两个选项:

  • 使用Amazon的一个内置层,在这种情况下,部署方法由Amazon提供,您可以使用钩子扩展Amazon的逻辑:
  • 使用自定义层,在这种情况下,您负责提供所有配方,包括部署:
  • 这里的逻辑看起来更像是一个钩子,而不是一个部署配方。为什么?因为您只是修改已部署的应用程序,而不是指定部署逻辑本身。这似乎表明您正在使用Amazon的一个内置层,Amazon正在为您提供部署方法


    如果上述假设是正确的,那么你就走上了路径1。将您的逻辑重新实现为钩子应该可以做到这一点。

    请不要在stackoverflow和上交叉张贴。您能提供厨师日志(调试级别)吗?这个问题已经出现在