在Vagrant vm上存储的烹饪书在哪里? /安装需要吗?

时间:2013-01-31 12:59:33

标签: chef vagrant

作为诊断我的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

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

1 个答案:

答案 0 :(得分: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

    这应该包含网站食谱(如果你单独拿着它们,可以从厨师社区下载的食谱)。

  3. 在当前设置中,这些是2个目录,vagrant将安装在 guest OS中并搜索cookbook。您收到错误,因为您的设置中没有此类目录。

    你必须提供食谱和#39;路径,因为否则流浪汉不知道从哪里带走它们。请查看Vagrant的Setting the Cookbooks Path帮助页面。