Chef/OpsWorks:实例在新发布的 Windows 食谱版本上失败
Posted
技术标签:
【中文标题】Chef/OpsWorks:实例在新发布的 Windows 食谱版本上失败【英文标题】:Chef/OpsWorks: instance failing on newly released Windows cookbook version 【发布时间】:2018-09-02 22:25:21 【问题描述】:使用 windows
食谱版本的 >=3.4.5
版本,我们的实例构建失败,因为我们仍在使用 Chef 11.10 / Berkshelf 3.2.0
。
我将cookbook 'windows', '= 3.4.4'
添加到我们的Berksfile
,但构建仍然失败,因为它仍在加载windows 4.1.1
,即使添加了Berksfile
的条目。
如何覆盖 OpsWorks 以使用 windows 3.4.4
?
这是完整的错误日志:
Recipe Compile Error in /var/lib/aws/opsworks/cache.stage2/cookbooks/windows/resources/auto_run.rb
NoMethodError
-------------
undefined method `property' for #<Class:0x007f72ac6f8b20>
Cookbook Trace:
---------------
/var/lib/aws/opsworks/cache.stage2/cookbooks/windows/resources/auto_run.rb:22:in `class_from_file'
Relevant File Content:
----------------------
/var/lib/aws/opsworks/cache.stage2/cookbooks/windows/resources/auto_run.rb:
21:
22>> property :program_name, String, name_property: true
23: property :path, String, coerce: proc |x| x.tr('/', '\\')
24: property :args, String
25: property :root, Symbol,
26: equal_to: %i(machine user),
27: default: :machine
28:
29: alias_method :program, :path
30:
31: action :create do
【问题讨论】:
我尝试将depends 'windows', '= 3.4.4'
添加到每个metadata.rb
文件中,厨师登录OpsWorks 仍然显示版本4.1.1
已加载
【参考方案1】:
在 berksfile 中添加以下内容,这应该适用于 11+ 版本
食谱'windows','
【讨论】:
【参考方案2】:我通过将其添加到 Berksfile 来解决此问题 食谱'windows','= 2.0.2'
更新食谱,设置。我还将它添加到了错误的 git 分支中,所以花了大约 20 分钟才弄清楚这一点。
【讨论】:
以上是关于Chef/OpsWorks:实例在新发布的 Windows 食谱版本上失败的主要内容,如果未能解决你的问题,请参考以下文章
Google pubsub golang 订阅者在空闲几个小时后停止接收新发布的消息