【问题标题】:How to enable specific Ohai plugin on a node in Test Kitchen如何在测试厨房的节点上启用特定的 Ohai 插件
【发布时间】:2020-09-27 09:44:13
【问题描述】:

我想在测试厨房的节点中启用 Passwd ohai 插件。在常规节点上,我通过添加:

ohai.optional_plugins = [
      :Passwd
]

/etc/chef/client.rb

我想在测试节点中实现同样的效果,所以我添加到了我的 .kitchen.yml:

provisioner:
  name: chef_zero
  client_rb:
    Ohai::Config[:optional_plugins] =
      - passwd

但是当我收敛节点时,插件没有启用。在测试节点上,/home/vagrant/.chef/client.rb 中没有关于我在收敛期间使用的 ohai 可选插件和模板的条目,看不到 node['etc']['group']['SOME_USERNAME']['gid'] 属性(即使在第二次收敛后,因为 Ohai 必须第一次运行然后保存属性)。

如何在测试厨房节点上启用 Ohai 插件?

【问题讨论】:

  • 您有没有找到可行的解决方案?我遇到了same issue
  • 不幸的是不是@TrinitronX。我继续前进,并决定这正是 Test Kitchen 的运作方式。
  • 所以事实证明......我的问题相似但不同(由于另一个问题呈现出相同的症状)。经过一段时间的修补,我能够让test-kitchenclient.rb 输出正确的格式:'ohai.optional_plugins = ': [:Passwd]

标签: chef-infra test-kitchen ohai-gem


【解决方案1】:

我对您的问题没有确切的答案,但要知道的一件事是,在运行测试厨房时,对被测配方中节点对象的任何引用都不会从一次运行到实际节点对象下一个,因为它没有被保存回任何厨师服务器。每次运行都是一种“干净的石板”。您可以在一次运行时将节点对象保存到本地文件中,然后稍后再次访问它,但据我所知,实际上无法在食谱中轻松地从测试厨房中更改 ohai 数据。您可以执行以下操作来保存它并在测试中获取它:

http://www.hurryupandwait.io/blog/accessing-chef-node-attributes-from-kitchen-tests

不确定这是否很有帮助,但我认为这可能是相关的

【讨论】:

  • 谢谢,这可能是它对我不起作用的原因,即使我 ohai.optional_plugins 在测试节点上向 client.rb 添加了正确的行。我将此标记为已解决,因为此问题与 Test Kitchen 本身的运行方式有关(如您所说,属性不会保存回任何厨师服务器)
【解决方案2】:

试试

client_rb:
    ohai.optional_plugins: [':Passwd']

【讨论】:

  • 这会将ohai.optional_plugins [:Passwd] 添加到/home/vagrant/.chef/client.rb。但我仍然不能在模板中使用这样的属性:node['etc']['group']['SOME_USERNAME']['gid']。即使我收敛了两次(因为 Ohai 需要运行并收集属性),或者使用操作 :reload 添加到配方资源“ohai”的开头以重新加载 Ohai 属性。如何验证节点上是否启用了插件?我正在使用的模板在启用了 Passwd 插件的常规节点上工作。
【解决方案3】:

我能够在最近的 Chef 版本 18.0.6 中使用 .kitchen.yml 中的以下内容:

provisioner:
  name: chef_zero
  client_rb:
    'ohai.optional_plugins = ':
        - :Passwd

在哈希键中包含 = 等号作为带引号的字符串 ('foo =': bar) 会强制 test-kitchen 正确模板化 client.rb

ohai.optional_plugins =  [:Passwd]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-07-21
    • 1970-01-01
    • 2017-07-29
    • 1970-01-01
    相关资源
    最近更新 更多