问题标签 [ohai-gem]
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.
ssh - Ohai:无法通过 ssh 获取网络属性
我有几台运行 centOS 6 和 centOS 7 的服务器。我在库存系统中工作,为此我正在使用 ohai,它安装在所有机器上。
当我这样做时ssh myuser@myserver.com ohai
,它会返回一个 json 对象,其中包含所有信息,但网络部分为空。但是,如果我 ssh 进入服务器并运行,ohai
我将获得正确的网络属性。
有人知道会发生什么吗?谢谢!
ruby - Ohai 认为我的插件是第 6 版。为什么?
我正在尝试为 ohai 编写一个插件。这似乎是一个非常简单的任务:
对我来说,这看起来像是 Opscode、O'Reilly 和其他人提供的在线示例。但是当我尝试测试它时会发生以下情况:
这就是乐趣开始的地方。我一遍又一遍地得到这个输出:
(我第二行的文字被我的屏幕剪掉了,但你明白了)
我试过在有和没有'depends'行的情况下运行这段代码。结果相同。
我试过在有和没有 Mash 行的情况下运行这段代码,用 'uname uname -a
' 代替分配行。结果相同。
我试过在有和没有传递“:linux”作为collect_data的参数的情况下运行。唯一的区别是我收到一个关于 collect_data(:linux) 已经被定义而不是 :default 的警告。
我尝试将插件重命名为一个随机的 8 个字符标识符,以防万一它被称为:Uname。结果相同。
我尝试将“uname”(大写和小写)作为参数传递给 o.all_plugins。结果相同。
所以我的问题是:
为什么 ohai(8.3,在 Ruby 2.2.1 下运行)认为这是 6 版插件?我看不到任何让它看起来不是版本 7 的东西。
我怎样才能得到这个工作?
谢谢
ruby - 如何让独立的 ohai 识别自定义 plugin_path?
我已将厨师配置为将“/etc/chef/ohai_plugins”添加到 Ohai::Config[:plugin_path]。但是,厨师文档说:
那么,我怎样才能获得 ohai 的独立运行来加载和使用该自定义路径中的插件?
(背景:我有一个自定义插件,它报告我们为一组服务器跟踪的一些信息,例如服务器是否已针对 heartbleed 或 shellshock 进行修补。我希望能够运行“ssh somehost ohai”,解析JSON 被发回,并提取我需要的信息。)
谢谢。
loops - 遍历 Chef 数组并在 Ohai 查找中使用键
我正在遍历一个数组,并希望使用该键作为逻辑的一部分来查找 Ohai 值。source
在我的特殊情况下,如果从以前的资源触发,我会尝试每个定义的用户的 .bashrc。
欧海结构:
"etc": {
"passwd": {
"root": {
"dir": "/root",
"gid": 0,
"uid": 0,
"shell": "/bin/bash",
"gecos": "root"
},
...
"foo": {
"dir": "/home/foo",
"gid": 501,
"uid": 501,
"shell": "/bin/bash",
"gecos": ""
},
...
因此,当我遍历时,我正在尝试执行以下操作:
node['my_cookbook']['managed_users'].each do |usr|
bash 'reload_shell' do
code "source #{node['etc']['passwd'][usr]['dir']}/.bashrc"
action :nothing
end
end
我也尝试过使用['usr']
,[#{usr}]
和["usr"]
符号,以及转义引号。
chef-infra - 在厨师中如何在变量中捕获执行资源的命令输出?
我想稍后在我的 Chef 食谱中使用私有 IP 地址,我怎样才能在变量中捕获它。我的代码看起来像......
我想在变量中捕获 curl 命令的输出,例如..
然后在配置文件中使用该值,或者有什么方法可以获取 aws 实例的私有 IP 地址,因为 ohai 不支持该privateip
属性。任何帮助将不胜感激。
plugins - 厨师食谱没有找到 ohai 插件定义的资源
我想向 Ohai 添加额外的资源“已安装的 openssh 版本”,以便在我的 openssh 维护配方中使用它。
在 RHEL 5.11 Chef 12.4.1 Ohai 8.5.0 测试工作站上,我创建并测试了 Ohai 插件
$ cat cookbooks/test/files/default/plugins/openssh.rb
irb 中 ohai 插件的本地测试工作正常。现在我正在尝试检查 Chef 食谱中的资源可见性
$ cat test/recipes/default.rb
通过运行本地厨师客户端
$ chef-client -z -m test/recipes/default.rb
为了使额外的插件可见行被添加到配置文件中
(我知道这太明确了)
尽管使用打印 node['kernel'] 运行正常,但 openssh 版本未运行调试日志,显示:
问题:
如何正确地为本地和远程执行提供额外的插件?如何检查它是否已煮好并准备好?
如何正确通知厨师客户端执行 ohai 附加插件以用于本地单一配方运行和远程运行?
欢迎任何解释和建议。
亚历克斯
chef-infra - Enable softlayer ohai plugin
I wanted to enable the softlayer ohai plugin so that the softlayer metadata will be collected.
I have included the ohai
recipe in the chef node's run list. I can see it when I run
The softlayer.rb
file seems to be missing on the chef node at /opt/chef/embedded/apps/ohai/lib/ohai/plugins
. Lots of plugins are missing at that location.
What might be wrong? What do I need to do to collect the softlayer metadata ?
chef-infra - 包含 Chef 服务器 URL 的节点属性?
Chef 服务器 URL 可以作为节点的属性访问吗?我想根据节点连接到的服务器 ID (URL) 更改自定义配方行为。
https://docs.chef.io/ohai.html未列出提供的服务器 (URL)。
谢谢
chef-infra - 如何使用 OHAI 获取 TestKitchen 中指定的 ipaddress 的值?
我ipaddress
在我的kitchen.yml
:
当我尝试检索ipaddress
using的值时
我得到10.0.2.15
而不是193.169.33.84
.
我怎样才能得到193.169.33.84
?
chef-infra - Ohai 没有获取正确的 IP 地址
不知何故,ohai 在特定主机上获取了我的一个 LXC 容器的 IP 地址,而不是与 eth0 接口关联的 IP 地址。
当我重新主厨时,再次运行 ohai,但它仍然获取不正确的 IP 地址。
但是,如果我将 ohai 作为独立执行(即不在 chef-run 中)运行,它会选择正确的 eth0 地址。
这根本不符合逻辑。为什么你认为它没有改变地址?
另外,无论如何我可以使用刀(即不使用配方)更改IP地址吗?
提前致谢