1

作为诊断我的 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 找到它们的位置有关。所以问题:

  • 我如何找到食谱的位置以便我可以纠正这个问题?
  • 我怎么知道我是否已经设置了 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

我看到的问题是网络上有很多建议,但是: - 问题有不同的解决方案 - 他们没有精确指定他们的起点/先决条件,即他们的解决方案之前的设置状态被应用所以你不能知道你的问题是否和他们的一样

4

1 回答 1

1

所以正如我在评论中所说:

chef.cookbooks_path = ["cookbooks","site-cookbooks"]

这一行显示了从 Vagrantfile 到主机系统中的 cookbooks 目录的相对路径。如果您的 Vagrantfile 的完整路径是C:\Users\<user>\<folder to hold vagrant setup>\Vagrantfile,那么应该有 2 个目录:

  1. C:\Users\<user>\<folder to hold vagrant setup>\cookbooks

    这应该保存你的食谱。

  2. C:\Users\<user>\<folder to hold vagrant setup>\site-cookbooks

    这应该包含网站食谱(从厨师社区下载的食谱,以防您单独持有它们)。

在当前设置中,这些是 2 个目录,该 vagrant 将安装在来宾操作系统中并搜索说明书。您收到错误消息,因为您的设置中没有这样的目录。

您必须提供食谱的路径,否则 vagrant 不知道从哪里获取它们。查看Vagrant的 Setting the Cookbooks Path帮助页面。

于 2013-01-31T14:17:13.440 回答