问题标签 [lwrp]

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.

0 投票
1 回答
217 浏览

chef-infra - 厨师 lwrp 可以将答案作为变量(假或真)返回以供以后在食谱中使用吗?

所以问题很简单。如果我的 lwrp 所做的更改是假的还是真的,我能得到答案吗?我知道它在 Chef Logs 中可见,但我的想法是稍后在配方代码中使用结果。

0 投票
1 回答
122 浏览

chef-infra - Chef 'package' 资源作为 LWRP

我想扩展“包”资源并将其作为 LWRP 提供 - 从其他食谱中调用的食谱名称包。

是否需要手动将package资源中的所有属性重写为cookbookname/resources/package.rb?

有没有办法简单地从 Chef 源代码中获取现有的源代码,或者只有作为翻译器并维护所有这些的方法?

0 投票
2 回答
222 浏览

ruby - 如何为自定义 Chef 资源编写回归测试?

给定最小的例子

我想写单元测试spec/unit/resources/novowel_spec.rb

  • 名称的资源“novowel”应接受“k”
  • 名称的资源“novowel”应接受“&”
  • 名称的资源“novowel”不应接受“a”
  • 名称的资源“novowel”不应接受“mm”

确保即使由于某种原因更改了正则表达式,名称属性仍然可以正常工作。

我浏览了几本顶级厨师食谱,但找不到此类测试的参考资料。

怎么做到呢?Chef::Resource如果这有助于完成任务,请随意提供具有显式子类化的更复杂示例。

更新 1:当属性不适合时,厨师不会失败regex吗?显然这不应该工作:

但是chef-apply(12.13.37) 并没有抱怨r<oo=tnot matching owner_valid_regex。它只是收敛,好像owner没有提供一样。

0 投票
1 回答
190 浏览

ruby - Chef LWRP 的属性方法是什么,我可以传递什么?

我在厨师资源中有以下属性:

我想打破它,让它看起来不错,所以我这样做了:

但是在收敛时出现错误:

所以我认为attribute资源文件中的 s 只是接受一组参数并将 [..args..] 传递给它的方法。为什么这不起作用?我想我对在这种情况下什么类型的 ruby​​ 对象属性以及它们的行为感到困惑。

0 投票
1 回答
29 浏览

chef-infra - 将 Chef LWRP 范围限定回包含被调用资源的说明书

我有一本包含 LWRP 和“文件”文件夹中的一些文件的食谱。

另一个菜谱中调用此资源的菜谱将查看其自己的菜谱的“文件”目录,而不是资源所在菜谱的文件。

我尝试使用 cookbook_name,但这仍然解决了调用资源的配方,因此下面的代码不起作用。

如何在无需硬编码的情况下引用资源所在的说明书的文件目录?

0 投票
1 回答
565 浏览

chef-infra - 在 LWRP 中使用 include_recipe 而不是 run_context.include_recipe

我开始在我的 LWRP 中使用 include_recipe 并且它只是工作 - 不知道 run_context.include_recipe。我不确定我是否理解其中的区别,并且在互联网上阅读了一些内容,这听起来像是常规的 include_recipe 甚至不应该在 LWRP 中工作?

它似乎工作正常,但只是好奇我是否在这里做错了什么。我不希望 include_recipe 每次调用资源时都运行食谱,我只是像常规包含一样使用它——依赖于某些食谱来设置东西的资源首先包含它们。

我假设包含的配方仅在第一次调用资源时运行,如果多次调用资源,则不会重新运行 included_recipe。

0 投票
1 回答
565 浏览

exception-handling - 厨师异常处理->在 :run_failed 上使用 chat_message (LWRP) 的最简单方法

我们在节点上安排了 chef-client,我想设置异常处理,以便在我们的聊天中报告错误。

以前我在这里得到帮助来写一个 LWRP 来聊天

现在,在我的食谱deploy_stuff中,我想要一种使用 LWRP 报告异常的简单chat_message方法,我尝试了这个:

但是它没有用:

什么undefined method chat_message意思 - 我不能在这里使用 LWRP 吗?

我确信chat食谱包括在内,因为我的食谱调用中的其他代码chat_message工作正常。

0 投票
0 回答
63 浏览

ruby - 在 Chef 中使用自定义 LWRP 时出错

我在 Chef 的食谱中使用自定义 LWRP。我已经执行了以下步骤来做到这一点:

  1. 使用包含必要属性和操作的 resource.rb 文件创建资源文件夹。
  2. 使用 provider.rb 文件创建一个 providers 文件夹,其中包含提到的每个操作的定义
  3. 更新了我的食谱以使用 LWRP。

我有一个:normalize_customer_domain定义如下的动作

我在配方中使用这个 LWRP

azuredns食谱名称在哪里,并且dns是自定义 LWRP 的名称。所有属性都在资源文件中这样定义

我遇到的问题是,当我的配方执行时,它没有执行 LWRP 中指定的操作。provider.rb 中指定的操作执行一个简单的puts操作。没有输出显示该操作没有被执行/执行。

这个问题的原因可能是什么?请建议我可以采取的必要步骤来解决此问题。

0 投票
0 回答
63 浏览

ruby - Chef LWRP 呼叫问题

我正在为食谱创建 LWRP azuretrafficmanager,步骤如下

  • 创建的资源:traffic_manager.rb

    /li>
  • 创建的提供者:traffic_manager.rb

    /li>
  • 然后我在我的食谱中称它为

    /li>
  • 上述调用 lwrp 的方法不起作用,但是当我尝试第二种方法时:

    /li>
  • 按照这个调用lwrp的方法(run_action),它工作得很好。

问题是,为什么调用 lwrps 的第一种语法不起作用?

0 投票
1 回答
178 浏览

chef-infra - 在 Chef Provider LWRP 中使用目录资源

我正在尝试使用 Chef LWRP 下的目录资源,但无法访问资源块内的属性,有没有办法做到这一点。或者我完全错了,需要不同的方法来实现这一点。

my-cookbook/providers/default.rb

@new_resource.name线上的not_if {node["#{@new_resource.name}"].include? "test"}被评估为 nilClass,

虽然它得到了正确的directory node["#{@new_resource.name}"] do在线评估

谢谢