OpsWorks - 自定义食谱中包含的内容

Posted

技术标签:

【中文标题】OpsWorks - 自定义食谱中包含的内容【英文标题】:OpsWorks - what to include in custom cookbook 【发布时间】:2013-07-29 02:21:06 【问题描述】:

我是 Chef 和 A​​WS OpsWorks 的新手。

我想创建一个自定义说明书,以便在生产中预编译资产并使用when gem 设置cron 作业。

我发现了一些关于预编译资产的信息,我也会弄清楚 cron 部分,但我很困惑我的自定义厨师项目应该是什么样子。 它是一个完整的厨师个人项目,将取代 AWS OpsWorks 的标准食谱,因此我必须从他们的 github 存储库中复制东西? 或者我们和他们的食谱会合并吗?如果是这样,我必须至少包含哪些目录和文件,例如执行“bundle exec 每当 --update-crontab 'foo'”

是否建议仅为食谱创建第二个项目,或者我可以将厨师文件放在我的 rails 结构的子目录中而不会弄乱它?

【问题讨论】:

【参考方案1】:

目前,OpsWorks 不支持单一的说明书目录样式。它可以像这样构建存储库:

delayed_job
  recipes
    deploy.rb
    undeploy.rb
s3cmd
  attributes
    default.rb
  recipes
    setup.rb
    configure.rb
  templates
    default
      s3cfg.erb
whenever
  recipes
    deploy.rb
    undeploy.rb

然后在堆栈设置下,在自定义食谱下,可以添加例如每当::部署下部署。对于 default.rb 配方,一次可以添加例如sphinx 而不是 sphinx::default。

在更改并推送到存储库后,必须从部署页面运行update_custom_cookbooks 命令。

【讨论】:

为了补充 Jan 的答案,如果使用 Berkshelf,还可以在存储库的根目录中添加 Berksfile。我在github.com/dmarcelino/aws-cookbook-boilerplate 创建了一个小样板项目来展示这一点。

以上是关于OpsWorks - 自定义食谱中包含的内容的主要内容,如果未能解决你的问题,请参考以下文章

Opsworks 自定义厨师食谱上的 Codeigniter ci_sessions

在 aws opsworks 中运行自定义食谱

没有这样的说明书 - OpsWorks 找不到自定义说明书

在 opsworks 中的自定义 json 中设置环境变量

无法在 AWS Opsworks 上使用 Chef 12 查找 Chef 社区食谱

每次都在 AWS opsworks 上进行部署