Poise Cookbook 因编译错误而失败

问题描述

我在 poise cookbook 上遇到编译错误。从昨天开始,我开始收到此错误。最近有什么改变吗?或者我们有解决这个问题的方法吗??

================================================ ================================ 配方编译错误 /Users/admin/bootstrap/chef/conf/local-mode-cache/cache/cookbooks/poise-archive/libraries/default.rb

参数错误 ------------- 错误的参数数量(给定 2,预期为 1)

Cookbook Trace:(最近的电话在前) ---------------------------------------- /Users/admin/bootstrap/chef/conf /local-mode-cache/cache/cookbooks/poise/files/halite_gem/poise/helpers/option_collector.rb:98:in option_collector_attribute' /Users/admin/bootstrap/chef/conf/local-mode-cache/cache/cookbooks/poise/files/halite_gem/poise/helpers/option_collector.rb:83:in 属性'
/Users/admin/bootstrap/chef/conf/local-mode-cache/cache/cookbooks/poise/files/halite_gem/poise/helpers/template_content.rb:143:in attribute' /Users/admin/bootstrap/chef/conf/local-mode-cache/cache/cookbooks/poise-archive/files/halite_gem/poise_archive/resources/poise_archive.rb:67:in class:Resource'
/Users/admin/bootstrap/chef/conf/local-mode-cache/cache/cookbooks/poise-archive/files/halite_gem/poise_archive/resources/poise_archive.rb:39:in <module:PoiseArchive>' /Users/admin/bootstrap/chef/conf/local-mode-cache/cache/cookbooks/poise-archive/files/halite_gem/poise_archive/resources/poise_archive.rb:28:in module:Resources'
/Users/admin/bootstrap/chef/conf/local-mode-cache/cache/cookbooks/poise-archive/files/halite_gem/poise_archive/resources/poise_archive.rb:25:in <module:PoiseArchive>' /Users/admin/bootstrap/chef/conf/local-mode-cache/cache/cookbooks/poise-archive/files/halite_gem/poise_archive/resources/poise_archive.rb:24:in '
/Users/admin/bootstrap/chef/conf/local-mode-cache/cache/cookbooks/poise-archive/files/halite_gem/poise_archive/resources.rb:17:in <top (required)>' /Users/admin/bootstrap/chef/conf/local-mode-cache/cache/cookbooks/poise-archive/files/halite_gem/poise_archive/cheftie.rb:17:in '
/Users/admin/bootstrap/chef/conf/local-mode-cache/cache/cookbooks/poise-archive/libraries/default.rb:19:in `'

相关文件内容: ---------------------- /Users/admin/bootstrap/chef/conf/local-mode-cache/cache/cookbooks/poise/files/halite_gem/poise /helpers/option_collector.rb:

91: #@param name [String,Symbol] 属性名称 定义。 92:#@param default [Hash] 的认值 选项。 93:#@param parser [Proc,Symbol] 可选解析器 方法。如果一个符号是 94: # 作为方法调用 自己。采用非哈希值并返回 95:# hash of 它的解析表示。 96:#@param force_keys [Array,Set] 会强制97的方法名:

成为选项而不是对父资源的调用。 98>> def option_collector_attribute(name,default: {},parser: nil,

forced_keys: Set.new) 99: raise Poise::Error.new("Parser 必须是 Proc 或 Symbol:#{parser.inspect}") if parser && !(parser.is_a?(Proc) || parser.is_a?(Symbol)) 100: # Cast 到定义时的集合。 101:forced_keys = Set.new(forced_keys) 除非 force_keys.is_a?(Set) 102: # 永远不要让名字被意外地叫出来,因为它真的很奇怪 事物。 103:forced_keys.add(:name) 104:# 与 LWRPBase.attribute 不同,我不关心 Ruby 1.8。世界上最小的 小提琴。 105:define_method(name.to_sym)做|arg=nil, &块| 106: iv_sym = :"@#{name}" 107:

系统信息: ------------ Chef_version=17.0.242 platform=mac_os_x platform_version=10.15.4 ruby​​=ruby 3.0.1p64(2021-04-05 修订) 0fb782ee38) [x86_64-darwin18] program_name=/usr/local/bin//厨师客户端 可执行文件=/opt/chef/bin/chef-client

解决方法

poise-archive 食谱已被弃用并存档了很长时间:

https://github.com/poise/poise-archive

在 Chef Infra 17.0 上,这些 poise_archive 资源应转换为不需要外部说明书的 archive_file 资源:

https://docs.chef.io/resources/archive_file

被破坏的平衡食谱不是一个会被修复的错误。