问题标签 [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 回答
315 浏览

powershell - 将环境变量传递给 LWRP 中 powershell_script 中的资源 gaurd

我有一个 LWRP,其提供者操作看起来像这样。我想将环境变量传递给资源守卫:

在上面的示例中,我想要做的是创建一个新文件,如果该文件尚不存在。当我执行此操作时,每次都会创建新文件。我希望第二次守卫会执行并且不会重新创建资源。我认为正在发生的事情是我无法像在代码块中那样使用警卫中的环境变量。

请注意,我的现实生活中的问题比这要复杂得多,而且我不只是在寻找一种方法来创建不存在的文件。我需要知道如何使用“not-if”块内的轻量级资源中指定的属性。

0 投票
1 回答
688 浏览

ruby - 为包装好的说明书添加提供者或扩展 LWRP

(对不起链接,我不能发布超过两个..)我正在尝试将提供程序添加到包含另一个包含 LWRP 的食谱的食谱中。

包装好的食谱是平衡 Python 主管:[github.com/poise/supervisor.git][1] 我正在使用 Berkshelf 指向 Chef 来导入它:

在我的食谱中:

..我希望通过“新”操作向其中一个主管资源添加提供者。

以下是“导入”的提供者:[github.com/poise/supervisor/blob/master/providers/service.rb][1]

我希望添加另一个名为 action “reload” 的提供程序,最终将调用supervisorctl reread

我在这里和那里尝试了很多例子,但没有运气:来自 gitHub:chef_extend_lwrp

我试过 docs.chef.io lwrp_custom_provider_ruby 和 neethack.com/2013/10/understand-chef-lwrp-heavy-version/

并试图模仿 Seth Vargo 的答案和示例:github.com/opscodecookbooks/jenkins/blob/8a2fae71cd994704b09924e9a14b70b9093963a3/libraries/credentials_password.rb

github.com/poise/supervisor/blob/master/providers/service.rb

github.com/poise/supervisor.git

但看起来 Chef 没有正确导入代码:

当我将我的库导入写为:(my_enable_service 已定义但我已将其从本示例中删除)

我的食谱名称是:“my_supervisor”,我的库文件是“service.rb”

我也尝试过来自 stackoverflow 的许多答案,但我无法在此处发布,因为我缺乏声誉点 :( 我已经看到了很多来自 Seth Vargo 的参考资料,我希望他会看到我的问题;)

0 投票
1 回答
1273 浏览

chef-infra - yum_repository 资源在哪里定义?

对于专家来说,这可能会更容易。

我正在学习编写自定义 LWRP,因此试图理解已经编写的那个……yum食谱。可以在这里找到:http: //community.opscode.com/cookbooks/yum

问题:yum_repository在上面的食谱中,资源定义 在哪里(哪个文件/行) ?

我浏览了这本食谱的每一行,并运行了各种组合grep搜索这个字符串,但没有任何帮助。

您能帮我了解yum_reposiroty资源在上面的食谱中定义/编码的位置和方式吗?

谢谢。

更新:

我想我应该更清楚。我试图了解什么yum_repository是有效的资源名称,而yum_spiderman不是有效的资源名称。换句话说,关键字yum_repository必须已在食谱中的某个地方定义。我知道有一个名为的资源 n 提供者repository。但是,我的问题是关于yum_repository(注意:我想知道yum_资源名称中的部分在哪里)。或者可能是我的解释是错误的,但问题仍然存在。

0 投票
1 回答
1443 浏览

chef-infra - 您如何将 LWRP 与厨师一起使用?

我是厨师新手,我正在尝试设置一个包装食谱来管理logstash。我正在包装的食谱使用 LWRP。

如何使用 LWRP 管理配置文件?

这是我到目前为止的包装食谱

食谱/default.rb

属性/default.rb

伯克斯文件

根据文档,在 .kitchen.yml 中有一个使用 LWRP 的示例,但我不确定如何使用它。

我在哪里放置 LWRP 定义?
包装食谱中的 LWRP 是什么样的?

更新

这是我尝试过的:

recipe/default.rb我添加了以下内容

然后在里面templates/default/config/foobar_output_elasticsearch.conf.erb我有以下

然而,当我运行厨房收敛时,文件未创建

更新2

根据 irc 频道中的 cheeseplus ,您应该能够像这样使用 LWRP:

https://github.com/lusis/chef-logstash/issues/367

不幸的是,它不起作用。

更新3

我也尝试在我的 default.rb 中设置属性,如下所示:

更新4

我也尝试过直接在资源中设置参数,但没有成功。

更新5

看这个例子,我也尝试了下面的语法。

0 投票
1 回答
526 浏览

chef-infra - 厨师 lwrp 的资源定义中是否需要 attr_accessor?

我使用 chefdk 创建了一个 LWRP,并遵循文档和一些博客文章。

资源

提供者

在食谱中使用此 LWRP 时,我会收到以下错误:

我可以修复它的唯一方法是添加attr_accessor :name资源定义。但我从未将其视为任何文档中的要求。从文档中,我假设 Chefattr_accessor在资源/提供者编译期间负责设置任何属性。谁能确认我的发现或解释到底发生了什么?

谢谢。

0 投票
3 回答
1964 浏览

ruby - 在 Chef 的提供者的 default.rb 中使用 File::read

我正在尝试创建一个 LWRP,它将调用在其内部定义的资源。我的食谱的结构如下:

在此处输入图像描述

在机器说明书的提供者中,我有一个代码片段如下:

该代码只是试图读取一个 json 文件,我正在使用 File::read 。

我不断收到如下错误:

加载错误

无法加载此类文件 -- ::File

有谁知道我如何在我的 LWRP 提供程序中使用 File::read ?

0 投票
1 回答
475 浏览

ruby - Chef LWRP 中的可变范围

我有以下问题,我认为这是因为我不了解 Chef LWRP 中的变量范围。

您可以查看https://github.com/jkleinlercher/chef_problems上的食谱并简单地测试厨房的行为。

尽管我定义了以下非常相似的资源,但我认识到,属性“颜色”继承自先前定义的资源。属性“颜色”默认为“['蓝色']”,并且在提供程序中,元素“洋红色”被添加到数组中。但是,第二个和第三个资源从前一个资源继承了整个数组。这对我来说很奇怪......

recipes/default.rb 中的资源定义:

在 kitchen blend 的输出中,您会看到变量 new_resource.colors 继承了先前资源的值:

也许你可以帮我找出问题出在哪里。

0 投票
1 回答
4547 浏览

ruby - 在 Chef 中迭代数组属性

我正在使用 Chef 配置在 AWS 中创建机器。创建机器时,我为其添加了一个属性,即 JSON 文件数组。在我运行的食谱中,我想遍历这个数组并在机器上创建一个模板文件。机器已配置,但在遍历数组属性时,我收到一条错误消息:

nil:NilClass 的未定义方法“每个”

我尝试查看在我的服务器上创建的节点文件,你猜怎么着?JSON 文件数组已添加到节点文件中!我不确定为什么它会不断抛出该错误。有任何想法吗?

代码示例如下:

机器.rb

管理员角色.rb

日志

0 投票
0 回答
181 浏览

ruby - 如何将不同的提供者与 Chef 部署资源相结合?

我正在尝试创建一个配方来部署应用程序。

我想将Chef deploy 资源Chef Mercurial provider结合起来。该提供程序的自述文件表明它很容易与部署资源一起使用。但是,我不确定如何执行此操作。

mercurial 资源按预期工作:

但是我遇到了提供商的问题

我得到的错误是NoMethodError: undefined method 'ssh_key' for Chef::Resource::Deploy. 这可能是因为资源需要 ssh_key 属性。我不知道在使用部署资源时如何传递此属性。

我怎样才能使这项工作?有没有人举例说明如何将 Chef 部署资源Chef Mercurial 提供程序一起使用?

0 投票
2 回答
464 浏览

ruby - 厨师 LWRP “nil:NilClass 的未定义方法 'checkname'”

我正在尝试为 Chef 食谱编写 LWRP,但遇到了一个奇怪的问题,即该属性似乎在一行和nil下一行都完全有效。

从提供程序代码中,source在线错误:

以及load_current_resource只是表明它初始化的方法:

任何帮助深表感谢。