Chef infra 如何分发自定义Ohai插件

Chef infra 如何分发自定义Ohai插件,chef-infra,Chef Infra,我正在编写一个Ohai插件来添加一些定制属性,供chef客户端使用。在哪里包括plugin.rb文件 它在食谱里吗 还是我必须把它复制到某个标准的地方 Chef docs和其他教程没有提供太多这方面的信息(或者我肯定错过了一个非常明显的事实)。我知道在Puppet中,您可以在模块的lib/facter/文件夹中包含自定义事实。厨师也一样吗 这并不像听起来那么难,但我同意,关于的文档缺少文档中提供的一些信息 但是,和是您正在寻找的。可以在中找到使用该工具的示例 基本上,您首先必须将插件的.rb文件

我正在编写一个Ohai插件来添加一些定制属性,供chef客户端使用。在哪里包括plugin.rb文件

它在食谱里吗

还是我必须把它复制到某个标准的地方


Chef docs和其他教程没有提供太多这方面的信息(或者我肯定错过了一个非常明显的事实)。我知道在Puppet中,您可以在模块的lib/facter/文件夹中包含自定义事实。厨师也一样吗

这并不像听起来那么难,但我同意,关于的文档缺少文档中提供的一些信息

但是,和是您正在寻找的。可以在中找到使用该工具的示例

基本上,您首先必须将插件的
.rb
文件放入Ohai的插件路径(
节点[:Ohai][:plugin\u path]
),然后重新加载Ohai,以使属性在当前运行中可用:

ohai“重新加载”do
操作:重新加载
结束
模板“#{node[:ohai][:plugin_path]}/myplugin.rb”do
通知:重新加载,“ohai[重新加载]”
结束

一直以来,使用自定义ohai插件的工作流程都发生了多次变化。那是厨师。这对厨师来说很正常

首先确保您使用的是最新的ohai cookbook(目前为5.2.0)

如果使用chef server,则可以按如下方式执行此操作:

knife cookbook site download ohai
cd ~/you/cookbooks/folder
tar xzf ohai-5.2.0.tar.gz
rm ohai-5.2.0.tar.gz
knife cookbook upload ohai
在官方网站上,没有关于如何使用自定义插件的案例

假设您已经有一个插件(ohai版本7)要部署

将其包含在您想要的任何应用程序/包装器食谱中,如下所示:

ohai_plugin 'myplugin_status_ohai_plugin'
并在您的应用程序/包装器cookbook中放入一个文件,其中包含
files/default/myplugin\u status\u ohai\u plugin.rb
中的插件代码。就这些。默认情况下,您的插件将安装到Chef config目录中“ohai”目录下名为“plugins”的目录中。安装和插件收集数据功能将在编译时触发

如果未将
/etc/chef/ohai/plugins
指定为chef客户端配置中的附加路径,则将发出警告。但是默认情况下将使用
/etc/chef/ohai/plugins


要消除警告,请使用
chef-client
cookbook,recipe
chef-client::config
,节点变量
node['ohai']['plugin\u-path']
作为加载ohai插件的附加路径。

谢谢Stephen!经过一些搜索,我发现了旧文档,并将插件文件添加到ohai cookbook中。由于某些基础结构问题,仍然无法验证功能。正在等待验证以发布自我回答。