问题标签 [chef-infra]

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 投票
4 回答
9757 浏览

chef-infra - 与厨师一起供应流浪者

我正在深入研究将我的开发环境迁移到 Vagrant 需要什么,我在使用 chef 处理 VM 配置过程时遇到了一些麻烦。我以前从未使用过 chef 并且该区域的 Vagrant 文档故意弱(超出范围),因此我可以使用手。

我想让它尽可能便携,所以我认为从 URL 加载食谱是有意义的,所以这就是我正在尝试的Vagrantfile

我不认为有任何问题我只是误解了某些东西,但我还没有找到一个似乎适合这个 Vagrant 上下文的文档源。

谢谢。

0 投票
1 回答
966 浏览

ruby - 使用外部调用设置厨师变量

我正在使用应用程序说明书来部署 java 战争文件。我想做的是从外部位置(在本例中为我们的本地 nexus 存储库)加载 WAR md5。使用 chef 从外部位置加载值(例如运行一些 bash 将字符串输出到 STDOUT 并将该值用于 chef 变量)。

像这样的 bash:

0 投票
3 回答
1384 浏览

python - 使用 chef Python cookbook 为我的 virtualenv 指定不同的 Python 版本

我正在尝试使用 Chef 在ubuntu 11.10 VM 内使用opscode Python cookbook在节点上安装 virtualenv。特别是,我正在使用应用程序配方为 Django 和 Gunicorn 执行此操作。

python_virtual 资源的默认设置是 python2.6。我试图通过覆盖我的角色文件中的默认属性来指定 python2.7,如下所示:

但是,这不起作用:

在这里覆盖默认值的正确语法是什么?

0 投票
1 回答
1493 浏览

ruby - Apache 反向 HTTP 代理后面的 Chef API 服务器返回 http 而不是 https 链接

我有一台在机器上运行的厨师服务器(侦听端口 4000),我想通过 SSL 访问它。我已经设置了一个 Apache 反向代理来执行此操作(侦听端口 4001)。Apache 设置看起来像(我的机器名称替换为 www.example.com)

问题是厨师 API 调用返回的 JSON 中的 URL 具有 http 而不是 https。例如,它们看起来像:

代替:

一个示例是在执行 POST 以/sandboxes创建新沙箱时,该沙箱创建了上面的链接。这会破坏诸如尝试使用刀上传食谱之类的事情。

据我所知,POST 调用的厨师服务器创建方法调用Merb absolute_url辅助方法来生成 URL。/sandboxes

在这一点上,我很困惑如何解决这个问题。我是否需要以某种方式更改我的 Apache 反向代理配置?它是厨师服务器中的配置选项吗?或者是其他东西?

0 投票
1 回答
407 浏览

configuration-management - 自动配置管理的性能成本

我第一次学习像 Chef/Puppet/etc 这样的工具,想知道它们与部署在云上的应用程序集成的好坏(或差):

  • 当有特定于供应商的 API 以及像 JCloud 这样抽象出这些 API 的框架时,为什么还要使用 Chef?
  • 使用这些配置工具是否有性能成本,或者(一旦配置)节点/机器是否像云上的任何其他(非托管)机器一样运行?
  • Chef 可以用来配置任何现有的技术,还是提供“支持的供应商/系统”列表?意思是,假设我有一堆由 Chef 配置的 PostgreSQL 服务器。然后第二天,一些疯狂的新 RDBMS 出现了,我想切换到它。我需要等待 Chef “支持”这个新系统,还是 Chef 供应商不可知?

提前致谢!

0 投票
1 回答
1925 浏览

ruby - Ruby 和 Chef:解析和替换散列中的值

我正在使用 opscode chef 来自动化 MySQL 集群的部署。我想将所需的主机放入 JSON 文件,然后让厨师将这些主机名解析为内部 IP 地址,然后将 IP 地址设置为变量。

我有一个看起来像这样的简单哈希:

我想基本上获取节点键然后遍历哈希中的所有键值获取每个键/值,然后通过返回 ip 地址的搜索函数解析值,然后将值分配给该键。

好吧,这行不通。

单独我可以将主机名解析为 IP 地址,但我真的不明白如何获取每个键和值,解析值,然后用解析的值替换它。

0 投票
1 回答
5875 浏览

ruby - 是否可以在不运行默认食谱的情况下运行厨师食谱

我的 nginx 食谱中有两个厨师食谱。一个名为 default.rb,另一个名为 sites.rb。当我运行网站食谱时

然后我的默认配方也会运行。我该如何防止这种情况发生?

0 投票
1 回答
1028 浏览

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

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

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

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

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

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

0 投票
12 回答
42620 浏览

apt - 如何让 Chef 在运行其他食谱之前运行 apt-get update

现在我的 Vagrantfile 中有以下内容:

为了安装添加到我的 recipe_list 的软件,我需要在安装其他软件之前让 VM 发出apt-get 更新。

我的印象是这是“apt”配方的功能之一——它会首先运行更新。

当我做一个流浪的规定时的输出是:

0 投票
2 回答
468 浏览

ruby-on-rails - 如何在 rails 应用程序上正确安装 Kissmetrics?

我正在使用安装 KM API 的 Ruby API 方法,但我不确定我是否做得正确。我做的第一件事是将 KM 初始化代码放在我的 init.rb 文件中:

很明显,我用我的 api 密钥替换了 API-KEY。然后它说正确的做法是将数据保存在一个文件中,并每 5 分钟将其作为 cronjob 发送到 KM。我的第一个问题是 - /var/logs/km/ 是保存数据的正确目录吗?我实际上并没有在我的 rails 应用程序中看到该目录。

然后,我使用厨师食谱发送 cron 作业,如下所示:

我也不确定这是否正确。该示例显示了 cron 代码,如下所示:

这就是我在厨师中完成 cron 工作的方式。所以,几个问题:我怎么知道它是否有效?我似乎找不到为 cron 作业存储数据的文件,是我把它放在错误的目录中了吗?我的厨师食谱正确吗?

谢谢!