问题标签 [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.
chef-infra - 厨师 lwrp 可以将答案作为变量(假或真)返回以供以后在食谱中使用吗?
所以问题很简单。如果我的 lwrp 所做的更改是假的还是真的,我能得到答案吗?我知道它在 Chef Logs 中可见,但我的想法是稍后在配方代码中使用结果。
chef-infra - Chef 'package' 资源作为 LWRP
我想扩展“包”资源并将其作为 LWRP 提供 - 从其他食谱中调用的食谱名称包。
是否需要手动将package
资源中的所有属性重写为cookbookname/resources/package.rb
?
有没有办法简单地从 Chef 源代码中获取现有的源代码,或者只有作为翻译器并维护所有这些的方法?
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=t
not matching owner_valid_regex
。它只是收敛,好像owner
没有提供一样。
ruby - Chef LWRP 的属性方法是什么,我可以传递什么?
我在厨师资源中有以下属性:
我想打破它,让它看起来不错,所以我这样做了:
但是在收敛时出现错误:
所以我认为attribute
资源文件中的 s 只是接受一组参数并将 [..args..] 传递给它的方法。为什么这不起作用?我想我对在这种情况下什么类型的 ruby 对象属性以及它们的行为感到困惑。
chef-infra - 将 Chef LWRP 范围限定回包含被调用资源的说明书
我有一本包含 LWRP 和“文件”文件夹中的一些文件的食谱。
另一个菜谱中调用此资源的菜谱将查看其自己的菜谱的“文件”目录,而不是资源所在菜谱的文件。
我尝试使用 cookbook_name,但这仍然解决了调用资源的配方,因此下面的代码不起作用。
如何在无需硬编码的情况下引用资源所在的说明书的文件目录?
chef-infra - 在 LWRP 中使用 include_recipe 而不是 run_context.include_recipe
我开始在我的 LWRP 中使用 include_recipe 并且它只是工作 - 不知道 run_context.include_recipe。我不确定我是否理解其中的区别,并且在互联网上阅读了一些内容,这听起来像是常规的 include_recipe 甚至不应该在 LWRP 中工作?
它似乎工作正常,但只是好奇我是否在这里做错了什么。我不希望 include_recipe 每次调用资源时都运行食谱,我只是像常规包含一样使用它——依赖于某些食谱来设置东西的资源首先包含它们。
我假设包含的配方仅在第一次调用资源时运行,如果多次调用资源,则不会重新运行 included_recipe。
exception-handling - 厨师异常处理->在 :run_failed 上使用 chat_message (LWRP) 的最简单方法
我们在节点上安排了 chef-client,我想设置异常处理,以便在我们的聊天中报告错误。
以前我在这里得到帮助来写一个 LWRP 来聊天
现在,在我的食谱deploy_stuff
中,我想要一种使用 LWRP 报告异常的简单chat_message
方法,我尝试了这个:
但是它没有用:
什么undefined method chat_message
意思 - 我不能在这里使用 LWRP 吗?
我确信chat
食谱包括在内,因为我的食谱调用中的其他代码chat_message
工作正常。
ruby - 在 Chef 中使用自定义 LWRP 时出错
我在 Chef 的食谱中使用自定义 LWRP。我已经执行了以下步骤来做到这一点:
- 使用包含必要属性和操作的 resource.rb 文件创建资源文件夹。
- 使用 provider.rb 文件创建一个 providers 文件夹,其中包含提到的每个操作的定义
- 更新了我的食谱以使用 LWRP。
我有一个:normalize_customer_domain
定义如下的动作
我在配方中使用这个 LWRP
azuredns
食谱名称在哪里,并且dns
是自定义 LWRP 的名称。所有属性都在资源文件中这样定义
我遇到的问题是,当我的配方执行时,它没有执行 LWRP 中指定的操作。provider.rb 中指定的操作执行一个简单的puts
操作。没有输出显示该操作没有被执行/执行。
这个问题的原因可能是什么?请建议我可以采取的必要步骤来解决此问题。
ruby - Chef LWRP 呼叫问题
我正在为食谱创建 LWRP azuretrafficmanager
,步骤如下
创建的资源:
/li>traffic_manager.rb
创建的提供者:
/li>traffic_manager.rb
然后我在我的食谱中称它为
/li>上述调用 lwrp 的方法不起作用,但是当我尝试第二种方法时:
/li>按照这个调用lwrp的方法(run_action),它工作得很好。
问题是,为什么调用 lwrps 的第一种语法不起作用?
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
在线评估
谢谢