【发布时间】:2015-04-22 15:31:08
【问题描述】:
我正在尝试在本地使用带有 Vagrant 和 Berkshelf 的 Opsworks 格式的说明书存储库来测试和使用本文的本地 VM:
一切正常,直到我重新启动。之后,当我再次运行 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 插件无法上传。任何帮助仍将不胜感激。
【问题讨论】:
标签: vagrant chef-infra centos6 aws-opsworks berkshelf