问题标签 [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.

0 投票
1 回答
706 浏览

amazon-ec2 - 刀/厨师 - 如何捕获命令行参数并传递给厨师食谱

有没有办法捕获命令行参数并传递给厨师食谱?我要做的是自动将主机名填充到各个地方。一个在/etc/sysconfig/networkDOMAIN 字段中。

因此,如果启动服务器的命令是

我想捕获“myserverName”并将其传递给在引导时可能需要它来构建 FQDN 的各种配方。

这不是通过 JSON 选项,而是直接来自命令行。

0 投票
1 回答
1844 浏览

chef-infra - 玩 Vagrant 和 python 配方,我不知道如何使用 python_virtualenv

我的 Vagrantfile 看起来像这样(缺少某些部分):

根据Opscode python recipe Readme,可以使用命令安装 python 包和使用python_pip命令安装 python virtualenvs python_virtualenv。我怎样才能将它们集成到我的Vagrantfile?

0 投票
5 回答
47831 浏览

linux - 使用 Chef 配方将多行附加到配置文件

我正在尝试创建一个厨师食谱以将多行(20-30)附加到特定的配置文件中。

我知道推荐的模式是更改整个配置文件,而不仅仅是附加到文件,但出于多种原因我不喜欢这种方法。

到目前为止,我发现的唯一解决方案是使用 acookbook_file然后使用 bash 资源来执行以下操作:

cat lines_to_append >> /path/configfile

显然这不能正常工作,因为它会一遍又一遍地附加文件,每次你运行 chef-client。我必须先创建一个小型 bash 脚本来检查特定字符串,如果未找到,则附加到文件中。

但这似乎违背了使用 Chef 的目的。一定会有更好的办法。

一个有希望的解决方案是来自 OpsCode 社区的line cookbook 。它旨在解决这个确切的问题。不幸的是,功能不完整,有缺陷,而且代码只是一个快速破解。远非一个可靠的解决方案。

我评估的另一个选项是augeas。看起来非常强大,但它会为系统添加另一层抽象。就我而言,矫枉过正。

鉴于这是任何系统管理员最明显的任务之一,是否有任何我没有看到的简单而漂亮的 Chef 解决方案?


编辑:这是我目前解决的方法:

它有效,但不确定这是推荐的 Chef 模式。

0 投票
2 回答
43948 浏览

chef-infra - 我应该使用 include_recipe 还是将配方添加到 run_list?

试图找出大型项目的最佳方法。什么时候适合在配方中添加配方,include_recipe而不是将配方添加到run_list? 有没有好的经验法则?

0 投票
1 回答
7383 浏览

chef-infra - 覆盖厨师 bash 返回码

我正在运行一个厨师食谱来安装 Websphere 修复包。修复包重新调整并退出代码 [2],用于部分安装。这是预期的行为,但厨师只是将其视为错误。有什么办法可以覆盖它。

我希望厨师继续下一个任务,即使返回退出代码是 [2]

0 投票
1 回答
7555 浏览

chef-infra - 无法在厨师中使用 not_if

我在使用 bash 属性时尝试实现 not_if

我正在尝试启动 WAS 部署管理器,但只有当它没有运行时,我才使用简单的 grep 命令来获取正在运行的进程的 pid,如下面的日志所示

以下是来自厨师客户端的调试日志

当 DMGR 进程 *运行时*

当 DMGR 进程 * 未运行*

不管是什么情况,它总是跳过,我错过了什么

0 投票
1 回答
768 浏览

ruby-on-rails - 厨师:数据库迁移未在应用程序配方中运行

我正在使用 application 和 application_ruby 食谱。我正在使用 migrate 'true' 来定义我的应用程序:

但是,我没有看到任何迁移正在运行。我认为这是因为 application_ruby 在运行后将其删除。但是,就我而言,数据库用户凭据存在问题,迁移不成功。除了手动运行迁移之外,还有什么方法可以让它运行吗?

0 投票
1 回答
770 浏览

ruby-on-rails - 厨师 application_ruby 食谱:独角兽未重新启动

我使用 application 和 application_ruby 食谱定义了以下应用程序:

即使我有 preload_app true,独角兽也不会重新启动。从 chef 日志中可以看到,unicorn 的 before_compile cook 和 before_deploy 钩子被执行了,但是它没有进入 before_restart。关于我的配置错误的任何指示?

0 投票
0 回答
325 浏览

chef-infra - Vagrant 和 Chef 的困惑。它没有做我认为应该做的事情

我有 Opscode php 食谱,它工作正常......几乎。我对 php.ini.erb 文件进行了修改,但没有按照脚本中的说明复制该文件。我使用的是 ubutnu 基础框,因此我修改php/templates/ubuntu/php.ini.erb并重新创建了 Vagrant 框。我对模板文件所做的更改并没有出现在系统使用的 php.ini 文件中;它只是使用一个完全默认的 php.ini。

另外,我想安装xdebug。所以我制作了自己的食谱,php/recipes/module_xdebug.rb其中包含以下内容:

...然后将以下内容添加到php/metadata.rb文件底部:

...并且该文件php/templates/*/xdebug.ini.erb包含:

我将此文件放在所有模板目录中。然而,当我提供时,文件并没有被复制。

另外,我正在尝试下载并提取 Zend Framework。为此,我通过在php/recipes/source.rb文件的底部添加一些代码来作弊:

哪个也行不通,尽管我有点预料到不行,因为它是一个完整的 hack 并且可能充满了错误。

所以我不得不重新评估我的快速学习能力,因为我尝试做的与原版安装不同的唯一事情就是这三件事,而且没有一件是有效的。

任何人都可以对我的(可能很多)失败有所了解吗?

0 投票
1 回答
562 浏览

ruby - 在 Chef 食谱中部署 java 应用程序

我已经在使用应用程序说明书来部署和安装我的 java 应用程序。我自己试过了。

对于上面的代码,我得到以下错误。

我不明白如何解决这个问题?