百胜更新后找不到食谱

Posted

技术标签:

【中文标题】百胜更新后找不到食谱【英文标题】:Cookbook not found after Yum Update 【发布时间】:2015-04-22 15:31:08 【问题描述】:

我正在尝试在本地使用带有 Vagrant 和 Berkshelf 的 Opsworks 格式的说明书存储库来测试和使用本文的本地 VM:

http://dev.inventit.io/blog/aws/opsworks/vagrant/chef/berkshelf/2014/04/28/opsworks_vagrant_chef_berkshelf_tips.html

一切正常,直到我重新启动。之后,当我再次运行 vagrant provision 进行测试时,我的 Berksfile 中的内容“找不到食谱”。

这是我的 Vagrantfile 的相关部分:

config.omnibus.chef_version = "11.4.0"

config.vm.box = "chef/centos-6.5"

config.vm.provider "virtualbox" do |vb|
  vb.memory = "1024"
end

config.berkshelf.enabled = true

config.vm.provision "shell", inline: <<-SHELL
    rpm -Uvh http://yum.postgresql.org/9.3/redhat/rhel-6-x86_64/pgdg-centos93-9.3-1.noarch.rpm
    sudo yum -y update
SHELL

config.vm.provision :chef_solo do |chef|
    eval run_list
    chef.json = json
end

config.vbguest.auto_update = true

这是我的 Berks 文件:

#!/usr/bin/env ruby
# -*- encoding : utf-8 -*-

source "https://api.berkshelf.com"
cookbook 'cookbookname', path: "cookbookname"

我的流浪插件: 流浪者-berkshelf (4.0.3) 流浪汉综合(1.4.1) vagrant-share (1.1.3, 系统) vagrant-vbguest (0.10.0)

如上所述,这在重新启动之前可以正常工作。 CentOS 确实通过 yum 更新从 6.5 升级到 6.6,该更新在重新启动时完成。

任何帮助将不胜感激。

跟进:

经过更多研究,我能够找到故障点并通过手动移动一些文件来运行它。

在 yum 更新后重新启动时,来宾添加会(成功)从 4.3.8 更新到 4.3.20。

我可以在主机上看到我的所有食谱的 Berkshelf 插件供应商:

 ==> default: Vendoring yum (3.5.3) to /root/.berkshelf/vagrant-berkshelf/shelves/berkshelf20150223-32730-2aw62c-default/yum
==> default: Vendoring yum-epel (0.6.0) to /root/.berkshelf/vagrant-berkshelf/shelves/berkshelf20150223-32730-2aw62c-default/yum-epel

我可以访问 /vagrant 并查看所有共享文件。

如果我查看 /tmp/vagrant-chef 我可以看到运行列表和 json 文件,但食谱目录是空的。我再次运行配置,它仍然是空的。

如果我将主机 vendored cookbooks 目录中的所有内容复制到此处并重新运行配置,则成功!我正在继续研究为什么 vagrant-berkshelf 插件无法上传。任何帮助仍将不胜感激。

【问题讨论】:

【参考方案1】:

发现这是 Vagrant 1.7.2 核心代码中的一个已知错误:

https://github.com/mitchellh/vagrant/issues/5199

我没有得到任何简短的解决方法(删除 synced_folders 并运行 vagrant reload),但只需降级到 vagrant 1.7.1 就可以了。

【讨论】:

以上是关于百胜更新后找不到食谱的主要内容,如果未能解决你的问题,请参考以下文章

警告:更新到 xcode 7 后找不到选项的目录

更新工作室 3.4 后找不到参数的 leftShift() 方法

更新到 nextjs@10.4 后找不到模块'webpack/lib/node/NodeTemplatePlugin'

[Bug]:版本更新后找不到模块“@ngrx/effects/testing”

Ionic 2:更新到 RC.0 后找不到名称“Promise”

更新到角度6后找不到app-root