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 订阅者在空闲几个小时后停止接收新发布的消息

新发布的应用程序上的完全影子 apk 问题

iTunes -- iTunes 需要多长时间来更新 Store 上新发布的应用程序版本

关于腾讯云新发布的CynosDB,干货都在这里

新发布的自研数据库 OceanBase 有哪些看点?

华为新发布的方舟编译器,是真牛批还是吹牛皮?