【问题标题】:Why doesn't my custom recipes run on AWS OpsWorks?为什么我的自定义配方不能在 AWS OpsWorks 上运行?
【发布时间】:2014-05-11 01:51:03
【问题描述】:

我为我的简单自定义配方创建了一个 GitHub 存储库:

my-cookbook/
|- recipes/
   |- appsetup.rb

我已将 repo 添加到 Custom Chef Recipes 中,名称为 https://github.com/my-github-user/my-github-repo.git

我已将my-cookbook::appsetup 添加到设置“周期”中。

我知道它已经执行了,因为如果我弄乱了语法,它就会加载失败。

这是我的 appsetup.rb:

node[:deploy].each do |app_name, deploy|
  script "install_composer" do
    interpreter "bash"
    user "root"
    cwd "#{deploy[:deploy_to]}/current"
    code "curl -sS https://getcomposer.org/installer | php && php composer.phar install --no-dev"
  end
end

当我使用 ubuntu 用户通过 SSH 登录实例时,没有安装 composer。

我也尝试了以下无济于事(安装 nodejs):

node[:deploy].each do |app_name, deploy|
  execute "installing node" do
    command "add-apt-repository --yes ppa:chris-lea/node.js && apt-get update && sudo apt-get install python-software-properties python g++ make nodejs"
  end
end

节点未安装,日志中没有错误。日志中对食谱的唯一引用只是说:

[2014-03-31T13:26:04+00:00] INFO: OpsWorks Custom Run List: ["opsworks_initial_setup", "ssh_host_keys", "ssh_users", "mysql::client", "dependencies", "ebs", "opsworks_ganglia::client", "opsworks_stack_state_sync", "mod_php5_apache2", "my-cookbook::appsetup", "deploy::default", "deploy::php", "test_suite", "opsworks_cleanup"]
...
2014-03-31T13:26:04+00:00] INFO: New Run List expands to ["opsworks_initial_setup", "ssh_host_keys", "ssh_users", "mysql::client", "dependencies", "ebs", "opsworks_ganglia::client", "opsworks_stack_state_sync", "mod_php5_apache2", "my-cookbook::appsetup", "deploy::default", "deploy::php", "test_suite", "opsworks_cleanup"]
...
[2014-03-31T13:26:05+00:00] DEBUG: Loading Recipe my-cookbook::appsetup via include_recipe
[2014-03-31T13:26:05+00:00] DEBUG: Found recipe appsetup in cookbook my-cookbook

我是否在某处遗漏了一些关键步骤?配方被清楚地识别和加载,但似乎没有被执行。

(以下为虚构名称:my-github-user、my-github-repo、my-cookbook)

【问题讨论】:

    标签: amazon-web-services chef-infra aws-opsworks


    【解决方案1】:

    我知道你已经放弃了食谱,但我几乎 100% 确定这是因为你的食谱根目录中没有 metadata.rb 文件。

    【讨论】:

    • 谢谢,希望对其他人有帮助(或者如果我再试一次)
    • 这是我的问题,添加文件对我有用,谢谢!
    【解决方案2】:

    您的食谱名称不应包含破折号。我遇到了同样的问题,用'_'代替它为我解决了。

    【讨论】:

    • 谢谢,自从提出这个问题以来,我已经放弃了食谱,所以很遗憾,我无法验证这是否解决了我的问题!
    【解决方案3】:

    如果这些命令静默失败,则可能是您使用 && 掩盖了失败。

    至于 add-apt-repository,这是一个交互式命令。尝试使用“--yes”选项默认回答“是”,使其不再交互。

    【讨论】:

    【解决方案4】:

    如果您没有成功执行命令,您将无法在当前目录中找到文件。检查最后一个发布文件夹,看看它是否已经放在那里。

    通过将 CWD 更改为:/tmp 来检查您是否设置了正确的目录等可能是谨慎的做法

    【讨论】:

    • 我尝试使用 echo "lorem ipsum1" >> /tmp/test.txt 等脚本在 /tmp/ 中创建文件,但之后登录实例时,文件不存在,不幸的是。所以我还是不知所措。
    猜你喜欢
    • 1970-01-01
    • 2013-11-25
    • 2017-06-01
    • 2020-05-21
    • 1970-01-01
    • 2020-12-01
    • 2013-08-07
    • 2020-08-07
    • 2016-07-17
    相关资源
    最近更新 更多