2017-03-09 43 views
0

我们有一个本地Ruby库,我们将其包含在我们的许多Ruby项目中。它包含了很多配置信息,这些信息在我们的厨师脚本中非常有用。这允许我们将所有的配置放在一个地方,所以我们不必在每次更改数据库时都创建多个地方。试着让代码保持干爽。话虽如此,代码是直接的红宝石功能,而不是厨师DSL。厨师共享红宝石函数或库

我一直在试图拉库到厨师,但发现它非常困难。这让我觉得我正在反对某种模式。

我试过了,没有工作。 - 通过require_relative添加Ruby代码并包含。 - 将Ruby代码添加到自己的食谱中,然后包装食谱。 - 创建本地红宝石(不能通过rubygems或其他回购获取)

工作原理: - 将代码复制并粘贴到食谱中。 (但它不是共享。)

我真正的问题,什么是分享这一Ruby代码库以及很多食谱的最好方法?取决于最好的方式,你是如何做到的?或者指向正确的方向。

谢谢。 myles。

回答

0

我会用Halite(免责声明:我的项目)创业板转换成菜谱,然后上传它作为一本菜谱。然后你可以依赖它并且像在你的厨师代码中正常一样从它那里得到东西。

0

您可以创建一个菜谱和Ruby代码复制到菜谱库文件夹中。然后,只要将烹饪书纳入运行列表,Chef就会自动在节点上加载它。

你能告诉,究竟你做了什么,什么也没有,当你试图“Ruby的代码添加到它自己的食谱,然后换菜谱”工作?

0

我创建了一个红宝石库。基本上,它读取opsworks中的服务器的ip。一旦它知道它在什么环境中,它就会设置一个散列。这个散列然后用来设置属性。这样所有的服务器配置都存储在一个地方。

我可以把代码中的每个不同的食谱需要它。但是,我必须在每个不同的食谱中复制代码。我想将代码放在一个地方,并将其包含在每本食谱中。这样,如果我必须修改它,我只需要在一个地方完成。

我试图使它成为一个宝石,并没有运气需要它。
我还创建了一本食谱,只有库中的ruby代码。然后,我在另一个菜谱中加入了“依赖等”,并试图运行库函数,但是我无法使其工作。

我可能已经在正确的轨道上,但我停我得到它的工作之前。

基本上我想要写一个简单的Ruby代码库,我可以在我想要的菜谱使用。必须有办法做到这一点,但我遇到了一些死胡同。我会一直把头撞在墙上。最终,一个洞将打开!