问题标签 [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 投票
2 回答
3615 浏览

cron - 厨师 - 重复食谱执行

首先,厨师可以(并且这是一种好习惯)在特定的角色上以指定的时间间隔运行食谱吗?

我有一个管理用户帐户和 ssh 身份的 ruby​​ 脚本,它目前每小时在一个 cron 上运行,出于显而易见的原因,我想把它变成一个 Chef 食谱(我希望它在所有机器上都存在)。

我可以看到两种方法:

将脚本转换为模板,配方只需将模板渲染到给定路径,然后注册一个 cronjob

或者

将脚本分解为资源、提供者等,并让 Chef 每小时运行一次。

想法?

0 投票
1 回答
761 浏览

django - chef-solo from_file 出错了 bash /tmp/chef-script 返回 1,预期为 0

我在 chef-solo 食谱上出现了这个错误,我是新手,所以我并没有真正得到这个错误或如何修复它......听起来仍然像找不到文件或目录,创建......

这是显示错误的配方。

0 投票
1 回答
1621 浏览

amazon-ec2 - 厨师不会从食谱/食谱安装

我认为我在使用 Chef 部署应用程序时缺少一些基本知识。

我从 opscode repo 中克隆了一堆食谱。我进行了更改并适当地削减了它们。一切都已配置,因此我可以使用 bash 脚本生成 EC2 实例,但它不执行任何 Chef 安装。

在角色/base.rb 我有我想要安装的所有应用程序:

我 ssh 到实例并执行以下操作sudo chef-client

我等了一会儿,仍然没有安装任何东西。我是否需要action: install为每个配方 default.rb 明确声明?我很混乱。

0 投票
5 回答
32708 浏览

environment-variables - 如何使用 Chef 配方设置环境变量?

如何使用 Chef 配方设置环境变量?

我需要使用 Chef 配方设置环境变量。你能提供一个例子来说明如何做到这一点吗?

0 投票
1 回答
1528 浏览

ruby - 如何设置对在 Chef 加载食谱时不存在的 Ruby 库的依赖关系?

设想:

  • 配方1:下载档案,提取它们。提供一个 CLI,它也定义了一个 Ruby 库。
  • Recipe2:利用上述库中的 Ruby API。

在 recipe1/recipes/default.rb 中:

在 recipe2/recipes/default.rb 中:

但是,在加载食谱时,Chef 会宣布:

在所有配方都在运行过程中后,如何声明/启用 Ruby 库?

0 投票
3 回答
34021 浏览

chef-infra - Chef模板中的节点名称?

我一直在试图弄清楚如何将节点的名称 ( knife bootstrap -N) 放入模板中。我尝试了十几种不同的想法,但还没有找到任何可行的方法。有谁知道如何从厨师食谱中访问这个?

另外——有没有办法列出厨师食谱可用的所有变量?

0 投票
2 回答
1419 浏览

chef-infra - 厨师:not_if not_working

如果用户在服务器上还没有密钥,我想运行 ssh-copy-id ,所以我在执行块中有一个 not_if 指令。我已经验证 not_if 命令返回 0,但执行块仍然运行。

 

有任何想法吗?

0 投票
1 回答
6594 浏览

chef-infra - 如何在厨师食谱中转换以下 shell 命令?

如何在厨师食谱中转换以下 shell 命令?

安装

为 nginx 创建一个 Upstart 文件

须藤 vim /etc/init/nginx.conf

重启虚拟机

验证 nginx 运行

0 投票
1 回答
8963 浏览

ruby - Chef 没有运行 apt (apt-get update) 配方。Apt 返回 100

在 vagrant、mac os x 10.7.2 上运行 Ubuntu 11.04。运行厨师服务器。

尝试安装 postgresql 社区厨师配方时,我收到以下错误,即使我的基本角色看起来像这样(我添加了 apt 配方以尝试更新 apt-get):

尝试做厨师跑步:

如果我从服务器内部手动执行 $sudo apt-get update,则再次运行 chef-client install postgres 没有问题。关于为什么 apt 配方没有运行的任何想法?(我也知道它没有运行,因为 apt-get 的时间戳文件不是在 ubuntu 中创建的)。任何帮助将非常感激。

0 投票
1 回答
1028 浏览

chef-infra - 如果不满足特定条件,有没有办法中止厨师客户端运行?

考虑一个简单的应用服务器/数据库服务器设置。你想在应用服务器上设置一些值,告诉它数据库服务器在哪里,并且你想在数据库服务器上设置一些权限,只允许来自应用服务器的连接。

搜索(:节点,“角色:数据库服务器”)

搜索(:节点,“角色:应用服务器”)

可以从任何一台机器的配方运行中获取所需的信息。但是,如果在您进行搜索时这台服务器不存在怎么办?有没有办法说“不要继续运行”并将其标记为未完成,以便下次在该机器上运行 chef-client 时,它会再试一次?

或者,是否有一些我想念的漂亮厨师服服务于这个用例(“通知”和“订阅”似乎它们几乎是我想要的,除了据我所知,它们只是关心节点内发生的事情)更好?我正在考虑的另一件事是尝试设置一个睡眠/检查循环以有效地暂停一个执行运行,而另一台服务器到达它需要的位置,但该解决方案似乎相当不雅,并且容易出现死锁问题更复杂的设置.