2015-02-08 70 views
1

我遇到了廚師獨奏配置程序出現錯誤的問題 Chef :: Exceptions :: CookbookNotFound:Cookbook apt not found。配備chef_ solo vagrant box

有什麼想法可能會出現問題,我應該如何解決這個問題?

  • 主持人:64位Windows 7,客人:Ubuntu的12.04
  • VirtualBox的4.3.20
  • ChefDK 0.4.0
  • 流浪1.7.2
  • 流浪插件:
    • 無業遊民,berkshelf (4.0.2)
    • vagrant-omnibus(1.4.1)
    • vagrant-share(1.1.3,system)

流浪輸出:

PS C:\VagrantBoxes\mybox> vagrant reload --provision 
    default: The Berkshelf shelf is at "C:/Users/dmit77/.berkshelf/vagrant-berkshelf/shelves/berkshelf20150208-6588-1a3oox5-default" 
==> default: Sharing cookbooks with VM 
==> default: Attempting graceful shutdown of VM... 
==> default: Clearing any previously set forwarded ports... 
==> default: Clearing any previously set network interfaces... 
==> default: Preparing network interfaces based on configuration... 
    default: Adapter 1: nat 
==> default: Forwarding ports... 
    default: 22 => 2222 (adapter 1) 
==> default: Booting VM... 
==> default: Waiting for machine to boot. This may take a few minutes... 
    default: SSH address: 127.0.0.1:2222 
    default: SSH username: vagrant 
    default: SSH auth method: private key 
    default: Warning: Connection timeout. Retrying... 
==> default: Machine booted and ready! 
==> default: Checking for guest additions in VM... 
    default: The guest additions on this VM do not match the installed version of 
    default: VirtualBox! In most cases this is fine, but in rare cases it can 
    default: prevent things such as shared folders from working properly. If you see 
    default: shared folder errors, please make sure the guest additions within the 
    default: virtual machine match the version of VirtualBox you have installed on 
    default: your host and reload your VM. 
    default: 
    default: Guest Additions Version: 4.2.12 
    default: VirtualBox Version: 4.3 
==> default: Mounting shared folders... 
    default: /vagrant => C:/VagrantBoxes/mybox 
    default: /tmp/vagrant-chef/7159cf65a6eea91634c03008165d96a8/cookbooks => C:/Users/dkrantsber/.berkshelf/vagrant-berkshelf/shelves/berkshelf20150208-6588-1a3oox5-default 
==> default: Running provisioner: chef_solo... 
==> default: Detected Chef (latest) is already installed 
Generating chef JSON and uploading... 
==> default: Running chef-solo... 
==> default: stdin: is not a tty 
==> default: [2015-02-08T05:09:07+00:00] INFO: *** Chef 11.4.0 *** 
==> default: [2015-02-08T05:09:08+00:00] INFO: Setting the run_list to ["recipe[apt]", "recipe[apache2]"] from JSON 
==> default: [2015-02-08T05:09:08+00:00] INFO: Run List is [recipe[apt], recipe[apache2]] 
==> default: [2015-02-08T05:09:08+00:00] INFO: Run List expands to [apt, apache2] 
==> default: [2015-02-08T05:09:08+00:00] INFO: Starting Chef Run for vagrant.vm 
==> default: [2015-02-08T05:09:08+00:00] INFO: Running start handlers 
==> default: [2015-02-08T05:09:08+00:00] INFO: Start handlers complete. 
==> default: [2015-02-08T05:09:08+00:00] ERROR: Running exception handlers 
==> default: [2015-02-08T05:09:08+00:00] ERROR: Exception handlers complete 
==> default: [2015-02-08T05:09:08+00:00] FATAL: Stacktrace dumped to /var/chef/cache/chef-stacktrace.out 
==> default: [2015-02-08T05:09:08+00:00] FATAL: Chef::Exceptions::CookbookNotFound: Cookbook apt not found. If you're loading apache2 from another cookbook, make sure you confi 
Chef never successfully completed! Any errors should be visible in the 
output above. Please fix your recipes so that they properly complete. 

流浪文件:

Vagrant.configure("2") do |config| 

    config.vm.box = "opscode-ubuntu-12.04_chef-11.4.0" 
    config.vm.box_url = "https://opscode-vm-bento.s3.amazonaws.com/vagrant/opscode_ubuntu-12.04_chef-11.4.0.box" 
    config.ssh.forward_agent = true 


    config.vm.provision :chef_solo do |chef| 
    chef.cookbooks_path = ["cookbooks"] 
    chef.add_recipe :'apt' 
    chef.add_recipe 'apache2' 
    chef.json = { 
     :apache => { 
     :default_site_enabled => "true", 
     :dir     => "/etc/apache2", 
     :log_dir    => "/var/log/apache2", 
     :error_log   => "error.log" 
     } 
    } 
    end 
end 

文件夾結構:

[my_box] 
[cookbooks] 
    [apt] 
    [apache2] 
Vagrantfile 
+0

你可以嘗試ssh你的盒子('vagrant ssh'),並檢查文件夾'/ tmp/vagrant-chef/7159cf65a6eea91634c03008165d96a8/cookbooks'是否有食譜。另外檢查cookbooks是否有一個metadata.rb文件,它看起來是正確的。 – 2015-02-08 07:05:20

+0

這個文件夾(/ tmp/vagrant-chef/a216041e14f8db851996624148ca222a/cookbooks)在我的流浪盒上是空的。 什麼可以防止食譜被複制到它? 同樣在我的主機上沒有cookbooks/apt/metadata.rb文件。相反,它是metadata.json。我已經用圖書管理員廚師把這本烹飪書拿出來了。這是否是原因? – dmit77 2015-02-09 15:54:58

回答