繁体   English   中英

如何分发自定义Ohai插件

[英]How to distribute a custom Ohai plugin

我正在编写一个Ohai插件来添加一些自定义属性供Chef-client使用。 我在哪里包含plugin.rb文件?

它在食谱里面吗?

或者我是否必须将其复制到某个标准位置?

厨师文档和其他教程没有提供太多关于这些信息(或者我一定错过了一个非常明显的事实)。 我知道在Puppet中你可以在模块的lib / facter /文件夹中包含自定义事实。 在厨师中是一样的吗?

这并不像听起来那么难,但我同意Ohai 7上的文档缺少Ohai 6文档中的一些信息

然而, ohai资源ohai食谱是你正在寻找的。 使用它的一个例子可以在我的食谱中找到。

基本上,您首先必须将插件的.rb文件放入Ohai的插件路径( node[:ohai][:plugin_path] ),然后重新加载Ohai以使当前Chef运行中的属性可用:

ohai "reload" do
  action :reload
end

template "#{node[:ohai][:plugin_path]}/myplugin.rb" do
  notifies :reload, "ohai[reload]"
end

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

首先确保您使用的是最新的ohai食谱(目前为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'

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

如果您没有指定/etc/chef/ohai/plugins作为chef-client配置中的附加路径,则会发出警告。 但默认情况下将使用/etc/chef/ohai/plugins

要摆脱警告,请使用chef-client cookbook,recipe chef-client::config ,节点变量node['ohai']['plugin_path']作为加载Ohai插件的附加路径。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM