[英]chef-solo run getting metadata error after upgrading to 12.0.0
我有一些ubuntu機器,我需要配置相同的,所以我使用廚師獨奏對廚師烹飪書在一個共享目錄掛載只讀來實現這一目標。 從廚師版本10開始,我一直使用廚師獨奏超過一年。今天,在使用打包機重建虛擬機之后(我使用虛擬機測試我的食譜,然后在“真實”機器上使用它們,並定期重建它們所以“新鮮”)我的食譜開始失敗,錯誤:
ERROR: Cookbook loaded at path(s) [/chef/cookbooks/ack-grep] has invalid metadata: The `name' attribute is required in cookbook metadata
我已經在多台機器上多次使用這些烹飪書,在VM中反復測試它們,但我注意到新重建的VM安裝了廚師12.0.0。 運行廚師11的老VM仍然很好用。 這適用於我的每一本食譜。
我開始使用谷歌調查和研究這個問題,我在該主題上找到的所有內容都說將“name”條目放在metadata.rb文件中。 但我的metadata.rb文件已包含“名稱”條目。 例如,這是我的元數據文件(編輯后不會在google-able論壇中發布我的個人信息):
---- Begin metadata.rb ---------
name 'ack-grep'
maintainer 'me'
maintainer_email 'me@example.com'
license 'All Rights Reserved'
description 'Installs/Configures ack-grep'
long_description IO.read(File.join(File.dirname(__FILE__), 'README.md'))
version '0.1.0'
------ End metadata.rb -------
這本食譜中的單一食譜非常簡單:
------開始default.rb -------
# # Cookbook Name:: ack-grep # Recipe:: default package 'ack-grep' do action :install end
------結束default.rb -------
我在研究時讀到的一篇文章說創建metadata.json文件會有所幫助,所以我運行了命令:
刀食譜元數據ack-grep
此命令創建了一個metadata.json文件,該文件包含一個類似的“name”字段,其中包含與metadata.rb文件相同的信息以及許多其他信息,均為json格式。 但是再次運行相同的chef-solo命令會導致完全相同的錯誤消息。
我猜測,因為它抱怨元數據中缺少字段,meta.rb和metadata.json文件中都存在,我錯過了其他內容並且錯誤消息是錯誤的。 任何人都有比這更好的信息,或知道發生了什么? 甚至可能如何繞過/修復它?
快速解決方法是使用--bootstrap-version選項指定舊版本的Chef。
“刀獨奏(准備/引導)用戶@主機-P密碼--bootstrap-version 11.16.4-1”
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.