作为诊断我的Vagrant VM问题的一部分,我发了
vagrant@lucid32:~$ sudo mount -t vboxsf -o uid=`id -u vagrant`,gid=`id -g vagrant` v-csc-1 /tmp/vagrant-chef-1/chef-solo-2/cookbooks
我得到了:
/sbin/mount.vboxsf: mounting failed with the error: No such file or directory
网络上的各种博客都表明这是一个路径问题,可能与在VM本身上设置菜谱的位置以及Vagrantfile(在主机上)指示Chef找到它们的位置有关。所以问题:
背景 我的问题源于试图找到一个明确的,完整的端到端指南,在Windows 7 64位主机上的VM上建立一个通用的全花园香草LAMP堆栈。我做了很多研究并使用http://iostudio.github.com/LunchAndLearn/2012/03/21/vagrant.html并在我的Vagrantfile中添加了以下代码
config.vm.provision :chef_solo do |chef|
chef.cookbooks_path = ["cookbooks","site-cookbooks"]
chef.add_recipe "apt"
chef.add_recipe "openssl"
chef.add_recipe "apache2"
chef.add_recipe "mysql"
chef.add_recipe "mysql::server"
chef.add_recipe "php"
chef.add_recipe "php::module_apc"
chef.add_recipe "php::module_curl"
chef.add_recipe "php::module_mysql"
chef.add_recipe "apache2::mod_php5"
chef.add_recipe "apache2::mod_rewrite"
chef.json = {
:mysql => {
:server_root_password => 'root',
:bind_address => '127.0.0.1'
}
}
end
我看到的问题是网上有很多建议但是: - 这个问题有不同的解决方案 - 他们没有精确地指定他们的起点/先决条件,即他们的设置状态之前他们的解决方案将被应用,所以你不知道你的问题是否与他们的问题相同
答案 0 :(得分:1)
正如我在评论中所说:
chef.cookbooks_path = ["cookbooks","site-cookbooks"]
此行显示从主机系统中Vagrantfile到cookbooks目录的相对路径。如果您的Vagrantfile的完整路径是C:\Users\<user>\<folder to hold vagrant setup>\Vagrantfile
,那么应该有2个目录:
C:\Users\<user>\<folder to hold vagrant setup>\cookbooks
这应该可以保存你的食谱。
C:\Users\<user>\<folder to hold vagrant setup>\site-cookbooks
这应该包含网站食谱(如果你单独拿着它们,可以从厨师社区下载的食谱)。
在当前设置中,这些是2个目录,vagrant将安装在 guest OS中并搜索cookbook。您收到错误,因为您的设置中没有此类目录。
你必须提供食谱和#39;路径,因为否则流浪汉不知道从哪里带走它们。请查看Vagrant的Setting the Cookbooks Path帮助页面。