安裝了以下軟件版本: Berkshelf - 2.0.18 紅寶石 - 2.2.2 流浪 - 1.9.3 測試廚房 - 1.15.0 廚房無業遊民 - 1.1.0 廚師服務器API版本 - 11.0.2測試廚房流浪Berkshelf
我試圖在本地系統上運行測試廚房。 這樣做,我有一個指向chef_api一個berksfile:配置與單一配方貼切
chef_api :config
cookbook 'apt'
這個配置是基於我knife.rb配置。 我最我的寶石通過捆綁 安裝這是我的寶石文件
source 'https://artifactory.mia.ucloud.int/artifactory/api/gems/rubygems' do
gem 'berkshelf', '~> 2.0.18'
gem 'celluloid', '~> 0.16.0'
gem 'celluloid-io', '~> 0.16.1'
gem 'net-http-persistent', '~> 2.9.0'
gem 'test-kitchen'
gem 'kitchen-vagrant'
end
這裏是.kitchen.yml:
---
driver:
name: vagrant
provisioner:
name: chef_solo
platforms:
- name: ubuntu-14.04
driver:
box: ubuntu/trusty64
suites:
- name: default
run_list:
- recipe[apt::default]
- recipe[git::server]
attributes:
- name: core
run_list:
- recipe[ultimate_metadefender_core::default]
我能夠獲得捆綁安裝工作和運行berks安裝工作正常。然而,當我運行一個廚房收斂系統展開時,但隨後到達部署食譜點和失敗,出現以下消息:
-----> Starting Kitchen (v1.15.0)
-----> Converging <core-ubuntu-1404>...
Preparing files for transfer
Preparing dna.json
Resolving cookbook dependencies with Berkshelf 2.0.18...
>>>>>> ------Exception-------
>>>>>> Class: Kitchen::ActionFailed
>>>>>> Message: 1 actions failed.
>>>>>> Failed to complete #converge action: [undefined method `vendor' for
#<Berkshelf::Berksfile:0x007fdd3d161620>] on core-ubuntu-1404
>>>>>> ----------------------
>>>>>> Please see .kitchen/logs/kitchen.log for more details
>>>>>> Also try running `kitchen diagnose --all` for configuration
我再審查日誌,它似乎從測試 - 未來廚房寶石:
-----> Converging <core-ubuntu-1404>...
Preparing files for transfer
Preparing dna.json
Resolving cookbook dependencies with Berkshelf 2.0.18...
Converge failed on instance <core-ubuntu-1404>.
------Exception-------
Class: NoMethodError
Message: undefined method `vendor' for #
<Berkshelf::Berksfile:0x007fdd3d161620>
----------------------
------Backtrace-------
/Users/miker/Projects/hp/cav/infrastructure/configuration/vendor/gems/ruby/2.2.0/gems/test-kitchen-1.15.0/lib/kitchen/provisioner/chef/berkshelf.rb:66:in `block in resolve'
/Users/miker/Projects/hp/cav/infrastructure/configuration/vendor/gems/ruby/2.2.0/gems/thor-0.18.1/lib/thor/shell/basic.rb:19:in `mute'
/Users/miker/Projects/hp/cav/infrastructure/configuration/vendor/gems/ruby/2.2.0/gems/test-kitchen-1.15.0/lib/kitchen/provisioner/chef/berkshelf.rb:61:in `resolve'
/Users/miker/Projects/hp/cav/infrastructure/configuration/vendor/gems/ruby/2.2.0/gems/test-kitchen-1.15.0/lib/kitchen/provisioner/chef/common_sandbox.rb:329:in `block in resolve_with_berkshelf'
/Users/miker/Projects/hp/cav/infrastructure/configuration/vendor/gems/ruby/2.2.0/gems/test-kitchen-1.15.0/lib/kitchen/provisioner/chef/common_sandbox.rb:326:in `synchronize'
/Users/miker/Projects/hp/cav/infrastructure/configuration/vendor/gems/ruby/2.2.0/gems/test-kitchen-1.15.0/lib/kitchen/provisioner/chef/common_sandbox.rb:326:in `resolve_with_berkshelf'
/Users/miker/Projects/hp/cav/infrastructure/configuration/vendor/gems/ruby/2.2.0/gems/test-kitchen-1.15.0/lib/kitchen/provisioner/chef/common_sandbox.rb:260:in `prepare_cookbooks'
/Users/miker/Projects/hp/cav/infrastructure/configuration/vendor/gems/ruby/2.2.0/gems/test-kitchen-1.15.0/lib/kitchen/provisioner/chef/common_sandbox.rb:48:in `populate'
/Users/miker/Projects/hp/cav/infrastructure/configuration/vendor/gems/ruby/2.2.0/gems/test-kitchen-1.15.0/lib/kitchen/provisioner/chef_base.rb:126:in `create_sandbox'
/Users/miker/Projects/hp/cav/infrastructure/configuration/vendor/gems/ruby/2.2.0/gems/test-kitchen-1.15.0/lib/kitchen/provisioner/chef_solo.rb:41:in `create_sandbox'
/Users/miker/Projects/hp/cav/infrastructure/configuration/vendor/gems/ruby/2.2.0/gems/test-kitchen-1.15.0/lib/kitchen/provisioner/base.rb:65:in `call'
/Users/miker/Projects/hp/cav/infrastructure/configuration/vendor/gems/ruby/2.2.0/gems/test-kitchen-1.15.0/lib/kitchen/instance.rb:384:in `block in converge_action'
/Users/miker/Projects/hp/cav/infrastructure/configuration/vendor/gems/ruby/2.2.0/g
ems/test-kitchen-1.15.0/lib/kitchen/instance.rb:527:in `synchronize_or_call'
/Users/miker/Projects/hp/cav/infrastructure/configuration/vendor/gems/ruby/2.2.0/gems/test-kitchen-1.15.0/lib/kitchen/instance.rb:489:in `block in action'
/Users/miker/.rvm/rubies/ruby-2.2.2/lib/ruby/2.2.0/benchmark.rb:288:in `measure'
/Users/miker/Projects/hp/cav/infrastructure/configuration/vendor/gems/ruby/2.2.0/gems/test-kitchen-1.15.0/lib/kitchen/instance.rb:488:in `action'
/Users/miker/Projects/hp/cav/infrastructure/configuration/vendor/gems/ruby/2.2.0/gems/test-kitchen-1.15.0/lib/kitchen/instance.rb:380:in `converge_action'
/Users/miker/Projects/hp/cav/infrastructure/configuration/vendor/gems/ruby/2.2.0/gems/test-kitchen-1.15.0/lib/kitchen/instance.rb:359:in `block in transition_to'
/Users/miker/Projects/hp/cav/infrastructure/configuration/vendor/gems/ruby/2.2.0/gems/test-kitchen-1.15.0/lib/kitchen/instance.rb:358:in `each'
/Users/miker/Projects/hp/cav/infrastructure/configuration/vendor/gems/ruby/2.2.0/gems/test-kitchen-1.15.0/lib/kitchen/instance.rb:358:in `transition_to'
/Users/miker/Projects/hp/cav/infrastructure/configuration/vendor/gems/ruby/2.2.0/gems/test-kitchen-1.15.0/lib/kitchen/instance.rb:135:in `converge'
/Users/miker/Projects/hp/cav/infrastructure/configuration/vendor/gems/ruby/2.2.0/gems/test-kitchen-1.15.0/lib/kitchen/command.rb:197:in `public_send'
/Users/miker/Projects/hp/cav/infrastructure/configuration/vendor/gems/ruby/2.2.0/gems/test-kitchen-1.15.0/lib/kitchen/command.rb:197:in `run_action_in_thread'
/Users/miker/Projects/hp/cav/infrastructure/configuration/vendor/gems/ruby/2.2.0/gems/test-kitchen-1.15.0/lib/kitchen/command.rb:169:in `block (2 levels) in run_action'
/Users/miker/Projects/hp/cav/infrastructure/configuration/vendor/gems/ruby/2.2.0/gems/logging-1.8.2/lib/logging/diagnostic_context.rb:323:in `call'
/Users/miker/Projects/hp/cav/infrastructure/configuration/vendor/gems/ruby/2.2.0/gems/logging-1.8.2/lib/logging/diagnostic_context.rb:323:in `block in create_with_logging_context'
----End Backtrace-----
在回顧創業板berksfile.rb文件存在使用berksfile創建,然後這個對象最終被稱爲與供應商的方法,不存在一個對象。我不確定此時應該採取何種措施。如果任何人都可以在這個問題上提供一些幫助,將不勝感激。由於我們所在的廚師服務器版本的原因,我停留在這些特定版本上。
根據我在文檔中閱讀的內容,後者的Berkshelf版本需要Berkshelf API版本或Chef API版本12.4或更高版本。不幸的是,在我的情況下都不可能達到
我在問題中添加了其他信息。根據我發現使用不同的版本是不可能的,由於廚師服務器的版本,我們正在使用。 – thxmike
我們添加berks API端點的全部原因是因爲那個時代的Berks基本上根本不工作,它不得不在版本解決方案上作弊。您比Berks 2.x更好地手動管理依賴項。我們不支持它,它遠遠超出了生命的終點。 – coderanger
如果你想過去生活,你只需要使用2014年版本的東西。這就是我們現在分發快照安裝程序(ChefDK)的原因。 – coderanger