问题标签 [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.
deployment - 您如何从测试套件向厨师报告错误?
如果我在安装时运行测试套件,我将如何向厨师报告错误?更一般地说,是否有用于验证系统状态的出色软件包?
这是否仅涉及在退出时返回错误代码,还是有更详细的与 Chef 交互的方式?
chef-infra - 监督环境变量
有没有办法让主管真正在用户的上下文中启动?
即使我设置了用户,运行进程的环境变量似乎也连接到 root。我继续设置了一些环境变量,但我实际上希望进程像su - username
事先运行一样运行。
这是ipynb-cookbook的一部分,旨在自动设置和配置 IPython Notebook(完成配置文件构建)。
这是我正在使用的厨师设置:
这导致了这个 /etc/supervisor.d/ipynb.conf
检查环境变量时,我看到的是:
chef-infra - Netflix ICE 和 librarian-chef - 软件包存档包含太多子项
我正在尝试部署操作码“Netflix ICE”食谱。ENV rvm ruby 2.0.0 图书管理员-厨师 0.0.1
在运行 librarian-chef install 时出现以下错误:
/Users/seva/git/chef/bundle/ruby/2.0.0/gems/librarian-chef-0.0.1/lib/librarian/chef/source/site.rb:271:in `unpack_package!':包存档孩子太多了!(运行时错误)*
试图在 Cheffile 中同时定义 opscode 和 git、Netflix ICE 存储库。package.tar.gz 文件也是一致的,我能够成功解包
有任何想法吗?
ruby - 如何捕获 Chef 异常
我现在正在研究厨师食谱,我需要根据代码的结果用一些信息更新数据包。基本上我需要更新一个成功或失败的数据包。
代码如下所示:
问题是即使有一个丢失的文件,救援块也没有被执行,数据包也没有相应地更新。因此,当我在服务器上运行命令 sudo chef-client 时,它以异常结束,Chef::Exceptions::FileNotFound
但它没有被rescue
块处理。是否有意义?有什么帮助吗?
ruby - 将节点属性传递给 chef-apply
有什么方法可以将属性传递到食谱的厨师应用运行中?
我的食谱的第一行是:
这导致:
当我跑步时
将适当的属性添加到 中attributes/default.rb
并不能解决此问题,为 . 添加初始化也不能解决此问题node[:my_attr] = {}
。
如何将节点属性传递给厨师应用运行?
amazon-web-services - 使用嵌套数据创建模板的厨师食谱
我正在尝试为我的 Amazon OpsWorks 堆栈创建厨师食谱。我想将自定义 JSON 数据传递到堆栈中,并让配方创建一个 .ini 文件以与 PHP 的 parse_ini_file() 命令一起使用。
我有什么工作
目前,我可以使用以下内容创建一个平面 .ini 文件:
JSON:
生成的 settings.ini 文件是:
厨师食谱:
厨师模板“settings.ini.erb”:
我想要做什么
我想将我的 JSON 数据更改为:
我希望我的结果 settings.ini 文件是这样的:
或者,也可能是这样的:
我需要帮助修改我的 settings.ini.erb 模板文件以正确使用嵌套的 JSON 数据。
ruby - Chef Solo - Ruby DSL 或 JSON 中的角色数据?
我正在与 Chef Solo(11.4.4 和 11.6.0)一起玩角色。有点困惑。
对于 Chef Solo 运行,角色应该用 Ruby 还是 JSON 编写?
根据官方文档:关于角色,角色可以存储为特定于域的 Ruby (DSL) 文件或 JSON 数据。
注意:
chef-client
使用 Ruby for Roles,当这些文件上传到 Chef 服务器时,它们会转换为 JSON。每当刷新 chef-repo 时,所有特定于域的 Ruby 文件的内容都会重新编译为 JSON 并重新上传到服务器。
我的问题是,如果需要在没有服务器的情况下以单人模式运行 Chef 并且需要角色,那么角色应该用 Ruby 还是 JSON 编写(我们没有将 Ruby 转换为 JSON 的服务器)?
我的猜测是后者。有人知道正确答案吗?
顺便说一句:我见过人们在角色文件中混合使用 Ruby 和 JSON ......
下面 rbenv.rb 的 Ruby DSL 等效项是什么?
例如,运行rbenv
+ ruby-build
cookbooks 在 Ubuntu 上安装 rbenv。
rbenv.json
角色/rbenv.rb
Chef Solo 运行chef-solo -c solo.rb -j rbenv.json -l debug
按预期工作。这是为了通过 HTTPS 实现克隆,因为它更容易在防火墙后面。
但是,使用 Ruby DSL 版本的角色 rbenv.rb 如下所示
它似乎不起作用,因为它仍然使用默认属性(通过 git URL 而不是 HTTPS 克隆)。
我是 Ruby 新手,所以很可能我在 DSL 代码中犯了一些错误,请帮忙;-)
ruby-on-rails - 将文件从 Chef 客户端节点复制到工作站
我想知道如何将文件从客户端节点传输到远程机器。我检查了是否有任何资源可用于执行此操作。我发现最接近的是remote_file
,但它是从远程位置获取文件并将其传输到客户端节点。
所以我尝试了另一种选择,编写了一个执行自动 scp 的 bash 脚本。但我无法复制文件,但厨师客户端运行良好,没有显示任何错误。
这是我用于复制文件的脚本:
我已将此脚本复制到我的cookbook's
templates
目录中automatecopy.erb
,然后在中default.rb
,我有以下代码
在这里,厨师客户端成功运行,但文件没有复制到我的工作站机器。另一件事是,当我登录到我的客户端节点并从那里运行脚本时,它就可以工作了。那么为什么厨师不这样做呢?
请通过建议可能出现的问题或是否有任何内置的厨师资源可用于将文件从客户端复制到工作站来帮助我解决此问题。
PS:我的工作站和客户端节点都在运行 Ubuntu 12.04。提前致谢。
virtualbox - 运行 'vagrant up' 时出错 - 打开的文件太多 - getcwd (Errno::EMFILE)
我有一个非常基本的 Vagrantfile,当我第一次调用“vagrant up”时(在销毁盒子之后),我几乎每次都会收到下面的错误。任何想法为什么?我不知所措。我在 OSX 上。
流浪文件:
回溯:
chef-infra - 厨师:为什么我不能订阅目录:创建操作?
我创建了以下配方块,它应该在/etc/httpd/ssl
创建目录时运行:
(这直接模仿了操作码示例- 在“将文件存储在数据包中”下)
在 Chef 输出中,我可以看到我的食谱文件正在加载:
而且,在下面,我可以看到正在创建的目录:
但它绝不会运行我的代码。
我究竟做错了什么?