问题标签 [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 不能在幂等模式下运行?
这是我action :create
的自定义 LWRP,但它始终运行。我想做一个幂等动作。
这是我的实现:
为什么最后一行不起作用@new_resource.updated_by_last_action(true)
?
chef-infra - 当我创建 LWRP 时,为什么我的全局资源在 Chef 资源上下文中为零
自定义 LWRP 的创建报告资源在 Chef 的资源上下文中为零。这是我的第一步?
但是,我将全局变量值保存在其他局部变量中。像这样:
然后,问题就解决了。
全局变量在 Chef 资源上下文中是否存在问题?
ruby - 厨师 LW 资源属性默认值如何引用另一个属性?
我正在尝试将一个资源属性的默认值设置为另一个属性的值。
我正在为我正在构建的 tomcat 食谱定义一个包含以下定义的资源。我想拥有可以独立设置的“名称”和“服务名称”属性。如果未设置服务名称,我希望它默认为“名称”提供的任何内容。
以下不符合我的预期:
注意第二行末尾的 ":default => :name"。当我在配方中的新块中引用我的资源时
属性值被分配为
这不是我所期望的。除非明确设置,否则我希望 service_name 为“foo_bar”。
我试过了
但那些不编译。
有没有办法做我想做的事?
ruby - chef only_if 属性等于 true
问题:我有一个主厨语句,只有在属性为“真”时才应该运行。但它每次都运行。
预期行为:default[:QuickBase_Legacy_Stack][:dotNetFx4_Install] = "false"
不应安装 dotnet4 。
实际行为:无论属性设置为什么,它都会安装 dotnet4。
我的代码:
属性文件:
配方文件:
chef-infra - 在 Chef LWRP 中使用 git 资源
我正在尝试使用 LWRP(使用 Chef 10)来创建我自己的部署资源,但它会引发错误,并且我无法在文档中找到任何示例。
我的资源文件如下所示:
当我尝试使用此资源时,我收到以下错误:
跟踪中引用的提供程序文件块如下:
我已经尝试打印出来@new_resource.deploy_tag
,它包含我期望的值,所以我认为 git 资源在 LWRP 中无法正常工作,但我无法找到任何指向的文档我应该怎么称呼这个东西。有什么建议么?
实际答案:
我显然需要在使用资源块之前创建一个局部变量,如下所示:
ruby - 如何访问食谱中的 Chef LWRP 属性
使用某些默认厨师资源,可以在调用它们后访问它们的某些属性
如何在自定义 LWRP 中实现这一点(这是一个示例)
在此提供程序中,我试图将 的属性更新new_resource.full_path
为等于文件资源的路径
但是,当我尝试访问resource.full_path
配方时,它nil
不是预期的/path/to/my/resource/relative/path
我知道这个例子相当做作,真实世界的应用程序/原因可以在这里的默认资源/提供者中看到https://github.com/peterjmit/chef-ssl-cert
chef-infra - Chef:cookbook_file/template 资源的嵌套 LWRP 问题
我写了几本 LWRP 手册来安装和管理一些服务(Monit 和 Omnicheck)。它们提供的功能之一是让您提供将与模板或 cookbook_file 资源一起使用的文件。
我发现当我调用这些资源中的任何一个时,我必须提供“cookbook new_resource.cookbook”才能让它在给定文件的调用说明书中而不是在 LWRP 的说明书中查找。
这一切都很好,直到显然调用嵌套。在这种情况下,如果您使用 Omnicheck LWRP 设置新实例并选择通过 Monit 运行它,它将通过 Monit LWRP 为您更新 Monit。这适用于作为 LWRP 食谱的一部分创建的默认 Omnicheck 作业,但是当我尝试从另一本食谱创建新的 Omnicheck 作业时,Monit LWRP 阻塞并抱怨无法找到模板资源的文件.
问题是有问题的模板文件在 Omnicheck 食谱中,但 Monit LWRP 中的 new_resource.cookbook 正在评估顶级食谱而不是 Omnicheck 食谱。
所以路径看起来像:
应用程序 -> Omnicheck -> 监控
在此实例中,Monit LWRP 中的 new_resource.cookbook 值为“application”而不是“Omnicheck”。
由于 new_resource.cookbook 似乎不是我需要/想要的,我如何确定 LWRP 调用者的食谱?
相关错误类似于:
chef-infra - 如何跳过资源:在需要时创建操作
我有一个自定义 LWRP,只有一个:create
操作(也设置为默认操作)。
现在,每次我收敛我的节点时,都会执行 LWRP 操作以增加更新资源的最终计数。我注意到其他资源上有消息“(最新)”,所以我想知道:
如果没有必要,如何防止我的 LWRP 运行?
我的 LWRP 只是一小部分标准 Chef 资源,所以我猜有一种方法可以收集它们的所有状态并将其从我的包装器资源中推出。
ruby - LWRP 纯 ruby 代码与其他说明书资源执行顺序
我在试图理解发生了什么时遇到了麻烦,为什么尽管代码放在最后,但为什么要先执行纯 ruby 代码,这是操作 :install 包含的内容的一部分:
请忽略我没有放置变量定义的事实,并且知道它们定义明确。问题是当这部分 lwrp 被执行时
它无法找到#{installation_path}\\bin\\mysql.exe
,因为它尚未安装,尽管该块在动作结束时。
谁能指出我的错误是什么?为什么其他(在这种情况下已在 Windows LWRP 中定义)资源在最后而不是开始时执行?我该如何解决?
chef-infra - 将 lwrp 与 chef-solo 一起使用
我正在使用 chef-solo 和 librarian-chef 来管理我的服务器。这是我在本地的结构:
Cheffile
Cheffile.lock
cookbooks
data_bags
Gemfile
Gemfile.lock
.git
.gitignore
nodes
README.md
roles
tmp
目录中的每个节点nodes/
都定义了一个角色,并且我在角色中添加了大部分通用属性。
我已将nrpe 食谱包含在其中一个角色中,它适用于通用部分:
```
} 覆盖属性(属性)
```
我现在正在尝试使用食谱提供的 LWRP在厨师创建的 nrpe.cfg 中设置检查
我能想到的任何语法似乎都不起作用。要么以语法错误退出,knife solo bootstrap nodename
要么完成,但没有在节点上添加任何内容。有关如何添加此内容的任何见解:
nagios_nrpecheck 'check_load' do
command "#{node['nagios']['plugin_dir']}/check_load"
warning_condition '6'
critical_condition '10'
action :add
end
在nrpe
上面的角色文件中的块将不胜感激。
谢谢!