gpt4 book ai didi

ruby - 如何为 Chef 处理程序安装依赖项?

转载 作者:数据小太阳 更新时间:2023-10-29 07:19:23 26 4
gpt4 key购买 nike

我正在尝试通过 chef_handler lwrp 安装一个 chef handler。此处理程序 (chef-handler-email) 捆绑在一个 gem 中。我正在尝试安装 gem,然后从如下所示的单个配方中打开处理程序:

chef_gem "chef-handler-mail"

chef_handler "MailHandler" do
source 'chef/handler/mail'
arguments :to_address => "root"
action :nothing
supports :exception => true, :report => false
end.run_action(:enable)

如果 gem 已经安装,这工作正常。但是,如果 Gem 尚未安装,我会收到此错误:

[2012-12-09T20:47:56-05:00] FATAL: LoadError: chef_handler[MailHandler] (chef_handler::email line 13) had an error: LoadError: no such file to load -- chef/handler/mail.rb

似乎 chef_handler 资源试图在 chef_gem 执行并为处理程序安装 gem 之前加载处理程序。我显然可以在两步手动过程中完成此操作,其中我有一个单独的安装 gem 的方法,然后转到另一个配置处理程序的方法,但我希望避免多步手动过程。可以通过单一配方完成吗?

最佳答案

我有一个类似的 Chef minitest-chef-handler Recipe :

chef_gem 'minitest'
chef_gem 'minitest-chef-handler'

require 'rubygems'
require 'minitest-chef-handler'

[... some unrelated code ...]

chef_handler "MiniTest::Chef::Handler" do
source "minitest-chef-handler"
arguments :verbose => true
action :nothing
end.run_action( :enable )

尝试在创建 chef_handler 资源之前要求你的 gem,或者可能源应该不同......

关于ruby - 如何为 Chef 处理程序安装依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13793979/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com