问题标签 [chef-recipe]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
chef-infra - 扩展 application_php 厨师食谱返回 RecipeNotFound 错误
我最近一直在和 chef 一起部署应用程序。我正在尝试在 opscode 提供的应用程序和 application_php 食谱之上构建。但我对厨师有点陌生,我真的不明白我应该怎么做。
我为我的应用创建了一本食谱。食谱目前看起来像这样:
角色:my_app.json
但是当我运行knife bootstrap example.com -r role[my_app] ...我收到以下错误:
好像做对了什么。有谁知道我应该如何扩展 application 和 application_php 食谱?
deployment - 如何“触发”主厨独奏并获得回调/报告?
我正在考虑使用 Chef-Solo 作为 PaaS 编排器。
我将拥有自己的仪表板,它将生成配方,我的节点将从它们中提取。我知道我可以通过使用来做到这一点:
但是,如果我想添加越来越多的属性;就像拥有要部署的虚拟主机或 mysql 用户列表。我不知道我怎么能做到这一点。
我正在寻找你的想法;我“认为”engineyard 正在使用 chef 来部署“按需”php、node .js 应用程序;他们是如何做到这一点的?
如果已经部署了应用程序部署,如何不重新执行该应用程序部署
在第一次运行时,我将拥有:
然后,当创建一个新站点时,属性将变为:
等等
以及如何获得关于 chef-solo 正在做什么的报告?
欢迎任何巧妙的想法:)
linux - 重启 RHEL 服务器后,chef-server 无法启动
“usr/sbin/setup-chef-server.sh”
厨师服务器启动时出错
正在检查 RabbitMQ...
启动 CouchDB...
正在启动 couchdb:已经在运行 [警告] 正在启用厨师服务...
开始厨师服务...
启动厨师服务器:[失败]
启动 chef-server-webui:[失败]
启动 chef-solr:/usr/lib/ruby/site_ruby/1.8/rubygems/dependency.rb:247:into_specs': Could not find chef-solr (>= 0) amongst [bunny-0.7.9, chef-10.16.2, erubis-2.7.0, highline-1.6.15, ipaddress-0.8.0, json-1.6.1, mime-types-1.19, mixlib-authentication-1.3.0, mixlib-cli-1.2.2, mixlib-config-1.1.2, mixlib-log-1.4.1, mixlib-shellout-1.1.0, moneta-0.6.0, net-ssh-2.2.2, net-ssh-gateway-1.1.0, net-ssh-multi-1.1, ohai-6.14.0, polyglot-0.3.3, rest-client-1.6.7, systemu-2.5.2, treetop-1.4.12, uuidtools-2.1.3, yajl-ruby-1.1.0] (Gem::LoadError)
[失败的]
启动厨师扩展器:/usr/lib/ruby/site_ruby/1.8/rubygems/dependency.rb:247:in `to_specs':在 [bunny-0.7.9, chef-中找不到厨师扩展器(> = 0) 10.16.2、erubis-2.7.0、highline-1.6.15、ipaddress-0.8.0、json-1.6.1、mime-types-1.19、mixlib-authentication-1.3.0、mixlib-cli-1.2.2、 mixlib-config-1.1.2、mixlib-log-1.4.1、mixlib-shellout-1.1.0、moneta-0.6.0、net-ssh-2.2.2、net-ssh-gateway-1.1.0、net- ssh-multi-1.1、ohai-6.14.0、polyglot-0.3.3、rest-client-1.6.7、systemu-2.5.2、treetop-1.4.12、uuidtools-2.1.3、yajl-ruby-1.1。 0](宝石::加载错误)
[失败的]
ruby - 如何为厨师处理程序安装依赖项?
我正在尝试通过 chef_handler lwrp 安装厨师处理程序。这个处理程序(chef-handler-email)捆绑在一个 gem 中。我正在尝试安装 gem,然后从单个配方中打开处理程序,如下所示:
如果 gem 已经安装,这可以正常工作。但是,如果尚未安装 Gem,我会收到此错误:
似乎 chef_handler 资源正在尝试在 chef_gem 执行并为处理程序安装 gem 之前加载处理程序。我显然可以在两步手动过程中执行此操作,其中我有一个单独的安装 gem 的配方,然后翻转到另一个配置处理程序的配方,但我希望避免多步骤手动过程。可以通过单一配方完成吗?
jekyll - 杰基尔厨师食谱
在某些方面,这是厨师问题的开始。但是,我正在尝试创建一个简单的方法来从 github 签出我的 jekyll 代码,然后运行 jekyll 在本地构建它。我还没有开始担心让 nginx 配置运行,但我已经尝试了大约 100 种不同的“before_migrate”脚本排列,还没有找到一种方法将 jekyll 加载到可用的 gem 中或加载到路径中做一个command "jekyll ..."
这是目前的配方:
更新:
事实证明,这个问题根本不是配方问题,而是其中一个 HTML 文档包含一个 UTF-8 字符,并且 jekyll 正在运行,LC_ALL=C
因此令人讨厌。这当然是我尝试写的第一个食谱,这并没有帮助。
出于历史原因,这是最终脚本
chef-infra - 如何在 RightScale 厨师食谱中获取正在运行的食谱的完整路径?
从我当前正在执行的食谱食谱中,我想访问它在我的执行机器上的“当前”位置。
我需要这个来访问它的缓存目录结构。
我感觉它位于“node[]”内的某个地方,但我根本找不到任何关于它的结构的文档。
有什么建议吗?
谢谢
chef-infra - 配方如何获得服务器标签的完整列表?
配方如何获得服务器标签的完整列表?
或者
配方如何检查某个标签是否已设置/存在?
顺便说一句:标记?对我不起作用
chef-infra - 厨师食谱等待 git clone 完成
我已经尝试了几种不同的方法,包括创建一个新配方并通知该配方运行,但我一直遇到同样的问题,即在资源运行之前克隆的 repo 目录不存在file
,所以我收到了一个致命错误。
我的问题是,我可以在文件资源尝试执行之前让 git clone 完成,还是有更好的方法来做到这一点?
SN:我正在尝试通过新的用户环境设置来完成交易 - 所以在创建新用户之后,我将从将为该用户部署的 git repo 中克隆一堆配置文件。
chef-infra - 覆盖配方中的属性
假设我在食谱中有一个默认属性:
然后它在角色和环境中被修改和覆盖,直到它最终到达我的食谱。在那里,我计算了一些我想添加到属性中的附加服务。如果我做这样的事情:
然后当我尝试在我的模板中使用该属性时,undefined method 'each' for nil:NilClass
当我尝试这样做时,我在我的模板中得到一个
另外,我还得到一个WARN: Setting attributes without specifying a precedence is deprecated and will be removed in Chef 11.0
. 有用的警告告诉我如何以正常优先级设置属性(显然,使用node.set["key"] = "value"
,但没有告诉我如何指定默认或覆盖属性。
我可以通过执行以下操作来解决此问题:
但这感觉就像一个黑客。我在此页面node.set()
之外找不到任何文档,这也表明您可以在配方中设置普通属性和覆盖属性,但没有说明如何设置。
那么...您如何从配方中正确设置属性(与其他所有内容一起深度合并)?该node.set()
调用实际上做了什么,我可以告诉它我想要合并的优先级吗?